~bzr-pqm/bzr/bzr.dev

4634.99.1 by Naoki INADA
import doc-ja rev90
1
スタックブランチを利用する
2
==========================
3
5875.1.1 by INADA Naoki
Update Japanese docs.
4
.. _motivation:
5
6
ユースケース
7
--------------
8
9
あるプロジェクトで作業しようとしていて、公開されているリポジトリに対して
10
読み込みアクセスはできるものの書き込みができないとしましょう。
11
公開されているリポジトリと同じホストで自分のブランチを公開したりバックアップ
12
したりする場合、スタックブランチを使うことができるかもしれません。
13
14
スタックブランチの他のユースケースとしては、実験的なブランチと、コード
15
ホスティングサイトが挙げられます。これらのシナリオではスタックブランチの
16
特性がぴったりあいます。
17
18
4634.99.1 by Naoki INADA
import doc-ja rev90
19
スタックブランチとは?
20
-------------------------
21
5875.1.1 by INADA Naoki
Update Japanese docs.
22
スタックブランチ(stacked branch)は別の(スタック先)ブランチのリビジョンを
23
見つける方法を知っています。
24
スタックブランチはスタック先ブランチには存在しないユニークなリビジョンのみを
25
保存することで、ブランチの作成を高速にしたり、ディスク利用効率を向上します。
4634.99.1 by Naoki INADA
import doc-ja rev90
26
これらの観点から、スタックブランチは共用リポジトリと似ています。
27
しかしながら、スタックブランチは追加の利点があります:
28
29
* 新しいブランチはスタックされたブランチとは完全に異なる位置に設置できます。
30
31
* スタックブランチを削除すれば(共用リポジトリだと残ってしまう)
5875.1.1 by INADA Naoki
Update Japanese docs.
32
  リビジョンの情報も削除されます
4634.99.1 by Naoki INADA
import doc-ja rev90
33
34
* セキュリティは共用リポジトリよりも向上しています。
5875.1.1 by INADA Naoki
Update Japanese docs.
35
  スタック先のリポジトリはスタックブランチにコミットする開発者に対して
36
  物理的にリードオンリーだからです。
4634.99.1 by Naoki INADA
import doc-ja rev90
37
38
39
スタックブランチを作成する
5609.42.1 by Alexander Belchenko
improved some ReST syntax in Japanese documentation.
40
--------------------------
4634.99.1 by Naoki INADA
import doc-ja rev90
41
42
スタックブランチを作成するには、branchコマンドの ``stacked`` オプションを使用します。
43
例です::
44
45
  bzr branch --stacked source-url my-dir
46
47
このコマンドによって ``my-dir`` がローカルリビジョンなしのスタックブランチ\
48
として作成されます。
49
定義されると、 ``source-url`` に関連づけされた公開ブランチは
50
*スタックドオン(stacked on)* の位置として使われます。
51
さもなければ、 ``source-url`` は *スタックドオン* の位置になります。
52
53
54
スタックチェックアウトを作成する
55
-----------------------------------
56
57
スタックチェックアウトを直接作成する機能はまもなくサポートされる予定です。
58
それまでの間、2段階の処理が必要です:
59
60
1. 上記で示されたようにスタックブランチを作成する。
61
62
2. ``reconfigure`` もしくは ``bind`` コマンドのどちらかを利用して
63
   ブランチをチェックアウトに変換する。
64
65
66
スタックブランチをプッシュする
67
---------------------------------
68
69
多くのプロジェクトの大部分の変更は
70
*開発トランク* or *現在の安定* ブランチといった既存のブランチを基礎としています。
71
これらの1つにスタックされた新しいブランチの作成は ``push`` コマンドを利用して
72
次のように簡単にできます::
73
74
  bzr push --stacked-on reference-url my-url
75
5875.1.1 by INADA Naoki
Update Japanese docs.
76
このコマンドでは、 ``reference-url`` にスタックした新しいブランチを ``my-url``
77
に作成し、 ``reference-url`` には無いリビジョンだけをそこに格納します。
78
``my-url`` は ``reference-url`` と同じホストでも構いません。
79
80
.. The following text is hidden because bug 375013 breaks the example.
81
   When bug 375013 is fixed, we should unhide this text.
82
      - Andrew Bennetts, 10 March 2010
4634.99.1 by Naoki INADA
import doc-ja rev90
83
84
ローカルブランチがスタックブランチとして作成された場合、
85
``push`` するには ``--stacked`` オプションを使うことが可能で
5875.1.1 by INADA Naoki
Update Japanese docs.
86
スタック先の位置を省略できます。::
4634.99.1 by Naoki INADA
import doc-ja rev90
87
88
  bzr branch --stacked source-url my-dir
89
  cd my-dir
90
  (hack, hack, hack)
91
  bzr commit -m "fix bug"
92
  bzr push --stacked
93
5875.1.1 by INADA Naoki
Update Japanese docs.
94
この使い方は、上述したユースケースにマッチしています。
95
4634.99.1 by Naoki INADA
import doc-ja rev90
96
97
スタックブランチの制限
98
----------------------
99
100
スタックブランチに関して覚えておくべき大事なことは、ほとんど全ての\
5875.1.1 by INADA Naoki
Update Japanese docs.
101
オペレーションでスタック先ブランチが必要になることです。
4634.99.1 by Naoki INADA
import doc-ja rev90
102
これは両方のブランチがローカルもしくは同じサーバーにあるときは\
103
問題にはなりません。
104
5875.1.1 by INADA Naoki
Update Japanese docs.
105
また、ほとんどの履歴がスタック先リポジトリに格納されているので、スタック先
106
リポジトリへのアクセスがネットワーク経由だった場合に ``bzr log``
107
のようなコマンドが遅くなるかもしれません。
108
 
4634.99.1 by Naoki INADA
import doc-ja rev90
109
スタックするブランチを変更する
110
-------------------------------
111
112
``bzr reconfigure`` コマンドを使ってスタックドオンブランチを変更したり\
113
スタックするのをやめたりすることができます。
114
``bzr reconfigure --unstacked`` を実行した場合、bzrは全ての参照されているデータを\
115
スタックドオンブランチからスタックされていたブランチにコピーしてくることに\
116
注意してください。
117
大きなレポジトリにおいては、これは時間がかかったりリポジトリサイズを増大\
118
させたりします。