さまざまなプロジェクトで共有されるモジュールを含む「共通」ディレクトリを持つ既存の SVN リポジトリがあります。レイアウトは次のようになります。
http://example.com/svn/trunk/common/module_1
http://example.com/svn/trunk/common/module_2
...
http://example.com/svn/trunk/common/module_X
さまざまな理由から、私は git を使用して他のいくつかのプロジェクトを管理しています。SVN プロジェクトと git プロジェクトの両方でmodule_Xを使用する必要があるため、git-svn を使用する予定です。ただし、次の問題が発生します。
user@host:/repos$ git svn clone http://example.com/svn/trunk/common/module_X destination
このコマンドは、 /repos/destinationに新しい git リポジトリを作成し、そこにmodule_Xコンテンツをフェッチします。私が達成する必要があるのは、module_Xを/repos/destination/module_Xに配置することであり、そのコンテンツを/repos/destination/に直接フェッチすることではありません。
最初にオプションのように見えたのは、使用することでした
user@host:/repos$ git svn clone =--ignore-paths='^((?!module_X).*)$' http://example.com/svn/trunk/common/ destination
/repos/destinationにリポジトリを作成し、サブディレクトリ/repos/destination/module_Xを作成します。しかし、問題は、私の SVN リポジトリにはかなり大きなリビジョン履歴があり、common/パス全体の操作がかなり遅いことです。
これを達成する方法を知っている人はいますか?