.. _specifying-revisions:

リビジョンを指定する
====================

.. _revision-identifiers-and-ranges:

リビジョンの識別子と範囲
-------------------------

Bazaarは1つのリビジョンもしくはリビジョンの範囲を指定するための豊富な表現方法を持ちます。
リビジョンの範囲を指定するには、上限と下限を ``..`` のシンボルで区切ります。例です::

    $ bzr log -r 1..4

境界値の片方を省略できます::

    $ bzr log -r 1..
    $ bzr log -r ..4

コマンドの中には範囲ではなく1つのリビジョンだけをとるものがあります。例です::

    $ bzr cat -r 42 foo.c

他の場合、範囲は必要ですが、範囲の長さを1つにします。
これに関連したコマンドについて、 ``-c`` オプションは次のように使われます::

    $ bzr diff -c 42

.. _available-revision-identifiers:

利用可能なリビジョンの識別子
------------------------------

リビジョン、もしくは範囲の境界、は
下記に示される異なるフォーマットを利用して渡すことができます。

 +----------------------+--------------------------------------------+
 |  引数の型            | 説明                                       |
 +----------------------+--------------------------------------------+
 | *number*             | リビジョン番号                             |
 +----------------------+--------------------------------------------+
 | **revno**:*number*   | 正のリビジョン番号                         |
 +----------------------+--------------------------------------------+
 | **last**:*number*    | 負のリビジョン番号                         |
 +----------------------+--------------------------------------------+
 | **revid**:*guid*     | グローバルでユニークなリビジョンID         |
 +----------------------+--------------------------------------------+
 | **before**:*rev*     | ''rev''の左端の親                          |
 +----------------------+--------------------------------------------+
 | **date**:*value*     | 渡された日付の後の最初のエントリ           |
 +----------------------+--------------------------------------------+
 | **tag**:*value*      | 渡されたタグにマッチするリビジョン         |
 +----------------------+--------------------------------------------+
 | **ancestor**:*path*  | ブランチからのマージされた最新のリビジョン |
 +----------------------+--------------------------------------------+
 | **branch**:*path*    | 別のブランチの最新リビジョン               |
 +----------------------+--------------------------------------------+
 | **submit**:*path*    | 投稿ブランチの共通の祖先                   |
 +----------------------+--------------------------------------------+

これらのフォーマットの手短な紹介は下記のとおりです。
完全な詳細内容に関しては、 Bazaarユーザーリファレンスの `リビジョンの識別子`_ を参照してください。

.. _リビジョンの識別子: ../user-reference/bzr_man.html#revision-identifiers

番号
~~~~~

正の数は現在のブランチにおけるリビジョン番号を表します。
リビジョン番号は ``bzr log`` の出力の中で "revno"とラベルされます。
最初の10のリビジョンのログを表示するには::

    $ bzr log -r ..10

負の数は最新リビジョンから数えます。-1は最後にコミットされたリビジョンです。

最新の10のリビジョンのログを表示するには::

    $ bzr log -r -10..

revid
~~~~~

**revid** は ``bzr log`` と他のコマンドによって示される内部のリビジョンIDの指定を可能にします。

例です::

    $ bzr log -r revid:Matthieu.Moy@imag.fr-20051026185030-93c7cad63ee570df

before
~~~~~~

**before**
    ''rev''は''rev'' の左端の親を指定します。
    これはリビジョンの履歴で ''rev'' の前に現れるリビジョン、
    もしくは ''rev'' がコミットされたときに最新であったリビジョンです。

''rev'' はリビジョンの識別子であり連結できます。

例です::

    $ bzr log -r before:before:4
    ...
    revno: 2
    ...

date
~~~~

**date**
    ''value'' は真夜中もしくは指定された時刻での与えられた日付の、
    深夜12時か指定された時刻の後の最初の履歴エントリにマッチします。

正式な値は次のとおりです:

 * **yesterday**
 * **today**
 * **tomorrow**
 * **YYYY-MM-DD** 書式の日付
 * **YYYY-MM-DD,HH:MM:SS** 書式の日付/時間、2番目はオプションです (コンマに注意)

"今日のログエントリすべてをください"ということを伝える適切な方法は次のとおりです::

    $ bzr log -r date:yesterday..date:today

Ancestor
~~~~~~~~

**ancestor**:*path*
    現在のブランチと異なるブランチ間の共通の祖先を指定します。
    これはマージの目的に使われる同じ祖先です。

*path* はリモートブランチのURLもしくはローカルブランチへのファイルパスになります。

たとえば、 ``../parent`` からフォークされた以降のブランチで行われた変更を見るには::

    $ bzr diff -r ancestor:../parent

Branch
~~~~~~

branch
   ``path`` は別のブランチの最新リビジョンを指定します。

``path`` はリモートブランチのURLもしくはローカルブランチへのファイルパスです。

たとえば、手元のブランチと別のブランチの間の違いを取得するには::

    $ bzr diff -r branch:http://example.com/bzr/foo.dev

