如何在本地使用SVN并将更改推送到远程Git服务器?

时间:2010-01-22 17:59:07

标签: svn git

我在OS X上使用Versions来管理Subversion中的所有代码。在Git拥有像Versions这样的优秀GUI应用程序之前,我对显着改变当前的工作流程并不感兴趣。

我的一位客户希望我将我的代码推送到私有GitHub存储库。关于在本地运行Git并推送到远程Subversion服务器有很多问题和文章,但我似乎无法找到相反情况的任何建议。

要清楚,我想要做的是:

  1. 将我的代码保存在本地Subversion结帐中(中央存储库实际上是在远程服务器上,但我希望这不重要)
  2. 每当我向客户端发送邮件时,我都想运行一个命令,例如“git update-github-with-local-svn-changes”
  3. 如果其他人提交给GitHub(很少见),我想运行一个命令,例如“git update-local-svn-with-github-changes”

3 个答案:

答案 0 :(得分:1)

我能想到的最好的答案是使用git-svn制作你的subversion服务器的git副本,然后将这样创建的分支推送到github。当在github中进行更改时,将它们拉下来,将它们与从subversion克隆的分支合并,并将它们提交到subversion中。这将整个github方面视为你的(主)subversion服务器的下游,你应该能够使用那里已有的所有建议来管理它。

如果github中已经有代码,你可能需要在变基础上做一些跳舞。基本的想法是获取最新的源代码,将其导入subversion,使用git-svn从subversion中获取,然后在github的分支顶部重新定义最新的git-svn提交。然后,你的git历史记录包含一个新的提交,包含git-svn元数据。不过,我没试过这个。

答案 1 :(得分:0)

有一个git-to-svn网桥称为足够适当的git-svn,允许用户在本地使用Git,然后推/拉到远程SVN服务器。但我不知道支持相反方向的工具。我相信我会在这个问题的答案中学到一个!

答案 2 :(得分:0)

您是否尝试过GitX。对于git而言,它可能已经足够好了,你可以直接使用git。