TortoiseHGで分岐する方法


218

評価用にTortoiseHg 1.0をダウンロードしました。私の人生では、どうやって枝を作るかわからない。ブランチを理解しているようですが(リポジトリブラウザなど)、ブランチを作成する方法を見つけられないようです。DVCのよく宣伝されているメリットの1つは軽量な分岐であるため、これはそのような基本的な機能のようです。

私は周りをグーグルで検索して、このトピックについての多くの議論を見つけることができませんでした(少なくとも最近のバージョンの場合)。

更新:それで、「新しいブランチ」の問題に答えるために、チャドバーチの回答に以下のフラグを立てました。彼が正しく指摘したように、コミットを実行してから、ブランチボタンをクリックして、新しいブランチを作成するブランチメンテナンスダイアログを表示します。彼らが私たちにこれのためのコンテキストメニューオプションを与えてくれればいいのにと思います。分岐したら、次の自然な問題はどのようにマージするかであり、これも明白ではありません。オプションはリポジトリエクスプローラに埋め込まれていることがわかります。別のブランチのヘッドを選択して右クリックし、「Merge with ...」を選択する必要があります。


分岐は、ワークフローの完全に直感的でない側面に深刻に埋もれています。ブランチとコミットは2つの非常に異なる操作であり、ブランチをコミットUIの奥深くに埋めても意味がありません。私は通常、ブランチのにコミットするので、コミットUIの下を見ることはありませんでした。2016年半ばの時点でさえ、ブランチはまだ事実上​​文書化されていません。Chad Birchは、ドキュメントの分岐に何が合格するかを指摘しています。それはまだひどいですが、彼が指摘するように、彼は単なるメッセンジャーです...
アークライト

回答:


213

docs示されているように、branch: defaultコミットダイアログの上部にあるボタンをクリックするだけで、新しいブランチ名に変更できます。


30
ああ、「このボタンを押すとブランチのメンテナンスダイアログが開く」と書いてあるところがわかります。確かに、ダイアログが開き、ブランチを作成できるようになりますが、そのページの任意の場所にブランチを作成する方法についての明示的な言及がないため、「ドキュメントに示されているとおり」という文で問題を抱えています。見つけることができた。TortoiseHgでセカンドクラスの扱いをするのに値する分岐は何だったのでしょうか(ファーストクラスのコンテキストメニューオプションである他のTortoise *ツールに対して)。:-)
マイケル・ティラー2010

31
ああ、私は "RTFM"のように侮辱したりするつもりはありませんでした。関連するページにリンクするための何らかのフレーズが必要でした。おそらく、「ドキュメントで漠然と暗示されているとおり」がこの状況ではより適切だったでしょう。
チャドバーチ

1
汗かいていない。私も侮辱するつもりはありませんでした。明示的に言及されていないため、答えを取得するためにドキュメントの行の間を実際に読まなければならないことをそのリンクを見に来た人に明確にしたかっただけです。
Michael Tiller、2010

8
Mercurialの最近のバージョンではhg push --new-branch、新しいブランチをリモートリポジトリにプッシュするためにa を実行する必要があります。TortoiseHgでこれを行う方法については、stackoverflow.com / questions / 2365483を参照してください。
Peter Graham

26

TortoiseHgで新しいブランチを開始するには、[コミット]を押し​​ます。次に、コミットメッセージの上で[ブランチ]を押して、[新しい名前付きブランチを開く:]を押します。


9

これを追加したいのは、新しいブランチをリモートリポジトリにプッシュするために、[新しいブランチのプッシュを許可する]の[オプション]の[同期]タブにチェックボックスがあります。その後、すぐにオフにすることを忘れないでください。


8

ほとんどの場合clone、Mercurialでは、リポジトリを作成してブランチを作成します。

その後、編集とコミットを行ったら、個別のリポジトリをマージできます。

これは、多くのディスク領域を占有するように聞こえるかもしれませんが、ほとんどのオペレーティングシステムでは、Mercurialはファイルをコピーする代わりにハードリンクを作成します。とにかく、ディスク領域は通常安価であり、ローカルであるため、かなり高速です。

あなたがそれについて考えるなら、すべての「チェックアウト」(svn用語で)または「クローン」(水銀用語で)は、おそらくマージされるブランチであるため、クローンがブランチを作成する一般的な方法であることは非常に理にかなっています。


11
機能ブランチには不便です。
Tower

同意した。バージョン1で安定したブランチやバージョン2で安定したブランチなど、実行時間の長い(半永久的な)ブランチがある場合は、名前付きブランチを使用することをお勧めします。mercurialブランチのドキュメントも参照してください。
blokeley

11
-1。これはせいぜいハックです。ローカルの変更をプッシュできないため、リモートリポジトリをフォローしている場合、ブランチのクローンはまったく機能しません。つまり、ブランチを他の開発者と共有することはできません。ブランチする正しい方法は、リポジトリ内に名前付きブランチを作成することです。
Peter Graham

8
クローンはまだ公式の水銀帳が「全体像」のブランチを推奨する方法ですhgbook.red-bean.com/read/… メッセンジャーを撃たないでください。
Blokeley

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.