web-dev-qa-db-ja.com

リポジトリをgitからsubversionに変換する

これを行う理由はさておき、gitリポジトリ全体をSubversionに変換するへの合理的な方法はありますか?

fromSubversiontogitへの移行に関する情報はたくさんあります2つの間でチェンジセットを交換しますが、gitリポジトリ全体をsvnに単純に変換するためではありません。

44
dF.

この方向で変換を行う際の一般的な問題は、Subversionが期待するように、Gitリポジトリに改訂の線形履歴以上のものが含まれる可能性があることです。異なる履歴と頻繁なマージコミットを持つ複数の祖先がすべ​​て可能であり、Subversionリポジトリで簡単に表すことはできません。

Gitリポジトリに線形履歴がある単純なケースでは、git-svn dcommitを使用して、ロットを空のSubversionリポジトリにプッシュできます。

14
Greg Hewgill

SubGit で実行するのは非常に簡単です。

$ svnadmin create svn.repo
$ subgit configure svn.repo
$ nano svn.repo/conf/subgit.conf to specify a path to your bare repository (you may use "git clone --bare <URL>" if you have none locally)
$ subgit install svn.repo

変換後、SVNとリンクされたGitリポジトリは同期されます。すべてのGitプッシュはSVNコミットに変換され、その逆も同様です。翻訳を中断するには実行

$ subgit uninstall svn.repo

翻訳中、SubGitは可能な限り、コミット日、タグ、無視、マージ、EOL、ブランチなどを保持しようとします。 git-svnリポジトリについて同じことを言うことはできません。

7
Dmitry Pavlenko