====== verCtrler : 実行ファイルのバージョン管理プログラム ======
===== - 概要 =====
バージョン番号付きで存在する一連の実行ファイルの中から、
特定の一つを選んでバージョン番号なしの リンク/エイリアス を作成することができます。\\
デスクトップ等にはこのバージョン番号なしの リンク/エイリアス を置いて置くようにすると
verCtrler で リンク/エイリアス を設定したプログラムが実行されます。
===== - ダウンロード =====
* {{tabuchi:verctrler-64bit-5_14_2-20200713.zip|verCtrlerのパッケージ}} Windows 64bit版、Qt5.14.2使用
ほとんど Unix(FreeBSD)上でしかチェックしていませんが、Windows 上でも同様に動いて欲しい。
===== - 使い方 =====
==== - 基本的な使い方 ====
verCtrler で、例えば、XafsM2 というプログラムのバージョン管理を行うことを考えます。
この「XafsM2」というバージョン番号が付いていないプログラム名を
ここでは**「ターゲット名」**と呼びます。\\
ターゲットのこれまでのバージョンが、「ターゲット名 + 何か」(「何か」はなんでも良い)という
名前で保存されていたとします。
* XafsM2 (但し XafsM2-20200710-1 へのリンク/エイリアス)
* XafsM2-20200710-1
* XafsM2-20200605-1
* XafsM2-20200512-1
* XafsM2-20200512-2
* XafsM2-20200512-3-bad
これらは全て /home/xafs/bin の中や、/Users/XAFS/XafsM2 の中など
どこかにまとめて置かれていることとします。\\
このとき verCtrl を起動すると次のような window が現れます
((管理対象のフォルダーや、ターゲット名を指定する必要が有りますが、それは後で説明します。))。
{{ :tabuchi:normal.png?direct&600 |}}
これは上記6つのファイルが存在し、管理対象になっていることを表しています。
また、XafsM2 は XafsM2-20200710-1 へのリンクであることも表しています
(3行目、「XafsM2」の表示の右に「XafsM2-20200710-1」と表示され、4行目の先頭のチェックボタンにチェックが入っている)。
この状態で、画面左端に並んでいるチェックボックスを押すと、
XafsM2 からのリンク/エイリアスがそのファイルに切り替わります。
これが、verCtrler の基本的な使い方です。
==== - GUI の詳細 ====
上に示した GUI 画面を順番に説明すると次のようになります。
* 1行目: /home/tabuchi/bin というフォルダーが、XafsM2 の置き場として管理対象になっていることを示します。
* 2行目左: ターゲット名は XafsM2 であることを示します。
* 2行目右: ターゲットの選択を行います(今は /home/tabuchi/bin の XafsM2 が選ばれている)。
* 3行目以降: 「XafsM2(ターゲット名) + 何か」という名前のファイルのリストが表示されています。
ファイル名はファイルの日付(タイムスタンプ)順に、新しいものが上に来るように並んでいます。
* リストの最初の行(画面全体の3行目)だけ、表示のされ方が違います。
これは、この行に表示されているものが「ターゲット」であることと、
実体は XafsM2-20200710-1 へのリンク/エイリアスであることを示しています。
* ファイル名を書き換えて、リストの右の 「Rename」ボタンを押すとファイル名を変更できます
(この時、「ターゲット名」の部分まで変更してしまうと管理から外れるのでこのリストから消えてしまいます)。
上の例では、ターゲット名のファイル(XafsM2)がリンク/エイリアスでした。
もし、ターゲット名のファイルが実体の場合には GUI 上では次のような表示になります。
{{ :tabuchi:tolink.png?direct&600 |}}
* 3行目: ターゲット名にリンク/エイリアス名が表示されていない。
* 3行目右端: 「リンク化」というボタンが表示されている。
* 4行目以降のチェックボックスにチェックが入っていない(どれも XafsM2 という名前のリンク/エイリアスではない)。
などの点が、先程の例との違いです。
ここで、3行目の「リンク化」というボタンを押すと、今のターゲット名のファイル(XafsM2)が、
『XafsM2-「今日の日付」-「通し番号」』という名前に変更され、XafsM2 はそのファイルへのリンク/エイリアスに変わり
表示は次のようになります。
{{ :tabuchi:changed.png?direct&600 |}}
XafsM2 はリンク/エイリアスに変わったので「リンク化」のボタンは無くなっています。\\
「リンク化」のボタンを押すのではなく、
どれかのバージョンのファイルを選択した(チェックボタンを押した)場合も
XafsM2 は選択したファイルへのリンク/エイリアスに変わります。
次はその様な操作をした時の画面の例です。
{{ :tabuchi:changed2.png?direct&600 |}}
==== - ターゲット名のファイルが存在していなかった場合 ====
verCtrler 起動時にターゲット名のファイルが存在しなかった場合、
日付(ファイルのタイムスタンプ)が最も新しいバージョンに対する リンク/エイリアス としてターゲット名のファイルが作成されます。
(ターゲット名のファイルがもともと存在していた場合は変更されません。)
===== - 設定 =====
verCtrler が管理する対象のプログラムは config.cfg で指定します
(将来は GUI 上からも指定できるようにするつもりですが、現在は config.cfg で指定しておく必要があります)。
config.cfg の例を次に示します。
ほとんど自明ですが、1行が一つのターゲットの指定になっています。
行の先頭の "Target" というキーワードに続けて、「ターゲット名」「管理対象ディレクトリ/フォルダ」を書いて下さい。
区切りはスペース区切りです。
「管理対象ディレクトリ/フォルダ」は「ターゲット」毎に違っていて構いません。
あるいは、同じ XafsM2 でも、Qt5.14.2 使用版と、Qt5.12.4 使用版が別のフォルダにあるなら、
それを二つ別のターゲットとして書いて構いません
(逆に、2つのフォルダにまたがって存在しているファイルをまとめて管理することは今はできません)。
#
# Config File :: version Controler
#
# 2020.07.10 M. Tabuchi
#
Target XafsM2 /home/tabuchi/bin
Target testProg /home/tabuchi/bin
Target testExe /home/tabuchi/bin
Target colorManager /home/tabuchi/bin
Target test2exe.exe /home/tabuchi/bin
Target test3exe /home/tabuchi/bin.pl