0

gitにあるサブモジュールを使用しているレガシープロジェクトがあります。

gitへの移行やgitからsvnプロジェクトのサブモジュレーションをサポートする方法やツールはたくさんありますが、私が必要としているのは正反対です。それらは私の制御できないレガシープロジェクトであるため、gitに移行することはできません。必要なのは、gitでorigin / masterにプッシュするたびに、svn-projectsが「svnup」または「svnco」を実行するたびに自動的に変更を取得できるようにすることです。

これを達成する方法はありますか?

私はsvn:externalsを試しましたが、gitサブモジュールをサポートしていません...手がかりはありがたいです。ありがとう!

4

1 に答える 1

1

解決策として、 SubGitを両方のリポジトリにインストールすることを提案できます---それはSVNリポジトリ用のGitインターフェースとGit用のSVNインターフェースを作成します。次に、svn:externalsをSVNインターフェイスのメインリポジトリに追加し、サブモジュールをその(同じメインリポジトリの)Git、スレーブリポジトリのSVNおよびGitインターフェイスを使用するインターフェイスに追加できます。

SubGit for Gitリポジトリをインストールするには、次のコマンドを実行します。

$ svnadmin create svn.repository

$ subgit configure svn.repository

$ #edit svn.repository/conf/subgit.conf ('git.default.repository' option) 
to set path to your bare Git repository (the repository you on the server)

$ #optionally prepare svn.repository/conf/authors.txt file
to configure custom authors mapping (if you don't like automatic default mapping)

$ subgit install svn.repository

SubGitをSVNリポジトリにインストールするには、同じ手順を実行しますが、svn.repositoryの代わりに既存のSVNパスを使用し、git.default.repositoryに存在しないパスを使用します(Gitリポジトリはこのパスに作成されます)。

SubGitは、すべてのリポジトリの両方のインターフェイスの同期を維持します。両方のインターフェイスは書き込み可能です。

お役に立てれば。

于 2012-07-26T09:42:38.673 に答える