次のような構造があったとします。
main.c
lib1.c
lib2.c
ファイルの名前を変更すると、次のようになります。
main.c
lib/lib1.c
lib/lib2.c
lib
リポジトリとして次のようなものが必要になります。
lib1.c
lib2.c
サブリポジトリとして含めると、元のリポジトリが名前変更後に行ったように見えるため、この最後の部分を想定しています。
これをいくつかの段階で行います。
最初の段階は、おそらくすでに行っているようにすることです。hg convert --filemap LibTempMap.txt Main LibTemp
コマンド ラインと の次の内容を使用して、リポジトリを変換しますLibTempMap.txt
。
exclude *
include lib
rename lib .
これにより、名前変更後の履歴を含むリポジトリが提供されます。
hg convert --rev X --filemap LibMap.txt Main Lib
第 2 段階では、名前を変更する前に、コマンド ライン(X は名前を変更する前のリビジョン) と次の内容を使用してリポジトリを変換しますLibMap.txt
。
exclude *
include lib1.c
include lib2.c
これにより、名前変更前の履歴を含むリポジトリが提供されます。
次に、後の変更をフォルダー内LibTemp
からLib
usingに移植します (リポジトリ内の名前変更後のリビジョンはどこにあります)。変換中に名前を変更することにより、ファイル構造が一時リポジトリで同じであることを確認したため、これはきれいに移植されるはずです。hg transplant -s ..\LibTemp Y:tip
Lib
Y
LibTemp
その後、必要な履歴とファイルを含むリポジトリが残り、Lib
リポジトリを削除できLibTemp
ます。