3

私のチームで使用しているかなり大きなsvn集中型リポジトリがあります。ここで、ローカルでgit(-svn)を使用したいので、git-svnクローンを作成しました。これは正常に機能しましたが、git-svnクローンの完了には非常に長い時間がかかりました。対照的に、gitクローンは通常それほど長くはかかりません。

同僚が私のsvnクローンを複製して、svn履歴全体を再度チェックアウトして変換する必要がないようにするにはどうすればよいですか?つまり、svnとの相互作用なし。

もちろん、同僚が自分の資格情報を使用して、中央のsvnリポジトリへのフェッチとdcommitを実行できるようにする必要があります。

Thnx。

4

2 に答える 2

5

要するに、この手順は非常に壊れやすく、お勧めできませんgitsvnのマニュアルページのセクション「警告」を参照してください。

単純化とSubversionとの相互運用のために、すべてのgit svnユーザーがSVNサーバーから直接クローンを作成し、フェッチしてdcommitし、gitリポジトリとブランチ間のすべてのgit clone / pull / merge/push操作を回避することをお勧めします。gitブランチとユーザーの間でコードを交換するための推奨される方法は、gitformat-patchとgitam、または単にSVNリポジトリに「dcommit」することです。

したがって、使用したい人は誰でもgit svn、SVNサーバーから自分のコピーを複製する必要があります。

もう1つの解決策は、SubGitを使用することです。これにより、SVNと交換可能に使用できるリポジトリへのgitブリッジが提供されます。

SubGitは、SvnからGitへのスムーズでストレスのない移行のためのツールです。サーバー側に一度インストールし、SubversionとGitの両方を好きなだけ使用してください。

SubGit操作の概要

SubGitを使用すると、双方向のSubversionからGitへのレプリケーション(書き込み可能なミラー)を設定できます。詳細については、ドキュメントページにアクセスしてください。

于 2013-02-27T09:18:58.643 に答える
1

質問およびその他の回答に追加されたコメントに基づく:

gitリポジトリ(またはtar / zipコピー、またはドキュメントにrsyncと記載されているように)を(物理的に)コピーすることは可能です。

私はこのソリューションをテストしました。実際、他のマシンでは、svnとの接続は、そのマシンのsvnクレデンシャルを使用して実行されますが、履歴全体は数秒でコピーされます。

于 2013-02-28T09:06:19.130 に答える