Kiln » TortoiseHg » TortoiseHg
Clone URL:  
quick.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
****************************************** せっかちな人のためのクイックチュートリアル ****************************************** .. module:: tour :synopsis: A Gentle Introduction to Using TortoiseHg on Windows Mercurial はいくつもの異なる `コラボレーションモデル <http://hgbook.red-bean.com/read/collaborating-with-other-people.html>`_ に対応しています。本節ではその中の1つである中央リポジトリ型について説明します。 中央リポジトリ型は他のモデルにようにスケールしませんが、誰もが最初に 試すアプローチですし、他のバージョン管理ツールなどでもよく知られています。 さて、始めるにあたって中央リポジトリを作成したいと思います。 既存の Mercurial 以外のリポジトリを `変換 <http://mercurial.selenic.com/wiki/RepositoryConversion>`_ する方法も ありますが、ここでは空っぽの新しいリポジトリから始めます。 これ以降、既に TortoiseHg が正しくインストールされており、エクスプローラなどで プロジェクトのディレクトリが開かれているものとして話を進めていきます。 TortoiseHg の設定 ================= まず最初に TortoiseHg にあなたが誰なのかを教えなければなりません。 TortoiseHg のグローバル設定から設定できます。プロジェクトディレクトリを 右クリックして :menuselection:`TortoiseHg --> グローバル設定` を選択します。 .. figure:: figures/cmenu-nofiles.jpg :alt: Context Menu そして :guilabel:`コミット` タブに切り替えて、 :guilabel:`ユーザ名` の テキストボックスに名前を入力してください。 .. note:: ユーザ名の設定をし忘れた場合、TortoiseHg は必要に応じてコミット時にユーザ名の 入力を促します。 .. note:: ユーザ名として設定する名前の形式に厳密なルールがあるわけではありませんが、 多くの人が次のような形式を採用しています: 氏名 <電子メールアドレス> 例えば: Taro Yamada <taroyamada@example.net> 電子メールアドレスはチェンジログビューアで履歴を表示する際には削除され、 Mercurial 内蔵のウェブサーバを利用した場合はスパム対策のためメールアドレス の一部のみ表示されます。 リポジトリの初期化 ================== 右クリックメニューの :guilabel:`ここにリポジトリを作成` を選択するか、 コマンドラインから :command:`hgtk init` を実行して最初のリポジトリを ローカルディスク上に作成してみましょう。 この作業はプロジェクトディレクトリのルートで一度だけ行ってください。 .. figure:: figures/init.png :alt: リポジトリ初期化ダイアログ 特に理由がなければ :guilabel:`特殊ファイルを追加する (.hgignoreなど)` にチェックを入れ、 :guilabel:`Mercurial 1.0 互換のリポジトリを作成` のチェックは外した状態で リポジトリを作成すると良いでしょう。 :guilabel:`作成` ボタンを押すと Mercurial はプロジェクトディレクトリに :file:`.hg` という名前のディレクトリを作成します。 ここには Mercurial の全てのバージョン情報が保管され、一般に *リポジトリ* と呼ばれています。一方、実際のソースファイルなどが含まれているディレクトリを *作業ディレクトリ* と呼びます。コマンドを実行するときこの :file:`.hg` ディレクトリを指定する必要はなく、作業ディレクトリのルートを指定するだけで 大丈夫です。これは Mercurial がどのように動いているのかを理解するために 覚えておくと良いかもしれません。 .. warning:: :file:`.hg` を直接編集することはリポジトリの破損を引き起こすため危険です。 ただし :file:`.hg/hgrc` のみ例外的に編集が認められています。 ファイルの追加 ============== いよいよ Mercurial にどのファイルを管理下に置き、どのファイルを無視すべき なのかを指定します。これにはいくつものやり方があります: 1. エクスプローラで追加したいファイルを右クリックしてメニューを開いて :menuselection:`TortoiseHg --> 追加` を選択します。 この操作はすぐに実行され、TortoiseHg のダイアログは表示されませんが、 エクスプローラでそのファイルのアイコンオーバーレイが追加されたことを示す アイコンに変わったことを確認できます。 2. もしくは、ステータスツール (:menuselection:`TortoiseHg --> 変更点の確認` またはコマンドラインから :command:`hgtk status`) を開いて追加したいファイルの チェックボックスにチェックを入れ、 :guilabel:`追加` ボタンを押します。 ステータスツールでは、不明なファイルの右クリックメニュー (:guilabel:`無視`) から無視フィルタツールを開くこともできます。 3. または、ファイルの追加を独立した作業として行わず、コミットツールで済ます ことも可能です。コミットツールはステータスツールと非常に似ており、 ステータスツールで可能な操作は全てコミットツールでも行えます。 このツールではファイルにチェックを入れて :guilabel:`コミット` ボタンを押す ことで、まだ Mercurial 管理下に置かれていないファイルの追加およびコミット することができます。 4. 無視ファイルを指定するために無視フィルタダイアログを開きます: 右クリックメニューから :menuselection:`TortoiseHg --> 無視フィルタの編集` を選択するか、コマンドラインから :command:`hgtk hgignore` を実行します。 一覧からファイルを選択するか直接 *Glob* または *正規表現* を入力して :guilabel:`追加` ボタンを押してください。ここでの変更は即座に反映されます。 .. note:: :file:`.hgignore` ファイルは作業ディレクトリのルートに含まれており、 通常は Mercurial のバージョン管理下に置かれています。 .. note:: 作業ディレクトリにたくさんの *不明* ファイルを放置したままにしないというのは、 バージョン管理下に置くべきファイルの追加し忘れを未然に防ぐという意味で よい習慣と言えます。そのため :file:`.hgignore` ファイルを極力最新の状態に 保つよう努めてください。 コミット ======== プロジェクトディレクトリを右クリックして :guilabel:`HG コミット ...` を 選択するか、コマンドラインから :command:`hgtk commit` を実行して変更点を ローカルリポジトリにコミットします。コミットメッセージを記述し、 コミットしたいファイルにチェックを入れてから :guilabel:`コミット` ボタンを 押します。コミット後にコミットメッセージの内容やコミットしたファイルの間違いに 気付いた場合は :guilabel:`取り消し` ボタンで直前のコミットを取り消すことが できます。入力したコミットメッセージはメッセージ履歴のドロップダウンリストに 残るため、同じメッセージを再度入力し直す必要はありません。 .. note:: コミットツールを閉じてしまうと直前のコミットを :guilabel:`取り消し` ボタンで 取り消すことは出来なくなります。 .. figure:: figures/commit.png :alt: コミットツール リポジトリの共有 ================ これであなたの成果を共有するための準備が整いました。あとはこのリポジトリを 他のメンバからも参照できる共用スペースにコピーするだけでOKです。 Mercurial ではこれを *リポジトリの複製 (cloning your repository)* と 呼んでいます。リポジトリを共用スペース、例えば共有ドライブ、またウェブサイト などに複製すれば、それが開発チームのマージポイントになるでしょう。 エクスプローラで共有ドライブに置いたリポジトリを開き、そのディレクトリの 右クリックメニューから :menuselection:`TortoiseHg --> リポジトリのクローン` を選ぶか、コマンドラインから :command:`hgtk clone` を実行します。 .. figure:: figures/share.png :alt: 複製ツール チームでコードを共有するための *中央リポジトリ* に、あなたが持っている ローカルのリポジトリのような作業ディレクトリは必要ありません。 つまり、純粋にリポジトリだけあれば十分と言えます。このような場合、 :guilabel:`クローン後に作業ディレクトリを HEAD に更新しない` にチェックを入れることで Mercurial は中央リポジトリの複製から 作業コピーをチェックアウトしません。その結果、プロジェクトのリビジョン履歴の 全てが格納されている :file:`.hg` のみとなります。 他のチームメンバはこの中央リポジトリから複製することで作業できます。 共有リポジトリからの取得 ======================== 今あなたがあるチームと共同作業を始めたいとします。彼らは *X からリポジトリを取得してくれ* と言っていますが、どういう意味なのでしょうか? これは、X という場所に置かれているリポジトリをローカルに複製してくれ、 という意味になります。Mercurial ではこれを複製 (cloning) と呼び、 TortoiseHg には専用のダイアログが用意されています。 複製を作成したいディレクトリで右クリックメニューを開いて :menuselection:`TortoiseHg --> リポジトリのクローン` を選択するか コマンドラインから :command:`hgtk clone` を実行してください。 .. figure:: figures/clone.png :alt: Clone dialog 今回はこれから複製するリポジトリの作業ディレクトリでプロジェクトの作業を するため、 :guilabel:`クローン後に作業ディレクトリを HEAD に更新しない` のチェックは外してください。これで Mercurial は作業ディレクトリを *tip* リビジョンに更新します。 リポジトリを使ったワークフロー ============================== 作業ディレクトリでいくつかの変更を加えたとします。エクスプローラでいくつかの 変更が保留中であることをアイコンオーバーレイの変化から簡単に確認できます。 より詳細な変更点の確認やそれらのコミットはエクスプローラから行うことができます。 手っ取り早い方法はコミットツールを使うことです: .. {{images/image001.png}} .. NEEDFORTRANSLATION コミットツールは変更の差分を表示してくれます。もしくは普段使用している GUI の 差分表示ツール (kdiff など) を使用することもできます。 Mercurial allows you to commit many changes before you decide to synchronize (share changes) with the group repository. 変更を共有リポジトリに公開する準備が整ったら、 1. まだ変更をローカルリポジトリにコミットしていないのであれば、 先にそれを済ませます (前述)。 2. 共有リポジトリから変更をローカルリポジトリにプル (pull) します: 右クリックメニューから :menuselection:`TortoiseHg --> 同期ツール` または コマンドラインから :command:`hgtk synch` を実行し、共有リポジトリの場所を 選択してからツールバーの :guilabel:`プル` ボタンを押します。 3. いくつかのチェンジセットがプルされた場合、それらの変更とローカルでの変更を マージして、マージ結果をローカルリポジトリにコミットしてください。 チェンジログビューアから (:menuselection:`TortoiseHg --> ログの表示` または :command:`hgtk log`) マージしたいリビジョンの右クリックメニューを 開いて :guilabel:`マージ` を選択します。マージダイアログが表示されるので、 :guilabel:`マージ` ボタンを押してマージを実行し、 :guilabel:`コミット` してください。 4. マージが正しく行われたかどうかテストなどで検証してください。 5. 変更を共有リポジトリにプッシュ (push) するために、 :menuselection:`TortoiseHg --> 同期ツール` または :command:`hgtk synch` で同期ダイアログを開き、共有リポジトリの場所を選択してから :guilabel:`プッシュ` ボタンを押します。 文章にすると複雑に見えますが、実際には同期ツールのボタンを押すだけです。 .. NEEDFORTRANSLATION .. note:: Merges can be safely restarted if necessary. .. figure:: figures/synchronize.png :alt: 同期ツール Mercurial は共同作業を簡単に、素早く、効率的にします。 詳しくは Mercurial の `wiki <http://mercurial.selenic.com/wiki/>`_ をご覧ください。 .. vim: noet ts=4