変更を記録する
===============

bzr commit
----------

作業ツリーの状態が満足のゆくものであるとき、これをブランチに **コミット** できます。
そしてその状態のスナップショットを保持する新しいリビジョンが作られます。

**commit** コマンドはリビジョンの変更を記述するメッセージをとります。
コミットはあなたのユーザーID、現在の時間とタイムゾーン、一覧表とツリーの内容も記録します。
コミットメッセージは ``-m`` もしくは ``--message`` オプションによって指定されます。
複数行のコミットメッセージを入力できます;
大抵のシェルでは行の終わりで引用符を開いたままにするだけで入力できます。

::

    % bzr commit -m "added my first file"

ファイルからメッセージを得るために ``-F`` オプションを使うことができます。
中には、作業している間にコミットメッセージ用のノートを作り、自分が何を行い何を発言したのか
確認するために差分をレビューしたい人がいます。
(このファイルは一休みしてから作業を取り出すのにも役立ちます)

エディタからのメッセージ
-------------------------

``-m`` もしくは ``-F`` オプションを使わないのであれば、
bzrはメッセージを入力するためにエディタを開きます。
起動させるエディタは ``$VISUAL`` もしくは ``$EDITOR`` 環境変数によって制御され、
``~/.bazaar/bazaar.conf`` の中の ``editor`` 設定によって上書きできます;
``$BZR_EDITOR`` は上記で言及したエディタのオプションを上書きします。
変更なしでエディタを閉じると、コミットはキャンセルされます。

エディタの中で開かれるファイルは境界線を含みます。
この行の下のファイルの部分は情報用のみのために含まれ、コミットメッセージには\
含まれません。
セパレータの下側はコミットで変更されるファイルの一覧が表示されます。
上記の行の上側でメッセージを書き、ファイルを保存して閉じます。

編集メッセージとしてコミットする差分を見たければ ``--show-diff`` オプションを使うことができます。
これはエディタが開くときにエディタの差分を含みます。セパレータの下とファイルに関する情報はコミットされます。
これは書いたメッセージを読むことができることを意味しますが、
差分自身は終了したときにコミットメッセージに表示されません。
一部をメッセージに含めたいのであれば、それらをセパレータの上側にコピー＆ペーストできます。

選択可能なコミット
------------------

コミットのコマンドラインでファイルもしくはディレクトリの名前を渡すと
それらのファイルへの変更のみがコミットされます。たとえば::

    % bzr commit -m "documentation fix" commit.py

デフォルトではサブディレクトリから実行されたとしても
bzrは常にツリーへのすべての変更をコミットします。
現在のディレクトリのみからコミットするには、ドットを引数として使います::

    % bzr commit .

変更に署名をつける
-------------------

たとえば誰かのパッチを適用するときなど、コミットしようとしている変更があなたのものでないなら、 ``--author`` という commit のオプションを使って変更に署名をつけられます。 ::

    % bzr commit --author "Jane Rey <jrey@example.com>"

ここで指定された人はそのリビジョンの "author" として記録され、\
あなたはそのリビジョンの "committer" として記録されます。

もしリビジョンの変更がペアプログラミングなどにより複数の人に作られたもの\
ならば、 ``--author`` を複数回指定して記録することができます。 ::

    % bzr commit --author "Jane Rey <jrey@example.com>" \
        --author "John Doe <jdoe@example.com>"

