如何在GIT和SVN之间进行双向同步

如何在GIT库和SVN库之间进行双向同步?我已经看到了如何从SVN转换为GIT,但没有太多关于如何在两者之间顺利同步。如何在GIT和SVN之间进行双向同步

目的是将项目保存在两种类型的存储库中,并让它们生成/跟踪相同的内容。

作为一个额外的要求,作为主题的SVN存储库不包含主干和分支。

回答:

为了确保SNV和Git存储库之间真正的双向同步,您需要一个专用的第三方工具。

我只知道SubGit能够做到这一点可靠。但它不是免费的。只有从SVN到Git的一次性迁移是。

回答:

这篇文章 - Creating a two way sync between a Github repository and Subversion - 看起来是一个解决方案:

  • 创建一个GitHub的服务器或服务器到位桶上一个混帐回购协议。克隆空回购。添加一个readme-git文件并在master上提交。

  • 最初创建SVN跟踪分支:

git branch --no-track svnsync

git checkout svnsync

git svn init http://your-svn-server/your-repo

# here removed `-s` if the svn repo is not on a standard layout

# or use file:///path/to/local/repo

git svn fetch

# add if needed `--authors-file svn-authors.txt`

git reset --hard remotes/git-svn

# the post said `remotes/trunk` but it does not look right

  • 同步从SVN到混帐:

git checkout svnsync

git svn rebase

git checkout master

git merge svnsync

# add `--allow-unrelated-histories` to the first merge

git push origin master

  • 同步从GIT中的svn:

git checkout master

git pull origin master

git checkout svnsync

git svn rebase

git merge --no-ff master

git commit

git svn dcommit

上述顺序的一个缺点是添加了伪造的readme-git文件,因此可能会拉出非跟踪分支。我想,从最初从svn回购克隆的git回购开始,可能会避免这个问题。

以上是 如何在GIT和SVN之间进行双向同步 的全部内容, 来源链接: utcz.com/qa/257848.html

回到顶部