web-dev-qa-db-ja.com

Mercurialで「切り替える」方法

どうすればよいですかsvn switchは、Mercurialでは?

それは作業ディレクトリを変更してリポジトリ内の別のブランチに切り替えることですか?

62
Jonas Meyer
hg update -r<REV>

pdate コマンドは、指定されたリビジョンに切り替えます。

63
Flavius Stef

Switchコマンドは、Subversionで2つのことを行います。

  1. 作業コピーを更新して、リポジトリ内の新しいURLをミラーリングします。この動作は「svn update」に似ており、作業コピーを同じリポジトリ内のブランチまたはタグに移動する方法です。

  2. 構文の変更のみを反映するように、作業コピーのURLメタデータを書き換えます。これは、リポジトリのルートURL(スキームやホスト名の変更など)が変更されたが、作業コピーが同じリポジトリ内の同じディレクトリをまだ反映している場合に使用されます。

hg update fooコマンドは、たとえばSubversionで/trunkから/branches/fooに切り替えると、前者と最も厳密に一致します。

後者を実行する場合は、.hg/hgrcを編集するだけです。次のような[paths]セクションがあります。

 [パス] 
 default = http://example.net/something

そして、このデフォルトのプッシュ/プルURLを、必要に応じて別のURLに変更できます。他の場所から頻繁にプッシュ/プルする必要がある場合は、このセクションに他のエントリを追加することもできます。ある場所からプルし、別の場所にプッシュする場合は、default-Pushエントリを追加します。

33
Martin Geisler

ブランチを切り替えたい場合は、次を実行します。

まず、利用可能なブランチを確認し、hg branchesと入力します。これにより、使用可能なすべてのブランチがリストされます。

次に、現在作業しているブランチを特定し、hg branchと入力します。これにより、現在のブランチがわかります。

最後にブランチを切り替えるには(およびすべてのローカル変更を消去)、hg update -C name-of-branchと入力します。これにより、指定したブランチ名に切り替わります。

hg branchをもう一度入力して確認します。

23
Danmar

リモートブランチの「tip」に切り替えるには:

hg pull -u <remote_branch>

ローカルブランチ(既に最新)の場合:

hg update -r <local_branch>
1
Krystian

別の答えは、「支店」の場合、「ネット上の任意の場所にあるレポの別のクローン」を意味します。できません。

言い換えると、hg.a.comのレポと、そのレポhg.b.comのクローンを指定すると、次のようなコマンドはありません。

hg switch hg.b.com .

(現在のディレクトリがhg.a.comのクローンのルートであると仮定して、そこにsvn用語を使用します)。

ただし、hg.a.comのクローンを作成し、そのクローン(比較的安価なはずです)をローカルにクローンしてから、hg.b.comからプルして、そこに存在する可能性のある追加の変更を取得できます。

0
Tim Keating