Differences between revisions 7 and 8
Revision 7 as of 2008-01-15 15:40:21
Size: 8270
Editor: abuehl
Comment: cat
Revision 8 as of 2008-01-15 23:24:09
Size: 8286
Editor: abuehl
Comment: #language ja
Deletions are marked like this. Additions are marked like this.
Line 1: Line 1:
#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://www.selenic.com/mercurial/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

JapaneseTutorialHistory (last edited 2012-06-30 14:01:47 by YuyaNishihara)