要するに、特定の内部リポジトリの存在を完全に認識しない外部 mercurial リポジトリを作成するにはどうすればよいでしょうか? 私は基本的に、サブフォルダー内の特定の .hg* の存在を無視し、外部のリポジトリーがその幸せな方法を続けられるようにしたいだけです。
別の言い方をすれば、互いに何の関係もない 2 つの Mercurial リポジトリが必要ですが、たまたま同じファイルを追跡しているだけです。はい - そのファイルへの編集は 2 回コミットする必要があります。しかし、この場合、それが私が欲しいものです。
バックグラウンド:
私は、mercurial が部分的なクローンを処理できないことを回避する過程にあり、ハックですが、うまくいくと信じています。Mercurial にチェックインされた巨大なプロジェクト ツリーがあり、請負業者がこのツリーの一部にアクセスする必要があります。サブリポジトリのアプローチについての私の理解では、既存のツリーにバックハックするのは難しいということです。とにかく、1 人の請負業者と協力できるようにするためだけに、すべての同僚にこれを強制したくありません。
私がやりたいことは、プロジェクト ツリー全体のクローンの 1 つまたは 2 つのフォルダー内に内部リポジトリを作成することです。次に、これらの内部リポジトリを請負業者にさらに複製する予定です。それは最善ではありませんが、うまくいくでしょう。彼が私にプッシュした後、私は内側のリポジトリに関係するファイルにマージし、外側のリポジトリに出てツリー全体をチェックインできます。理想的には、外部リポジトリの観点からは、何らかの魔法がいくつかのファイルを更新したように見えるでしょう。
問題は、mercurial が自分自身について知りすぎているように見えることです:)。たとえば、hg init、hg add *、および hg clone はうまくいきました。しかし、彼が彼の側に新しいファイルを追加し、私がそれを外部リポジトリに追加すると、(難読化された)次のようになります。
中止: パス 'foo/bar.txt' はリポジトリ 'foo' 内にあります
内部リポジトリの .hg の名前を別の名前に変更することで回避できますが、一般的に、このアプローチは手に負えなくなりつつあります。内部リポジトリを無視する hg stat にも問題があります。そして、外部リポジトリから実行しようとしている他のコマンドやその他のことは、一般的に壊れ続けています(請負業者と共有したフォルダーの1つにサブリポジトリがあると、多くの問題が発生しています)。
何か案は?
(私は 1 つの理論的な解決策を思いつきました。別のリポジトリ baz/ をファイル システムの別の場所に作成し、ファイル システムのシンボリック リンクを使用して、元のツリーからフォルダーをプルします。しかし、その後、特定のマシンに配線されています。 2 つのリポジトリを橋渡しするために、このアプローチが私が考えていない他の結果をもたらすのではないかと心配しています.外側の観点から内側のリポジトリをクロークする方が便利でしょう.)
ありがとう!