有没有自动SVN-> GIT同步服务?

时间:2010-10-05 05:32:26

标签: svn git github git-svn

有一个我只读访问的SVN开源项目,我想在GitHub上创建该项目的GIT镜像。

我知道如何设置初始镜像然后使用git svn rebase保持最新,但是仍然需要在运行cron作业的某个地方设置服务器来处理同步,将监视设置为确保服务器已启动且cron作业正在运行,定期升级到最新的git版本等。

在我重新发明每个其他SVN-> GIT镜像必须使用的同一个轮子之前,我想知道是否有任何服务(免费或付费)将为我自动化SVN-> GIT镜像。知道吗?

显然,自动化服务无法合并我的更改 - 我所有的更改都发生在一个单独的仓库中(或者可能是同一仓库中的一个单独的分支)。我只是在寻找一种自动化SVN交互的方法,并创建一个其他人可以克隆的精确镜像。

4 个答案:

答案 0 :(得分:6)

我认为对此的责任应落入维护项目的人手中。例如,请参阅Apache support their projects with Git mirrors

另一方面,我认为这里没有那么多“发明”。如果你有一台服务器可以连续轮询到SVN存储库进行更改,那么执行git-svn rebase并推送到github是相当简单的。我怀疑任何公司都专注于设置这个(至少,我没见过)。

另一方面,当您想要分享您的更改时,您不应该推送到Git镜像。最好是将git-svn重新命名为SVN,或者向开发人员发送补丁。如果你推送到SVN获取回购,我相信它会搞砸git-svn。就像你说的那样,双向Git-SVN同步不能自动化。

答案 1 :(得分:5)

您可以在svn服务器中使用post-commit hooks告诉git-svn是时候进行rebase了。

答案 2 :(得分:2)

您应该使用tailor。它能够将任何VCS重复转换为任何其他VCS。并且它会递增地执行,这意味着如果您首先将SVN仓库转换为Git,则会对SVN进行提交,然后再次转换,它只会转换新版本,并将它们作为历史记录正确添加到现有Git历史记录中。 / p>

您可以通过两种方式自动执行该过程:您只需按时间运行裁缝,使用cron或anacron,或者如前所述,在SVN中使用post-commit hooks,因此在将任何内容提交给SVN后立即触发转换。

答案 3 :(得分:0)

svn2github.com似乎正是你想要的。它会将任何svn repo镜像到github并自动更新,只要repo少于2000个文件(高于你需要手动更新的文件)