2

私は mercurial の満足のいくユーザーであり、github のいくつかのリポジトリで作業するために使用したいと考えています。私はインストールhg-gitしました(まだ接続の問題がありますが、それは問題ではありません)SOに関するドキュメントとさまざまな質問を見ましたが、それが提供するソリューションがどれほど完全かはまだわかりません.

  1. hg+hg-gitサポートが利用できない、制限されている、または問題が発生しやすいgit / github の重要な機能はありますか? 分岐とマージ、タグ、そして時折 mercurial のcommit --amendコマンドを使用します。ブックマーク、サブリポジトリ、カスタム フック、または Mercurial パッチ キューは実際には必要ありません。

  2. と の分岐モデルが異なるため、問題や制限はgitありhgますか? (この6 年前の質問は、当時はシームレスな経験ではなかったと示唆しています。)

  3. hg-gitサイトで、「理論的には、変更セット ID は [hg -> git -> hg 変換で] 変更されるべきではありませんが、これは複雑な履歴には当てはまらない可能性があります」と読みました。これについてどの程度心配する必要がありますか?githubと単一のhgレポの間で (双方向に) 同期している場合に発生する可能性はありますか?

私は2つのユースケースを見ています:

A)通常はgitユーザー(ブランチなど)hgによって開発される、多くのブランチを持つ大規模なプロジェクトのgithubクライアントとして使用します。master

B) githubMercurial で開発した自分の (小規模な) プロジェクトをホストするために使用します。

100%完全な交換は期待していません。私は を持っており、毎日使用していますgithgそれが重要な場合、私はほとんどの作業を OS X で行っています。

4

1 に答える 1

2
  1. hg-gitなどの使用には制限がありますgit-lfs。大きなファイルを使用するリポジトリは機能しません。Mercurial 側で問題を引き起こすタコのマージ (2 つ以上の祖先とのマージ) などのまれなケースがあり、Mercurial には同等のものはありません。しかし、日常業務では、これらの制限に遭遇することはめったにありません。ほとんどの場合、hg-git は問題なく動作します。
  2. Git には同じ概念がないため、Mercurial ブランチを Git に正しく反映することはできません。hg-git はブランチをブックマークにマッピングしていると思うので、ブックマークを使い続ける必要があります。名前付きブランチを git リポジトリのどこかにプッシュしたい場合、git 側で名前が変更されます。Mercurial では名前付きブランチの名前を変更できないため、名前付きブランチは避けてください。
  3. あなたの場合、それはおそらくうまくいくでしょう。hg->git->hg エラーは、名前ブランチの変換、octopus マージの欠落などにより発生します。
于 2016-12-02T18:38:34.593 に答える