1

トランク内に緩く関連するサブフォルダーが多数含まれているSVNリポジトリーがあります。
それをHGリポジトリに変換し、これらの各サブフォルダを個別のHGサブリポジトリに変換したいと思います。
同時に、トップレベルのリポジトリにあるすべてのサブリポジトリの変更ログを組み合わせてアクセスしたいと思います。

そこで、空のHGリポジトリといくつかの空のサブリポジトリを作成し、それらの名前と場所を.hgsubでリンクし、このリポジトリを別のコンプにサブリポジトリと一緒に複製できることを確認しました...

次に、サブリポジトリへの部分的なSVNクローンを作成しようとしました(サブリポジトリごとに... / trunk / subfolderを使用してSVNURLを指定します)。しかし、私にはわからない理由で、それらはトップレベルのHG履歴に表示されませんでした。

私は最初から始めて、SVNトランクURLをトップレベルの.hg / hgrcに入れ、「hgpull」を実行しようとしました。しかし、SVNリポジトリ全体がトップレベルになり、サブリポジトリは空のままになりました。

そして今、私はあなたに次に何をすべきか尋ねますか?
HGは初めてなので、何かが足りないのかもしれません。アドバイスをいただければ幸いです。

4

1 に答える 1

2

リビジョン履歴と個々のファイル ステータスのレポートは、Hg サブリポジトリに関しては少し複雑になります。

改訂履歴

サブリポジトリのリビジョン履歴は、親リポジトリからは見えません。各サブレポは文字通り異なるリポジトリであるため、これは考えてみると理にかなっています.2つの別々の履歴を重ねる良い方法は実際にはなく、その情報はあまり役に立ちません. コマンド ラインから、各サブレポ ディレクトリに移動し、a を実行しhg logて履歴を表示する必要があります。TortoiseHg 2.XX から、コミット ビューから、でマークされたものをダブルクリックしてS、TortoiseHg GUI でそのサブレポを開くことができます。

ローカルの変更

サブリポジトリへのローカル変更は、親リポジトリから確認できますが、コマンドごとに必ずしも同じ方法であるとは限りません。たとえば、次のようなリポジトリがあるとします (subはサブレポです)。

/project
  |
  ----> foo.c
  |
  ----> sub/
         |
         ----> bar.c
         |
         ----> more.c

bar.c と foo.c の両方を変更hg statusしてコマンド ラインから実行すると、次のように表示されます。

> hg status
M    foo.c

しかし、subrepo 引数を追加すると、次のように-S表示されます。

> hg status -S
M    foo.c
M    sub/bar.c

TortoiseHg v2.XX を使用している場合、foo.c が変更済みとしてマークsubされ、変更済みとしてマークされますが、実際のファイルの変更を表示するには、サブレポをダブルクリックする必要があります。

変換メモ:

変換自体の実行に関しては、convert リポジトリ拡張機能を確認してください。1 回限りの変換を実行してから SVN リポジトリを破棄する場合は、おそらくこれで十分です。SVN と HG の間を行ったり来たりする場合は、さらにいくつかの問題が発生する可能性があります。

過去に成功したことは、既存のリポジトリの上に Hg リポジトリをオーバーレイすることです。ただし、これが SVN と Hg でうまく機能するかどうかはわかりません。

于 2011-04-22T17:34:24.347 に答える