チュートリアル - リポジトリの履歴を調べる
今、私達はちょうど JapaneseTutorialClone に従って リポジトリ を複製したところです; 私達のローカルのコピーは my-hello と呼ばれています。
このリポジトリの履歴を見てみましょう。そうするためには、log コマンドを使います。これは リポジトリ に起きたすべての出来事の要約を、最新のものから時間を遡って表示します。
$ cd my-hello $ hg log changeset: 1:82e55d328c8c tag: tip user: mpm@selenic.com date: Fri Aug 26 01:21:28 2005 -0700 summary: Create a makefile changeset: 0:0a04b987be5a user: mpm@selenic.com date: Fri Aug 26 01:20:50 2005 -0700 summary: Create a standard "hello, world" program
出力されたこれらの行はいくつかのことを述べています。
各段落はあるチェンジセットを表しています。チェンジセットとは 1つ以上のファイルの変更を、1つの論理的な単位にまとめられたものです。
changeset はそのチェンジセットの固有IDです。
user はその チェンジセット を作成した人を特定します。これは自由な書式の文字列です; たいていはメールアドレスを、ときどき人名も含みます。
date はいつその チェンジセット が作成されたかを特定します。これらの日付はその チェンジセット の作成者の地域の時間帯で表示されます。
summary はそのチェンジセットの説明の最初の行を表示します。これは その チェンジセット の目的を自身や他の人々が理解するのに役立つように、そのチェンジセットの作成者が作成時に入力したものです。
parent は チェンジセット の親を特定します。いくつかのリポジトリから変更をマージしたときには、これは複数になることがあります。
- ほとんどの場合、親は 1つだけで、そのチェンジセットよりも古いチェンジセットを1つ指します。これは上記の私達の例にも当てはまります。
-v オプションを使うことで、より詳細な履歴情報を得ることができます。--debug グローバルオプションを使うとありとあらゆるものが出力されます。
$ hg log -v changeset: 1:82e55d328c8ca4ee16520036c0aaace03a5beb65 tag: tip user: mpm@selenic.com date: Fri Aug 26 01:21:28 2005 -0700 files: Makefile description: Create a makefile (...) $ hg log --debug manifest: 1:0c7c1d435e6703e03ac6634a7c32da3a082d1600 changeset: 1:82e55d328c8ca4ee16520036c0aaace03a5beb65 tag: tip parent: 0:0a04b987be5ae354b710cefeba0e2d9de7ad41a9 parent: -1:0000000000000000000000000000000000000000 user: mpm@selenic.com date: Fri Aug 26 01:21:28 2005 -0700 files+: Makefile description: Create a makefile (...)
詳細な出力はデフォルトの出力よりいくらか多くのフィールドを含んでいます。
changeset は省略されていない ChangeSetID を表示するようになります。
files はその チェンジセット で変更されたファイルを列挙します。
description はその チェンジセット の説明を 1 行だけでなく、複数行全てを含みます。
- 私達の例では、説明は 1 行分の長さしかないので、あまりかわり映えしません。
--debug 出力は詳細な出力に加えて次のフィールドを表示します。
file+ はこのチェンジセットで追加されたファイルを列挙します。
file- はこのチェンジセットで削除されたファイルを列挙します。
manifest はこのチェンジセットのマニフェスト ID を表示します。
2つの parent フィールドはこのチェンジセットの両親の チェンジセット ID を表示します。-1:0000000000000000000000000000000000000000 は無効な親を参照しています。
-r オプションを指定した log コマンド は特定のチェンジセットを表示します。
$ hg log -r1 changeset: 1:82e55d328c8c tag: tip user: mpm@selenic.com date: Fri Aug 26 01:21:28 2005 -0700 summary: Create a makefile
-r オプションは実際はチェンジセットの範囲を指定するのに大変柔軟な構文をサポートしています。しかし、私達のサンプルのリポジトリでは、使えるチェンジセットの数が制限されているので、上手く実演することはできません。詳細は Mercurial の マニュアルページ を調べてください。
-p オプションを指定した log コマンドは、そのチェンジセットに関連したパッチを表示します。
$ hg log -r1 -p changeset: 1:82e55d328c8c tag: tip user: mpm@selenic.com date: Fri Aug 26 01:21:28 2005 -0700 summary: Create a makefile diff -r 0a04b987be5a -r 82e55d328c8c Makefile --- /dev/null Fri Aug 26 01:20:50 2005 -0700 +++ b/Makefile Fri Aug 26 01:21:28 2005 -0700 @@ -0,0 +1,1 @@ +all: hello
tip、すなわち最新のチェンジセットの情報を表示するのに tip コマンドを使うことができます。tip コマンドは log -r tip へのショートカットと考えることもできますが、-p オプションはサポートしていません。
$ hg tip changeset: 1:82e55d328c8c tag: tip user: mpm@selenic.com date: Fri Aug 26 01:21:28 2005 -0700 summary: Create a makefile $ hg log -r tip changeset: 1:82e55d328c8c tag: tip user: mpm@selenic.com date: Fri Aug 26 01:21:28 2005 -0700 summary: Create a makefile
何が起きたかをちょっとは知ることができたので、いくつか変更を加えてみましょう! JapaneseTutorialFirstChange に進みます。