←
▼
▲
番号またはコマンド >MakeNewScript
-------------------------------------------------------------------------------
((( [MakeVbsLibSample] )))
どのタイプのファイルを作成しますか
1. シンプル vbslib スクリプト
続行するには Enter キーを押してください . . . 1
Enter のみ : デスクトップに sample.vbs を作成します。
作成するファイルのパス>
>copy_ren "samples\sample.vbs", "C:\Users\user1\Desktop\sample.vbs"
-------------------------------------------------------------------------------
vbs ファイルを作成しました。
テキスト・エディターで、vbs ファイルの最後にある main2 関数を編集してください。
vbs ファイルをダブルクリックすると編集した内容を実行します。
メイン・スクリプトを新規作成します。
MakeNewScript
ソース
→ vbslib Prompt.vbs
関連
←
▼
▲
番号またはコマンド >MD5List
-------------------------------------------------------------------------------
((( [MD5List] )))
1) [Make] MD5リストを作成します
2) [Check] MD5リストをチェックします
3) [Stamp] MD5リストをチェックしてタイムスタンプを合わせます
4) [Append] MD5リストに追加します
5) [Search] MD5リストの中を検索します
6) [Fragment] _FullSet.txt があるフォルダーから同じ内容のファイルを削除しま す
7) [Defragment] _FullSet.txt があるフォルダーを完全形に復帰します
番号またはコマンド >1
調べるフォルダーのパス >C:\Folder
MD5 リストのファイル パス(出力先)>C:\MD5.txt
タイムスタンプを含めますか[Y/N]y
MD5 リストを作成またはチェックします。
MD5List
関連
1
C:\Folder
C:\MD5.txt
y
ソース
→ vbslib Prompt.vbs
テスト
T_OpenForDefragment_Prompt
→ T_fc.vbs
T_MD5List_SearchPrompt
T_MakeFolderMD5List_TimeStamp_EmptyFolder
T_MD5List_Ascii
←
▼
▲
テスト
→ vbslib Prompt.vbs
wscript "C:\.......\vbslib new\vbslib Prompt.vbs" mkdir
番号またはコマンド >mkdir
[MkDir] make directory
深いフォルダーを作ります。または、相対パスを使ってフォルダーを作ります。
作成するフォルダーのパス、または、相対パスの基準フォルダ >C:\FolderA
作成するフォルダの相対パス >a\b
Open folder "C:\FolderA\a\b"
深いフォルダーを作ります。または、相対パスを使ってフォルダーを作ります。
mkdir
C:\FolderA
a\b
「送る」 メニューから mkdir コマンドを使えるようにするには
vbslib Prompt.vbs ファイルへのショートカット・ファイルを
で表示されるフォルダー
の中に作成して、ショートカット・ファイルのファイル名を 「mkdir」 に変えて、ショートカット・
ファイルを右クリック [ プロパティ > リンク先 ] の先頭に、「wscript」と空白文字、末尾に
空白文字と 「mkdir」 を入力してください。
フォルダーを右クリックして [ 送る > mkdir ] から起動した場合、相対パスの基準フォルダーの
入力が不要になります。
→ T_mkdir フォルダ
ソース
関連
←
▼
▲
簡易バージョン管理&構成管理ツール。
マスターズ フォルダーに、プロジェクトの構成要素であるモジュール(ファイルの集合)の各リビジョンを
入れておけば、そこから、1つまたは複数のモジュールをコピーしてプロジェクトを構成することが
できるようになります。 また、プロジェクトからマスターズ フォルダーにモジュールを抽出コピーすること
で、リビジョン アップしたモジュールを追加することもできます。
A_Project
A_Source.c
A_Part
B_Part
B_Source.c
A_Part
A_Source.c
B_Project
ModuleA
01
A_Source.c
… リビジョン
Example.proja
…
MD5List.txt
ModuleB
B_Source.c
01
… リビジョン
テスト
ソース
→ T_ModuleAssort2.vbs
→ T_ModuleAssort2.vbs
T_ModuleAssort2_RunPrompt_Main (関数名は暫定)
T_ModuleAssort2_RunPrompt
関連
モジュールを新しいリビジョンに置き換える
モジュール内のターゲット間の同期をする
新しいテキスト セクションの構成に合わせる
ファイルやフォルダーの内容の違いを表示する
A_Source.c
02
… リビジョン
B_Part
B_Source.c
コピー
コピー
コピー
Assort
CheckOut
←
▼
▲
動作確認。 プログラミング。
ModuleAssort2 で Assort & Commit する。 Work を 01(リビジョン番号) に変える。
ModuleAssort2 でプロジェクトを CheckOut する。
(未開発) FindCross、FindCrossSymbol でファイルが所属するモジュールを調整する。
コミットしたものから内容はなるべく変えないこと。 変えるのは、上記 SyncFilesT で。
#include するファイルを変えるなど、最低限変えるのはよい。
内容を更新したとき、モジュールのリビジョン フォルダー名の末尾に、_Tmp を付ける。
プロジェクトの暫定コミットは、リビジョン名の末尾に、_NoCross を付ける。
ループ
ターゲット間の同期
以下は、マスターズの中にあるリビジョンのフォルダーの名前の補足。
_Tmp
ビルドを通していなければ、末尾に _Tmp を付ける。
同期したら、リビジョンのフォルダーの名前の末尾に
を付ける。
_Synced_Tmp
の設定ファイルと同期するフォルダーが入ったプロジェクトを CheckOut する。
ModuleAssort の Modules コマンドで、新しいリビジョンがあるかチェックして、あれば
プロジェクトにあるフォルダーと置き換える。
SyncFilesT で同期する。
同期したら、同期に関する表(HTML) を保存する。
古いモジュール(例:リビジョン 03)のプロジェクトを変更したら(すでにもっと新しいリビジョンが
あれば)、ブランチ 03_A_01_Branch にする。 すでにあるときは、03_B_01_Branch にする。
後で、CheckOutAndUpdate するときに警告されるので、そのときに Branch の直前リビジョンとの
差分を最新に反映する。 反映したら、空のフォルダー 03_A_01_Branch_05_Merged を作成する。
なお、05 はマージした後のリビジョン番号。
Revert したときは、05_A_Branch_04_Merged のように、以前のリビジョン(04)を付ける。
_fork_to_, _joined_to_
一部が別のターゲットに分離したら、<分離前のリビジョン>_fork_to_<分離先> という名前の
空フォルダーを作成する。 すべてが移動したら、<移動前のリビジョン>_joined_to_<分離先>
という名前の空フォルダーを作成する。
→ FindCross コマンド
←
▼
▲
の設定ファイル。
と ${ } 形式の変数を記述できます。
/ModuleAssort2_Projects/Project/
複数可能
@name
プロジェクト名とリビジョン名。 例: "ProjectX\01"
@path
プロジェクトのワークがあるフォルダーのパス。 省略可能。 ${ } 形式の変数可能。
/ModuleAssort2_Projects/Project/Module/
複数可能
プロジェクトのワークの中の相対パス。 CheckOut コマンドでのコピー先。
${ } 形式の変数可能。
@project
マスターがあるフォルダーのパス。 フル パス。 CheckOut コマンドでのコピー元。
${ } 形式の変数可能。
@master
/ModuleAssort2_Projects/ProjectTag/
複数可能
@name
主なプロジェクトのリビジョン。 起動時に一覧されます。
@value
プロジェクトのタグ名。 例: "ProjectX"
プロジェクト名とリビジョン名。 例: "ProjectX\01"
複数可能
@list
のパス。 ${ } 形式の変数可能。
マスターがあるフォルダーに、
かあるときに参照する、
存在するファイルの一覧が書かれているものとします。
@path
プロジェクト ファイル (.xml.proja) の内容の一部が書かれたファイルのパス。
${ } 形式の変数可能。
複数可能
複数可能
バージョン名に対応するリビジョンのマスターがあるフォルダーのパス。
相対パス可能。 ${ } 形式の変数可能。
バージョン名。 例: "ModuleA 1.00"。
ソース ファイルの中の $Version: $ に埋め込む値。
@path
@name
通常、
が指すファイルに記述します。
バージョン。 主なリビジョン。
→ ModuleAssort2_SettingFileClass::Load (.vbs)
/ModuleAssort2_Projects/MakeRule/
ソース
参考
複数可能
を自動的に編集するかどうか。
"yes" or "no"。 省略時は "yes"。
@keyword_substitution
または @KS
"yes" or "no"。 省略時は "Project/@keyword_substitution"
の設定値。
を自動的に編集するかどうか。
←
▼
▲
CheckOut コマンドは、過去にコミットしたプロジェクトのフォルダーを復帰します。
その内部では、モジュールのターゲットやリビジョンごとに整理された「マスターズ フォルダー」から
いくつかのフォルダーを「プロジェクト フォルダー」にコピーする処理が行われます。
<?xml version="1.0" encoding="UTF-8"?>
<ModuleAssort2_Projects>
<ProjectTag name="Project-A" value="Project-A\01"/>
<ProjectTag name="Project-B" value="Project-B\02"/>
<Variable name="${Masters}" value="Masters" type="FullPathType"/>
<Variable name="${ProjA}" value="ProjectA" type="FullPathType"/>
<Variable name="${ProjB}" value="ProjectB" type="FullPathType"/>
<Variable name="${B}" value="B"/>
<Project name="Project-A\01" path="${ProjA}">
<Module master="${Masters}\ModuleA\01" project="."/>
</Project>
<Project name="Project-B\02" path="${ProjB}">
<Module master="${Masters}\ModuleA\02" project="."/>
<Module master="${Masters}\ModuleB\02" project="${B}"/>
</Project>
<Project name="Project-B\01" path="${ProjB}">
ModuleA <Module master="${Masters}\ModuleA\01" project="."/>
ModuleB <Module master="${Masters}\ModuleB\01" project="${B}"/>
</Project>
<Fragment list="${Masters}\MD5List.txt"/>
</ModuleAssort2_Projects>
サンプル
Example.proja
ModuleAssort2 設定ファイル
<ProjectTag> タグで、Project-A や Project-B のデフォルト リビジョンがどれであるかについて
記述しています。 <ProjectTag> タグに記述したプロジェクトは、ModuleAssort2 を起動したときに、
一覧されます。
<Project> タグで、それぞれのプロジェクト(Project-A のリビジョン 01、Project-B のリビジョン 01、
同 02 ) が構成するモジュール(<Module> タグ)について、マスターズ フォルダー内のフル パスと、
プロジェクト フォルダー内の相対パスを記述しています。
で変数を定義しています。
<Fragment> タグで、同じ内容のファイルを探すための
のパスを設定しています。
マスターズ フォルダーの中で、同じ内容のファイルを1つだけにする Fragment コマンドによって、
フォルダーのサイズを削減する処理がが行われていなければ、記述は不要です。
サンプル
<?xml version="1.0" encoding="UTF-8"?>
<ModuleAssort2_Projects>
<Project name="Project-A\01" path="C:\ProjectA">
ModuleA <Module master="C:\Masters\ModuleA\01" project="."/>
ModuleB <Module master="C:\Masters\ModuleB\02" project="ModuleB"/>
</Project>
</ModuleAssort2_Projects>
<Project> タグの中で、プロジェクト(Project-A のリビジョン 01) が構成するモジュール
(<Module> タグ)について、マスターズ フォルダー内のフル パスと、プロジェクト フォルダー内の
相対パスを記述します。 相対パスの基準パスは、Project/@path に記述していますが、
コマンドによっては別の相対パスが使われます。 XML タグ( < > で囲まれた部分 )の外は、
コメントとして何でも記述でき、その内容は無視されます。
が記述されていませんが、記述することで変数を使うこと
このサンプルでは
ができます。 (別のサンプルを参照)
番号またはコマンド >ModuleAssort2
設定ファイル(.proja)のパス >C:\Example.proja
以下のいずれかを入力してください。
・プロジェクトをチェックアウトまたはリリースする空のフォルダーのパス
・メイクする最終ターゲットのプロジェクト名+リビジョン名。例:Project\01
・アソート&コミットする XML の Project/@path に記述したパス
・Enter のみ : メンテナンス メニューへ
パス >C:\Workspace\ProjectB
1. 指定したパスにプロジェクトを出力する [CheckOut]
3. 指定したパスにパッケージを出力する [MakePackage]
Enter のみ: 戻る
番号またはコマンド名>CheckOut
プロジェクトをチェックアウトします。
Enter のみ: 戻る
プロジェクト名\リビジョン(例:ProjectA\01)>Project-A\01
${Masters}\ModuleA\02
${Masters}\ModuleB\02
チェックアウトしてできたフォルダーのパスを .proja ファイル(XML形式)の中の
Project/@path 属性に記述してから ModuleAssort を起動すると、アソート&コミ
ットできるようになります。 なお、ファイルの中に記述された ${...} は、
Variable タグで定義している変数です。
完了しました。
vbslib Prompt.vbs ファイルをダブルクリックして、以下の黄色の部分を入力すると、CheckOut
できます。
ModuleAssort2
C:\Example.proja
C:\Workspace\ProjectB
CheckOut
Project-A\01
番号またはコマンド >ModuleAssort2
設定ファイル(.proja)のパス >C:\Example.proja
-------------------------------------------------------------------------------
1. Project-A
2. Project-A\B
-------------------------------------------------------------------------------
以下のいずれかを入力してください。
・上記の番号
・プロジェクトをチェックアウトまたはリリースする空のフォルダーのパス
・メイクする最終ターゲットのプロジェクト名+リビジョン名。例:Project\01
・アソート&コミットする XML の Project/@path に記述したパス
・Enter のみ : メンテナンス メニューへ
上記の番号、または、パス >2
-------------------------------------------------------------------------------
Project Root = C:\ProjectB
Project Name = Project-B\02
フォルダーが見つかりません。
1. プロジェクトをチェックアウトする [CheckOut]
3. プロジェクトのモジュールを一覧する [Modules]
9. カレント モジュールを変更する [GoTo]
番号またはコマンド>1
${Masters}\ModuleA\02
${Masters}\ModuleB\02
Completed.
vbslib Prompt.vbs ファイルをダブルクリックして、以下の黄色の部分を入力すると、CheckOut
できます。
2
1
C:\Example.proja
ModuleAssort2
←
▼
▲
Assort コマンドは、新しいリビジョンのプロジェクトが決まった後で、マスターズ フォルダーの中にある
モジュールを更新する(リビジョン アップしたフォルダーを追加する)作業を支援します。
Commit コマンドは、プロジェクトの構成を記録し、後で CheckOut コマンドで復帰できるようにします。
Assort コマンドを実行すると、<Module> タグに書かれたリビジョンと Work フォルダーの内容を
比較するメニューが表示されます。
<Project name="Project-B\03" path="${ProjB}">
<Module master="${Masters}\ModuleA\03" project="."/>
<Module master="${Masters}\ModuleB\02" project="${B}"/>
</Project>
<Project name="Project-B\02" path="${ProjB}">
<Module master="${Masters}\ModuleA\02" project="."/>
<Module master="${Masters}\ModuleB\02" project="${B}"/>
</Project>
追加
Project-B\03
プロジェクトのリビジョンを上げるときは、設定ファイルの中のにある前のリビジョンの <Project> と
<Module> を前のリビジョンからコピーし、新しいリビジョンのプロジェクトに関する <Project> と
<Module> を作成して、CheckOut コマンドを実行します。 この内容も分かる範囲で構いません。
Commit するまでは、何度でも <Project> と <Module> を変更して、CheckOut コマンドや Assort
コマンドを実行することができます。
Assort コマンドを実行すると、カレント プロジェクトの中にあるファイルと、マスターズ フォルダーの
中にあるファイルの比較を行い、プロジェクトで変更(更新)があったモジュールのファイルについて
は、隣の Work フォルダーにプロジェクトからコピーします。 変更がなければ Work フォルダーは
できません。
ModuleA
02
Work
02
ModuleA
モジュールにファイルを追加するときは、Work フォルダーにコピーしてください。 ただし、内容は
任意で構いません。 後で再度 Assort コマンドを実行するときに、プロジェクトから内容がコピー
されます。 新しいモジュールを作成するときは、新しいモジュール名のフォルダーを作成し、
その中に Work フォルダーを作成して、その中に構成するファイルを入れてください。 ただし、
内容は任意で構いません。 後で再度 Assort コマンドを実行するときに、プロジェクトから内容が
コピーされます。 新しいリビジョンで削除するファイルや移動するファイルがあるときは、Work
フォルダーの中で、削除や移動をしてください。 分かる範囲で構いません。 Commit するまでは、
何度でも Work フォルダーの構成を変更して、Assort コマンドでプロジェクトからコピーすることが
できます。
ModuleA\03
もし、Work フォルダーの直下に _FullSet.txt ファイルがあるときは、Work フォルダーにファイルを
追加・削除するのではなく、_FullSet.txt ファイルの中の行を追加・削除してください。
タイムスタンプとハッシュ値は任意の値で構いませんが、値の長さは変えないでください。
後で再度 Assort コマンドを実行するときに、タイムスタンプとハッシュ値がプロジェクトにある
ファイルの内容に合わせて更新され、また、プロジェクトからファイルがコピーされます。
すべてのモジュールがプロジェクトと違いがなったら、Commit するかどうかを聞かれます。
Commit すると、CheckOut コマンドでプロジェクト フォルダーが復帰できるようにするために、
MD5リストが更新されます。
ModuleA
02
03
02
ModuleA
Work
Work フォルダーが新しいリビジョンの内容になったら、フォルダー名を設定ファイルに記述した
最新のリビジョン名に変更し、<Module> タグに記述してあったリビジョンを最新のリビジョン名に
変更し、Assort コマンドを実行してください。 モジュールのマスターとプロジェクトに違いがなけ
れば、Work フォルダーは作られず、あったとしても削除されます。
… プロジェクトから抽出コピー
番号またはコマンド >ModuleAssort2
設定ファイル(.proja)のパス >C:\Example.proja
以下のいずれかを入力してください。
・プロジェクトをチェックアウトまたはリリースする空のフォルダーのパス
・メイクする最終ターゲットのプロジェクト名+リビジョン名。例:Project\01
・アソート&コミットする XML の Project/@path に記述したパス
・Enter のみ : メンテナンス メニューへ
パス >C:\Workspace\ProjectB
-------------------------------------------------------------------------------
Project Root = C:\Workspace\ProjectB
Module in Project = .
Project Name = Project\01
Module in Masters = ${Masters}\ModuleA\02
1. 現在のモジュールのフォルダーを比較する [Diff]
2. プロジェクトをアソート&コミットする [Assort]
3. プロジェクトのモジュールを一覧する [Modules]
4. フォルダーを開く - マスターの中のモジュール
6. フォルダーを開く - プロジェクトの中のモジュール
9. カレント モジュールを変更する [GoTo]
番号またはコマンド>Assort
${Masters}\ModuleA\02
<WARNING msg="違いがあります"
master="${Masters}\ModuleA\02"
project="."
step_path="A.txt"/>
プロジェクトから抽出したモジュール: ${Masters}\ModuleA\Work
${Masters}\ModuleA_Copy\02
<WARNING msg="ハッシュ値(=ファイルの内容)に違いがあります"
master="${Masters}\ModuleA_Copy\02\_FullSet.txt"
project="Copy"
step_path="A_Copy.txt"/>
プロジェクトから抽出したモジュール: ${Masters}\ModuleA_Copy\Work
警告の数 = 2
-------------------------------------------------------------------------------
*1. ${Masters}\ModuleA\02
2. ${Masters}\ModuleA_Copy\02
-------------------------------------------------------------------------------
以下のいずれかを入力してください。
・上記の番号
・プロジェクトをチェックアウトまたはリリースする空のフォルダーのパス
・アソート&コミットする XML の Project/@path に記述したパス
・Enter のみ : メンテナンス メニューへ
上記の番号、または、パス >1
-------------------------------------------------------------------------------
Project Root = C:\Workspace\ProjectB
Module in Project = .
Project Name = Project\01
Module in Masters = ${Masters}\ModuleA\02
${Masters}\ModuleA\Work
1. 現在のモジュールのフォルダーを比較する [Diff]
2. プロジェクトをアソート&コミットする [Assort]
3. プロジェクトのモジュールを一覧する [Modules]
4. フォルダーを開く - マスターの中のモジュール
5. フォルダーを開く - マスターの中のワーク モジュール
6. フォルダーを開く - プロジェクトの中のモジュール
9. カレント モジュールを変更する [GoTo]
番号またはコマンド>
ModuleAssort2
C:\Example.proja
C:\Workspace\ProjectB
Assort
1
vbslib Prompt.vbs ファイルをダブルクリックして、以下の黄色の部分を入力すると、Assort
できます。
:
番号またはコマンド>Assort
${Masters}\ModuleA\02
${Masters}\ModuleA_Copy\02
正しくチェックアウトできるか確認しています ...
C:\Users\OWNER\AppData\Local\Temp\Report\__CheckOutTest
${Masters}\ModuleA\02
${Masters}\ModuleA_Copy\02
>MakeFolderMD5List
>CheckFolderMD5List
Project\01
を正しくチェックアウトできることを確認しました。
下記 date 属性を設定ファイルに追加することをお勧めします。
<Project name="Project\01"
date="2016-12-26T12:21:09+09:00">
コミットしますか[Y/N]y
警告の数 = 0
Assort
y
←
▼
▲
参考
<MakeRule> タグを設定ファイルに記述することで、make コマンドのような実行を行ったことを
記録することができます。
Make コマンドで、メイク ツリーを表示できます。
←
▼
▲
→ SubVersion - ファイルにリビジョン番号を埋め込む (svn:keywords、Keyword Substitution)
参考
* - $Version: $
* - $ModuleRevision: $
* - $Date: $
'***********************************************************************
'* File: Sample.vbs
'*
'* - $Version: vbslib 5.91 $
'* - $ModuleRevision: {vbslib}\Public\74 $
'* - $Date: 2016-12-30T11:01:04+09:00 $
'***********************************************************************
WScript.Echo "Hello, world."
Keyword Substitution 形式($<属性名>: 値 $)をソース ファイルに記述すると、
ソース ファイルに埋め込むリビジョン番号が自動的に更新されるようになります。
vbslib 5.91
{vbslib}\Public\74
2016-12-30T11:01:04+09:00
を実行してマスターズ フォルダーにソース ファイルが入るときは、Keyword Substitution
形式の値が空欄になります。 空欄にすることで、リビジョンが更新されても内容が更新されなかった
$Version
に書かれたバージョン
$ModuleRevision
$Date
マスターズ フォルダーの中のモジュールの相対パス
ファイルのタイムスタンプ、更新日時
ファイルの内容が変化しないようになります。
を実行すると、Keyword Substitution 形式の値を埋め込みます。
を no に設定すると、Keyword Substitution
形式の値を自動的に編集しないようになります。
(※現在、
を使用しなければ、自動的に編集されません。)
の TimeStamp
←
▼
▲
番号またはコマンド >NaturalDocs
ソースファイルにあるコメントを HTML に変換します。
ソースファイルがあるフォルダーのパス>C:\src
HTML を格納するフォルダーのパス(★上書きします)>C:\_html
ソースファイルのコメントからドキュメントを生成します。
NaturalDocs
関連
→ Natural Docs
参考
ソース
→ vbslib Prompt.vbs
したとき、/silent オプションをつけると、ブラウザーが開かないようになります。
C:\src
C:\_html