0

実際のファイルの束を含むサブリポジトリ Sub を持つシェルリポジトリ OriginalWithSubrepo があります。

このように OriginalWithSubrepo を複製すると

hg clone --pull --noupdate "C:\TestRepo\OriginalWithSubrepo" "C:\TestRepo\OriginalWithSubrepo-clone"

このようにして作成されたクローンには、mercurial ハウスキーピング ファイルがいくつか含まれているだけで、元の Sub\.hg ディレクトリからの実際のデータはありません。これらのファイルの意味はわかりませんが、クローンで作業ディレクトリを更新すると、 Sub\.hg ディレクトリ内を含むすべてのファイルがすべて入力されるため、リポジトリを再作成するには十分なようです。ただし、クローンを作成してオリジナルの名前を変更し、クローンを更新しようとしても、OriginalWithSubrepo が見つからないと言って機能しません。つまり、すべてオリジナルへのリンクに基づいているということです。

この問題は、更新を使用してクローンを実行した場合、またはサブリポジトリなしでリポジトリをクローンした場合には発生しません。

ネットワーク共有に複製するときも同じように動作します。これは、私が本当に機能させたい場所です。

では、サブレポを使用してレポの完全に独立したクローンを作成するにはどうすればよいですか (同時更新なし)。

Windows XP、hg バージョン 3.4.1

4

1 に答える 1

0

最初のサブリポジトリを親リポジトリに.hgsub追加すると、親リポジトリに追加されます。サブレポは、コミットする変更セットからのみサブレポになり.hgsubます。

するとhg clone --noupdate --pull parent parent-clone、parent-clone はまだどのチェンジセットにもないため、サブレポが作成されたチェンジセットにもまだありません

では、サブレポを使用してレポの完全に独立したクローンを作成するにはどうすればよいですか (同時更新なし)。

私はあなたがそのようにこれを行うことができるとは思わない.

しかし、これはあなたがやろうとしていることを達成するかもしれません(私はここで行間を読んでいますが、共有にレポがあると推測していますが、ファイルは表示されていません):

  1. 親とサブのネットワーク共有にリポジトリを作成し\\fileserver\repos\OriginalWithSub\\\fileserver\repos\Sub\
  2. ローカルの OriginalWithSub .hgsub を変更して、リモート パスを に設定し\\fileserver\repos\Sub\、コミットします。
  3. ローカル リポジトリをそれぞれのネットワーク共有に相当するものにプッシュします。

両方のリポジトリがネットワーク共有上に存在し、.hg 内以外にファイルが表示されることはありません。\\fileserver\repos\OriginalWithSub\別のコンピューターから (更新を使用して) クローンを作成し、OriginalWithSub と Sub の両方の完全な履歴を取得できます。

于 2015-07-24T22:07:25.037 に答える