7
Bazaarを使うために理解する必要のある概念は4つあります:
9
* **リビジョン(Revision)** - 取り組むファイルのスナップショット
11
* **作業ツリー(Working tree)** - バージョン管理されたファイルとサブディレクトリを含むディレクトリ
13
* **ブランチ(Branch)** - ファイルの履歴を記述する、順序づけされたリビジョンの集合
15
* **リポジトリ(Repository)** - リビジョンの貯蔵場所
22
リビジョンはファイルとディレクトリの内容と形を含むそれらのツリーの状態の **スナップショット** です。
23
リビジョンはそれ自身に関連づけされたメタデータをいくつか含みます。メタデータには次のようなものが含まれます:
28
* そのリビジョンの元になった親のリビジョン
30
リビジョンは不変で、グローバルかつユニークに **リビジョンid (revision-id)** で識別できます。
33
pqm@pqm.ubuntu.com-20071129184101-u9506rihe4zbzyyz
35
リビジョンidはコミットする、もしくは他のシステムからインポートする時点で生成されます。
36
リビジョンidは内部で利用するときや外部ツールとの統合に必要ですが、
37
ブランチ固有の **リビジョン番号** (*revision numbers*)の方が人間に好まれるインタフェースに\
40
リビジョン番号は 1 や 42 や 2977.1.59 のようにドットで区切られた10進法の識別子で\
41
ブランチに対するリビジョン番号のグラフを通してパスを追跡します。
42
リビジョン番号は一般的にリビジョンidよりも短く、単独のブランチの範囲では
43
それらの関係を理解するためにそれぞれを比較できます。
44
たとえば、リビジョン10はリビジョン9の直後のメインライン(下記を参照)のリビジョンです。
45
リビジョン番号はコマンドが実行されているときに生成されます。
46
これらはブランチ内でどのリビジョンがチップ(すなわち最新のリビジョン)であるかに依存するからです。
48
Bazaarで指定できるリビジョンとリビジョンの範囲のいくつかの方法に関しては、付録の
49
`リビジョンを指定する <specifying_revisions.html>`_ を参照してください。
50
リビジョンの番号付けの詳細に関しては `リビジョン番号を理解する <zen.html#understanding-revision-numbers>`_
53
.. *TODO: add diagram*
58
作業ツリー(working tree)は ユーザーが編集できるファイルを保持する
59
*バージョン管理されたディレクトリ* です。
60
作業ツリーは *ブランチ* に関連付けされます。
62
多くのコマンドは作業ツリーをそれぞれの文脈で使います。
63
たとえば、 ``commit`` コマンドは作業ツリーの中のファイルの\
64
現在の内容を利用して新しいリビジョン番号を作ります。
66
.. *TODO: add diagram*
71
最もシンプルな場合、ブランチは *順序づけされた一連のリビジョン* です。
72
最終リビジョンは *チップ(tip)* として知られます。
74
ブランチは分かれたりその後再結合(*marged* back)されたりして、\
76
技術的にいえば、グラフは(親と子のリビジョンの間)の有行な関係を表し、\
77
ループが存在しないので、 *directed acyclic graph* (DAG) として\
80
この名前にギョッとするかもしれませんが、ご心配なく。
83
* DAGの範囲内での開発の主要なラインは *メインライン(mineline)*,
84
*トランク(trunk)*, もしくは単に *左側(left hand side: LHS)* と呼ばれます。
86
* ブランチはメインラインではない開発ラインを持つことがあります。
87
そのとき、別のラインはある時点で始まり別の時点で終わります。
89
.. *TODO: add diagram*
94
レポジトリはシンプルにいえば *リビジョンの保管場所* です。
95
最もシンプルな事例では、それぞれのブランチが独自のレポジトリを持ちます。\
96
別の事例では、ディスクの使用量を最適化するためにブランチに対してレポジトリを\
99
.. *TODO: add diagram*
104
上記の概念を把握したら、Bazaarのさまざまな使い方が理解しやすくなります。
105
Bazaarの最もシンプルな使い方は *スタンドアロンツリー(standalone tree)* で、\
106
これは1つの位置に作業ツリー、ブランチとレポジトリのすべてが含まれます。
107
他のよくあるシナリオには次のようなものがあります:
109
* `共用リポジトリ(shared branch) <branching_a_project.html#a-reminder-about-shared-repositories>`_
110
- 作業ツリーとブランチは同じディレクトリにありますが、リポジトリは高い階層の\
113
* `スタックブランチ(stacked branch) <stacked.html>`_
114
- 親のリポジトリと共通なリビジョンは親のリポジトリのものを利用することで、
115
ブランチはユニークなリビジョンだけを保存します。
117
* `軽量チェックアウト(lightweight checkout) <using_checkouts.html#getting-a-lightweight-checkout>`_
118
- 作業ツリーとは別の場所にブランチが保存されます。
120
Bazaarを使う最良の方法は、あなたのニーズ次第です。