#language ja == チュートリアル - リポジトリの履歴を調べる == 今、私達はちょうど JapaneseTutorialClone に従って [[Repository|リポジトリ]] を複製したところです; 私達のローカルのコピーは {{{my-hello}}} と呼ばれています。 このリポジトリの履歴を見てみましょう。そうするためには、{{{log}}} コマンドを使います。これは [[Repository|リポジトリ]] に起きたすべての出来事の要約を、最新のものから時間を遡って表示します。 {{{ $ 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 }}} 出力されたこれらの行はいくつかのことを述べています。 * 各段落はある[[ChangeSet|チェンジセット]]を表しています。[[ChangeSet|チェンジセット]]とは 1つ以上のファイルの変更を、1つの論理的な単位にまとめられたものです。 * 上の例では、[[Repository|リポジトリ]] の履歴が 2つの [[ChangeSet|チェンジセット]] からなることがわかります。 * {{{changeset}}} はその[[ChangeSet|チェンジセット]]の固有IDです。 * コロンの前の最初の数字は[[RevisionNumber|リビジョンナンバー]]を表します; リビジョンナンバーは[[ChangeSet|チェンジセット]]を特定するためのローカルな簡単な方法です。これはこの[[Repository|リポジトリ]]内でのみ有効です。 * コロンの後の長い 16 進数の文字列は ChangeSetID です。これは[[ChangeSet|チェンジセット]]を一意的に特定し、この[[ChangeSet|チェンジセット]]を含む全てのリポジトリ内で同じ値です。もしあなたが他の誰かとある[[ChangeSet|チェンジセット]]について議論するなら、[[RevisionNumber|リビジョンナンバー]] ではなく ChangeSetID を使ってください。 * {{{tag}}} はある [[ChangeSet|チェンジセット]] の任意の名前である [[Tag|タグ]] を表します。 * どの[[ChangeSet|チェンジセット]]にも 1 つ以上の [[Tag|タグ]] を割り振ることができます。実際は多くの [[ChangeSet|チェンジセット]] がそれに関連付けられた [[Tag|タグ]] を持っていないため、{{{tag}}} 行はめったに現れません。 * {{{tip}}} と名付けられた特別な [[Tag|タグ]] は常に [[Tip]] を指します。これは[[Repository|リポジトリ]]内の最も新しい[[ChangeSet|チェンジセット]]です。もし、別のチェンジセットを作成したら(もうすぐそうしますよ)、それが [[Tip]] になります。 * {{{user}}} はその [[ChangeSet|チェンジセット]] を作成した人を特定します。これは自由な書式の文字列です; たいていはメールアドレスを、ときどき人名も含みます。 * {{{date}}} はいつその [[ChangeSet|チェンジセット]] が作成されたかを特定します。これらの日付はその [[ChangeSet|チェンジセット]] の作成者の地域の時間帯で表示されます。 * {{{summary}}} はその[[ChangeSet|チェンジセット]]の説明の最初の行を表示します。これは その [[ChangeSet|チェンジセット]] の目的を自身や他の人々が理解するのに役立つように、その[[ChangeSet|チェンジセット]]の作成者が作成時に入力したものです。 * {{{parent}}} は [[ChangeSet|チェンジセット]] の親を特定します。いくつかのリポジトリから変更をマージしたときには、これは複数になることがあります。 * ほとんどの場合、親は 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}}} はその [[ChangeSet|チェンジセット]] で変更されたファイルを列挙します。 * {{{description}}} はその [[ChangeSet|チェンジセット]] の説明を 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 の [[http://mercurial-users.jp/manual/hg.1.html|マニュアルページ]] を調べてください。 {{{-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 に進みます。 ---- CategoryJapanese