简体   繁体   中英

Converting a repository from git to subversion

Reasons for doing this aside, is there a reasonable way to convert an entire git repository to subversion ?

I can find only tons on information on migrating from subversion to git, and exchanging changesets between the two, but not for doing a simple conversion of the entire git repository to svn.

The general problem with doing conversions this direction is that Git repositories can contain more than just a linear history of revisions, as Subversion would expect. Multiple ancestries with divergent histories and frequent merge commits are all possible, which can't be easily represented in a Subversion repository.

For simple cases where you do have a linear history in your Git repository, you can use git-svn dcommit to push the lot up to an otherwise empty Subversion repository.

It's very easy to perform with 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

After conversion your SVN and linked Git repository will be in sync: every Git push will be translated to SVN commit and vice versa. To break translation run

$ subgit uninstall svn.repo

While translation SubGit will try to preserve commit dates, tags, ignores, merges, EOLs, branches and so on, as it is possible. I can't say the same about git-svn repository.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM