[目次へ][4章へ][4.2へ][4.4へ] 最終更新:$Date: 2002/08/20 08:43:58 $
■第4章 もう少し便利なコマンドの使い方
ちろちろといじってみる。データ取り直したほうがいいかな。(2002/8/13)
rlogについて追加、-sオプションが増えた。あれ?-wオプションも増えてる…いつ?
■■ 4.3 ファイルの履歴を見てみよう(log, rlog)
ファイルの更新履歴を知るためには、logあるはrlogというコマンドを使います。rlogは1.11.1から導入された比較的新しいコマンドです。log, rlogコマンドの書式はそれぞれ【図4.3.1】と【図4.3.2】のようになります。tag, rtagと同様に、logとrlogの違いは作業コピーを必要とするかどうかです。logは必要としますが、rlogは必要としません。rtagはその分モジュール指定が面倒です。
【図4.3.1】logコマンドの書式 ▼ cvs log [-lRhtNb] [-r[リビジョン(複数可)]] [-d 日付(複数可)] [-s 状態] [-w[ユーザ名]] [ファイル群...] ▲
【図4.3.2】rlogコマンドの書式 ▼ cvs rlog [-lRhtNb] [-r[リビジョン(複数可)]] [-d 日付(複数可)] [-s 状態] [-w[ユーザ名]] [ファイル群...] ▲
オプションで良く使うのは、リビジョンの指定の-rや日付指定の-dでしょうか。他のオプションは、出力形式の調整と他の選択基準の指定のどちらかです。詳細については付録Cを眺めてみてください。ここでは簡単な使い方だけ紹介します。
■■■4.3.1 いきなり使ってみる
…と、ちょっとびっくりするかもしれせん。ものによっては何百回と更新されているものもありますので。例えば、この間血迷ってCVSのマニュアルページのログを取ったら死にそうになりました。500回以上更新されてました…げふぅ。
ここでは、そういうすごいものではなくて、先ほどタグのテストに使用したtagtest.txtについてのログを見ることにします。実行時にはcvstestにいるとします。やってみましょう【図4.3.3】。
【図4.3.3】tagtestに対するログを調べる
▼
% cvs log tagtest.txt
RCS file: /home/cvsroot/cvstest/tagtest.txt,v
Working file: tagtest.txt
head: 1.4
branch:
locks: strict
access list:
symbolic names:
TAGTEST2: 1.4
TAGTEST1: 1.3
keyword substitution: kv
total revisions: 4; selected revisions: 4
description:
TAG Test
----------------------------
revision 1.4
date: 2002/08/12 03:41:53; author: mika; state: Exp; lines: +1 -0
rtag move test
----------------------------
revision 1.3
date: 2002/08/12 03:39:40; author: mika; state: Exp; lines: +0 -1
TAG Test 3
----------------------------
revision 1.2
date: 2002/08/12 03:35:35; author: mika; state: Exp; lines: +1 -0
TAG Test 2
----------------------------
revision 1.1
date: 2002/08/12 03:34:25; author: mika; state: Exp;
TAG Test
=============================================================================
▲
4回更新して、途中タグがつけられてます(都合によりタグは付け直してます)。最初の方にファイルの細かい情報が出てきて、「-」の区切り線の下から各リビジョンについての情報が続きます。リビジョンについての情報は3つの部分から成っていて、1行目がリビジョン番号、2行目がコミットされた日付、コミットした人、その時の状態と変化した行数になります。3行目以降がログメッセージです。それがそれぞれのリビジョンについて4回繰り返し、最後「=」の区切り線が終わりを示しています。
rlogの場合は、リポジトリへの問合せになりますので、モジュールの先頭ディレクトリから指定する必要があります。それ以外は同じです。ちょっとやってみましょう【図4.3.4】。
【図4.3.4】rlogを使ってみる
▼
cvs rlog cvstest/tagtest.txt
RCS file: /home/cvsroot/cvstest/tagtest.txt,v
head: 1.4
branch:
locks: strict
access list:
symbolic names:
TAGTEST2: 1.4
TAGTEST1: 1.3
keyword substitution: kv
total revisions: 4; selected revisions: 4
description:
TAG Test
----------------------------
(後略)
▲
■■■4.3.2 特定のリビジョンを指定してみる
特定のリビジョンを見たいときには、-rオプションを使います。たとえば、1.3だけ見たい場合は、-r1.3と指定します。1.1と1.3が見たい場合には、-r1.1,1.3のように指定します。【図4.3.5】がその実行例です。
【図4.3.5】リビジョンを指定してログを調べる
▼
% cvs log -r1.1,1.3
cvs log -r1.1,1.3 tagtest.txt
RCS file: /home/cvsroot/cvstest/tagtest.txt,v
Working file: tagtest.txt
head: 1.4
branch:
locks: strict
access list:
symbolic names:
TAGTEST2: 1.4
TAGTEST1: 1.3
keyword substitution: kv
total revisions: 4; selected revisions: 2
description:
TAG Test
----------------------------
revision 1.3
date: 2002/08/12 03:39:40; author: mika; state: Exp; lines: +0 -1
TAG Test 3
----------------------------
revision 1.1
date: 2002/08/12 03:34:25; author: mika; state: Exp;
TAG Test
=============================================================================
▲
rlogでも同様です【図4.3.6】。
【図4.3.6】rlogでのリビジョン指定
▼
% cvs rlog -r1.1,1.3 cvstest/tagtest.txt
RCS file: /home/cvsroot/cvstest/tagtest.txt,v
head: 1.4
branch:
locks: strict
access list:
symbolic names:
TAGTEST2: 1.4
TAGTEST1: 1.3
keyword substitution: kv
total revisions: 4; selected revisions: 2
description:
TAG Test
----------------------------
revision 1.3
date: 2002/08/12 03:39:40; author: mika; state: Exp; lines: +0 -1
TAG Test 3
----------------------------
revision 1.1
date: 2002/08/12 03:34:25; author: mika; state: Exp;
TAG Test
=============================================================================
▲
リビジョンや日付の指定方法には色々とあります。cvs --help logをすると指定方法が表示されます。付録Cにもありますので参考にしてください。
■■■4.3.3 WinCvsで履歴を見るには
見たいファイルかフォルダを選択した状態で、メニュー[問合せ]→[更新履歴の参照(Log)]を選ぶか、ファイルバー
の更新履歴アイコン
を選ぶかしてください。ここでは、wintest/tagtest.txtを対象にしてみます。
【図4.3.7】 [問合せ]→[更新履歴の参照(Log)]メニュー

と、【4.3.8】のようなダイアログが現われ、logコマンドのオプションに対応した選択肢の選択を促されます。が、面倒くさいので、ここではそのままやってみます。
【図4.3.8】 いろいろなオプションがあるなぁ…
と、logコマンドが実行され、【図4.3.9】のようなメッセージが、アウトプット領域に表示されます。上で見たのと構成は変わりませんね。ファイル情報が先頭にあって、次に4回の更新について新しいものから順に表示されます。
【図4.3.9】wintest/tagtest.txtの履歴 ▼ cvs log tagtest.txt (ディレクトリ C:\home\mika\workcopy\wintest\ 内) *****CVS はコード 0 で終了しました***** RCS ファイル : 'C:\home\cvsroot/wintest/tagtest.txt,v' 作業ファイル : 'tagtest.txt' 先頭リビジョン : 1.4 枝 : ロック : 厳重 アクセスリスト : キーワード置換子 : 'kv' 総リビジョン数 : 4 選択リビジョン数 : 4 説明 : ---------------------------- リビジョン : 1.4 日付 : 2002/8/20 7:20:35 変更者 : 'mika' 状態 : 'Exp' 変更行 : +1 -1 説明 : Revision 1.3 for tag moving test using rtag command. ---------------------------- リビジョン : 1.3 日付 : 2002/8/20 7:16:55 変更者 : 'mika' 状態 : 'Exp' 変更行 : +1 -1 説明 : Revision 1.3 for tag moving test using tag command. ---------------------------- リビジョン : 1.2 日付 : 2002/8/20 7:10:14 変更者 : 'mika' 状態 : 'Exp' 変更行 : +1 0 説明 : Revision 1.2 for rtag test. ---------------------------- リビジョン : 1.1 日付 : 2002/8/20 6:57:28 変更者 : 'mika' 状態 : 'Exp' 変更行 : +0 0 説明 : A tag test file. =============================================== ▲
■■■■ リビジョンを指定してみる
リビジョンを指定するには、【図4.3.8】のダイアログでフィルタタブを選択して設定します【図4.3.10】。ここでは「リビジョン・タグで絞込み(R)」チェックボックスを有効にして、右のボックスに条件を書き込んでみましょう。たとえば、リビジョン1.2の情報を取ってくることにしましょう。ちなみにボックス右端の▼をクリックすると書き方サンプルが表示されます。
【図4.3.10】 リビジョンの指定の仕方を教えてくれてる…親切?
この条件で「OK」ボタンを押すと、【図4.3.11】のようなメッセージがアウトプット領域に出力されます。なんか、全然嬉しくないコミットメッセージですけど。うう。
【図4.3.11】ということでリビジョン1.2の情報が取れました ▼ cvs log -r1.2 tagtest.txt (ディレクトリ C:\home\mika\workcopy\wintest\ 内) *****CVS はコード 0 で終了しました***** RCS ファイル : 'C:\home\cvsroot/wintest/tagtest.txt,v' 作業ファイル : 'tagtest.txt' 先頭リビジョン : 1.4 枝 : ロック : 厳重 アクセスリスト : キーワード置換子 : 'kv' 総リビジョン数 : 4 選択リビジョン数 : 1 説明 : ---------------------------- リビジョン : 1.2 日付 : 2002/8/20 7:10:14 変更者 : 'mika' 状態 : 'Exp' 変更行 : +1 0 説明 : Revision 1.2 for rtag test. =============================================== ▲
なお、4.1.9節で見た更新履歴グラフ【図4.1.51】はこのlogの出力を整形したものです。ですので、オプション選択のダイアログはlogのものと同じです。グラフの各ノードを選ぶことで、そのノードの情報だけ見ることもできます。情報が表示されるのは相変わらずアウトプット領域ですけれど。
WinCvs1.2は1.11ベースなため、rlogに対応していません。WinCvs1.3b8はcvsnt 1.11.1.3ベースなので、cvs自体はrlogに対応しています。が、メニューはないのでコマンドライン入力になります。
■■■4.3.3 まとめ
●ファイル(targetfile)の全履歴を見るには 作業コピー内に入る ↓ cvs log targetfile ●ファイル(targetfile)の特定リビジョン(1.x)のログを見るには 作業コピー内に入る ↓ cvs log -r1.x targetfile