通常の svn の代わりに、リポジトリ システムとして git を使用してテストしています。常に必要な svn リポジトリが 1 つあります。svn では、このリポジトリを svn propset と svn:externals としてリンクします。これにより、頻繁に使用される特定のリポジトリのグローバル コピーが実際に 1 つだけ存在することが保証されます。
git リポジトリができたので、svn:externals を使用する場合と本質的に同じ方法で、SVN リポジトリをそれにリンクしたいと思います。私はこれを行うことにある程度成功しました。私はgitを初めて使用します。無知を許してください。
純粋な git リポジトリ ( でクローンを作成しgit clone gitmaster@address.org:mygitrepo
ます) では、以下を使用しました。
git svn clone svn+ssh://svnowner@hostname.org/path/to/mysvnrepo mysvnrepo
他の svn リポジトリのコピーを取得します。git svn rebase
これはうまく機能します。mysvnrepo ディレクトリから SVN リポジトリの新しいリビジョンを取得し、 から変更をコミットできますgit svn dcommit
。
これを私が使用したメインの git リポジトリに結合するには:
git add mysvnrepo
git commit mysvnrepo
git push
私が抱えている問題は、git リポジトリを別の場所に (再び を使用してgit clone gitmaster@address.org:mygitrepo
) 複製すると、すべてのファイルを含む mysvnrepo ディレクトリを取得しているときに、SVN リポジトリと対話できないことです。git svn rebase の後、「作業ツリーの履歴から上流の SVN 情報を特定できません」というエラーが表示されます。関連している可能性があります。別の場所に複製すると、mysvnrepo ディレクトリに .git フォルダーがありません (これは、svn 情報が元のリポジトリに格納されている場所です)。
私はこの問題を少し調べましたが、それへのすべての参照は、最初にsvnリポジトリを機能させるのに問題があるようですが、私の問題は別のユーザーのためにそれを機能させることです.
おそらく私の問題は、svnリポジトリをgitリポジトリに追加/コミット/プッシュする方法ですか? つまり: git add mysvnrepo; git commit mysvnrepot; git push
; これを行う正しい方法は?
編集:より多くのコンテキストを提供するために改善されました