TortoiseHg を使用してネストされたリポジトリを正しく追跡する方法に苦労しています。
プロジェクト全体を追跡するメイン リポジトリがあります。このプロジェクトには、いくつかの小さなプラグインが含まれており、これらは plugins/ サブディレクトリ内に保存されています。
プラグインに加えられた変更を含むプロジェクトの「全体」コミットを作成し、それを別の場所にプッシュできるようにしながら、各プラグインを個別に追跡したいと思います (それぞれのプラグインをコミットして BitBucket にプッシュします)。 BitBucket ではありません)。
これまでに行ったことは、プラグインごとに新しいレポを作成することです。簡単に BitBucket にコミットしてプッシュできます。しかし、「メイン」リポジトリをコミットしようとすると、TortoiseHg はエラー メッセージを表示しますabort: path 'mainrepo\\plugins\\plugin1\\plugin1.php' is inside repo 'mainrepo\\plugins\\plugin1'
。
何か間違ったことをしていることはわかりますが、何が悪いのかわかりません。
WinXP で Mercurial と TortoiseHg (ToirtoiseHg バージョン 0.9.3+237-ea50f793bbe4 および Mercurial-1.4.3+225-70dea42c9406) の両方のナイトリーを使用しています。サブリポジトリの処理がこの TortoiseHg ビルドに追加されたことを読みましたが、サブリポジトリがここで使用する機能であるかどうかさえわかりません。
更新
ある程度の進歩はありましたが、まだ思い通りに動作させることができません。
これが私の構造です:
-- .hg
-- core
-- app
-- file.php
-- file.css
-- plugins
-- plugin1
-- file1.php
-- plugin2
-- file2.php
app/plugins に移動し、ここで BitBucket からプラグイン (plugin3 という名前) を複製しました。次に、ルートに .hgsub ファイルを作成して追加app/plugins/plugin3 = app/plugins/plugin3
しました。その後、ディレクトリ全体をコミットできました。
しかしその後、BitBucket から plugin1 の最新バージョンを取得しようとしたため、app/plugins に移動し、plugin1/ フォルダーを削除して、BitBucket から plugin1 のクローンを作成しました。app/plugins/plugin1 = app/plugins/plugin1
次に.hgsubに追加しましたが、コミットしようとすると、abort: path 'app/plugins/plugin1/file1.php' is inside repo 'app\\plugins\\plugin1'
この問題は、subrepo が plugins/ ディレクトリで Hg によって既に追跡されているディレクトリと同じ名前を保持している場合に発生するようです。
私は何を間違っていますか?プラグインの .hg に何か特別なものを追加/編集する必要がありますか?
更新
最終的に、思い通りに動作させることができました。
「手動で」Mercurial に plugins/plugin1、plugins/plugin2 ディレクトリを削除し、変更をコミットしてから、BitBucket から plugin1 と plugin2 を複製し、.hgsub に追加app/plugins/plugin1 = app/plugins/plugin1
してすべてコミットするように指示する必要がありました。出来た。
重要なステップは、plugin1/plugin2 フォルダーを削除した後にコミットすることでした。