[目次へ][4章へ][4.5へ][4.7へ] 最終更新:$Date: 2002/08/20 16:26:58 $
■第4章 もう少し便利なコマンドの使い方
これはこんなもんのような気がする。(2002/8/13)
■■■4.6 これまでどんな作業をしたか見てみよう(history)
これまでどんな作業をしたか見るには、historyコマンドを利用するとよいです。historyコマンドではリポジトリに対しておこなわれた「全て」の操作について、色々な形式で見ることができます。ただし、管理ファイル$CVSROOT/CVSROOT/historyが用意されていないと使用できません。通常は用意されているはずですが、もしこのファイルがない場合には6章を参考に適切に用意してください。
【図4.6.1】historyコマンドの書式 ▼ cvs history [-レポート内容] [-フラグ] [-オプション 引数] [ファイル群...] ▲
オプションは沢山ありすぎるので、ここではいくつか紹介するだけにします。詳しくは付録Cを見てください。ちなみに、オプションなしで実行すると、自分のチェックアウトしたモジュールの一覧が出てくるだけです【図4.6.2】。
【図4.6.2】オプションなしで実行 ▼ cvs history O 2002-08-20 13:23 +0000 mika bintest =bintest= ~/test/cvs-1.11.2/workcopy/* O 2002-08-20 12:36 +0000 mika cvstest =cvstest= ~/test/cvs-1.11.2/workcopy/* ▲
■■4.6.2 historyコマンドの凝った使い方
-e(everything)オプションを使うと、すべての操作が時系列にそのまま表示されます。ちょっと見てみましょう【図4.6.3】。長いので途中省略しましたが、このような出力がずらずらと出てきます。一行に一つのイベント(おこなわれた操作)が表示されます。まず先頭に、イベントの種類が示されます。次に日付と時刻。その次がユーザ名です。あとは対象モジュールやリビジョンなどの情報になり、操作毎に異なります。
【図4.6.3】-eオプションつきで実行 ▼ % cvs history -e O 2002-08-20 12:36 +0000 mika cvstest =cvstest= ~/test/cvs-1.11.2/workcopy/* O 2002-08-20 12:37 +0000 mika cvstest2 =cvstest2= ~/test/cvs-1.11.2/workcopy/* M 2002-08-20 12:44 +0000 mika 1.2 tmp2.txt cvstest2 == ~/test/cvs-1.11.2/workcopy/cvstest2 M 2002-08-20 12:44 +0000 mika 1.2 tmp3.txt cvstest2/dir1 (中略) M 2002-08-20 14:20 +0000 mika 1.3 difftest.txt cvstest2 == ~/test/cvs-1.11.2/workcopy/cvstest2 U 2002-08-20 14:27 +0000 mika 1.3 difftest.txt cvstest2 == ~/test/cvs-1.11.2/workcopy/cvstest2 F 2002-08-20 15:05 +0000 mika =cvstest2= ~/test/cvs-1.11.2/workcopy/* ▲
イベントの種類は11個あり、「TOEFWUCGMAR」のどれか一文字で表されます。【表4.6.1】に各文字に対応するイベントをまとめておきます。
【表4.6.1】 文字 イベント T タグ O チェックアウト E エクスポート F リリース W 更新(ファイル削除) U 更新(ファイル上書き) C 更新(マージ、競合あり) G 更新(マージ、競合なし) M コミット(ファイル修正) A コミット(ファイル追加) R コミット(ファイル削除)
この文字を組み合わせて、-x(extract?)オプションで指定することで、望むイベントだけ表示させることができます。たとえば、【図4.6.4】のようにします。ここでは、U=更新(ファイル上書き)イベントだけを抜き出してみました。他のイベントも同じように抜き出せますし、UOといったように複数文字指定して抜き出すこともできます。いろいろと試してみてください。
【図4.6.4】-xオプションでU=更新(ファイル上書き)イベントだけを見てみる ▼ % cvs history -x U | less U 2002-08-20 13:14 +0000 mika 1.1 fish.jpg cvstest == ~/test/cvs-1.11.2/workcopy/cvstest U 2002-08-20 13:47 +0000 mika 1.2 tmp3.txt cvstest2/dir1 == ~/test/cvs-1.11.2/workcopy/cvstest2/dir1 U 2002-08-20 13:47 +0000 mika 1.1.1.1 tmp4.txt cvstest2/dir1/dir2 == ~/test/cvs-1.11.2/workcopy/cvstest2/dir1/dir2 (後略) ▲
■■4.6.3 WinCvsでhistory
WinCvsには残念ながら、historyを直接呼ぶメニューはありません。ですので、例によってメニュー[管理]→[コマンド入力(C)...]を使用します。
【図4.6.5】 [管理]→[コマンド入力(C)...]メニュー
で、出てきたダイアログに、cvs historyコマンドを打ち込みます。オプション無しだと上手くいかないかもしれないので、-eでもつけてみましょう。えい【図4.6.6】。
【図4.6.6】 コマンド入力ごそごそ
…なんかわらわらとアウトプット領域に出てくるのが結果です【図4.6.7】。
【図4.6.7】-eオプションで実行してみた ▼ cvs history -e O 2002-08-20 04:13 +0000 mika wintest =wintest= C:\home\mika\workcopy/* M 2002-08-20 04:17 +0000 mika 1.2 tmp1.txt wintest == C:\home\mika\workcopy\wintest A 2002-08-20 04:24 +0000 mika 1.1 tmp2.txt wintest == C:\home\mika\workcopy\wintest A 2002-08-20 04:27 +0000 mika 1.1 testimage.gif wintest == C:\home\mika\workcopy\wintest R 2002-08-20 04:35 +0000 mika 1.2 tmp2.txt wintest == C:\home\mika\workcopy\wintest A 2002-08-20 04:46 +0000 mika 1.1 test.txt wintest/newdir == C:\home\mika\workcopy\wintest\newdir O 2002-08-20 04:46 +0000 mika wintest =wintest2= C:\home\mika\workcopy/* A 2002-08-20 04:53 +0000 mika 1.1 test2.txt wintest/newdir2 == C:\home\mika\workcopy\wintest\newdir2 U 2002-08-20 04:54 +0000 mika 1.1 test2.txt wintest/newdir2 == C:\home\mika\workcopy\wintest2/newdir2 F 2002-08-20 04:58 +0000 mika =wintest2= C:\home\mika\workcopy/* A 2002-08-20 06:57 +0000 mika 1.1 tagtest.txt wintest == C:\home\mika\workcopy\wintest T 2002-08-20 07:02 +0000 mika wintest/tagtest.txt [TAGTEST2:A] M 2002-08-20 07:10 +0000 mika 1.2 tagtest.txt wintest == C:\home\mika\workcopy\wintest T 2002-08-20 07:11 +0000 mika wintest/tagtest.txt [TAGTEST2:A] M 2002-08-20 07:16 +0000 mika 1.3 tagtest.txt wintest == C:\home\mika\workcopy\wintest M 2002-08-20 07:20 +0000 mika 1.4 tagtest.txt wintest == C:\home\mika\workcopy\wintest T 2002-08-20 07:22 +0000 mika wintest/tagtest.txt [TAGTEST2:A] T 2002-08-20 07:29 +0000 mika wintest/tagtest.txt [TAGTEST2:D] A 2002-08-20 07:56 +0000 mika 1.1 difftest.txt wintest == C:\home\mika\workcopy\wintest U 2002-08-20 07:58 +0000 mika 1.1 difftest.txt wintest == C:\home\mika\workcopy\wintest M 2002-08-20 07:59 +0000 mika 1.2 difftest.txt wintest == C:\home\mika\workcopy\wintest U 2002-08-20 08:02 +0000 mika 1.2 difftest.txt wintest == C:\home\mika\workcopy\wintest M 2002-08-20 08:03 +0000 mika 1.3 difftest.txt wintest == C:\home\mika\workcopy\wintest *****CVS はコード 0 で終了しました***** ▲
なんか、タグと格闘したあとが見えますね…。このhistoryコマンドはWinCvsでもできますよってくらいですね…。
■■4.6.4 まとめ
●モジュールのチェックアウト状態を見るには 作業コピー内に入るかリポジトリを指定する ↓ cvs history ●全ての作業履歴を見るには 作業コピー内に入るかリポジトリを指定する ↓ cvs history -e ●特定のイベントの履歴を見るには 作業コピー内に入るかリポジトリを指定する ↓ cvs history -x イベント イベントの種類 文字 イベント T タグ O チェックアウト E エクスポート F リリース W 更新(ファイル削除) U 更新(ファイル上書き) C 更新(マージ、競合あり) G 更新(マージ、競合なし) M コミット(ファイル修正) A コミット(ファイル追加) R コミット(ファイル削除)