有SVN功能作为第二个(远程)回购推送到Git?

时间:2011-12-17 23:04:11

标签: git svn

有人能告诉我是否可以将SVN仓库作为远程(辅助)仓库来推送提交?我希望Git repo成为我的原始回购。

我更喜欢Git并拥有自己的私人Git托管,我工作的公司拥有SVN回购。我希望我所做的一切都先进入我的Git仓库,直到我准备将所有更改推送到客户端的SVN。让我们考虑一下我只想从SVN的主干上推/拉,不需要担心其他分支/标签。

我该如何解决这个问题?我需要知道:

  1. 如何将SVN仓库作为远程添加到我的Git本地仓库?
  2. 如何从远程SVN回购中提取/推送更改?
  3. 同样,我想强调一点,我希望将自己的私人Git(托管)回购作为原点。

2 个答案:

答案 0 :(得分:2)

是的,可以拥有“辅助”svn存储库。几个星期前我遇到了同样的问题,我使用了几个教程:

所以基本上,我在我的本地主分支上完成了我的工作,经常推送到原始(git存储库),有时推送到svn服务器(公司存储库)。

在你的.git/config中,你应该有这样的东西:

[remote "origin"]
    url = your-url-to-the-git-repository
    fetch = +refs/heads/*:refs/remotes/origin/*
[branch "master"]
    remote = origin
    merge = refs/heads/master
[svn-remote "svn"]
    url = your-url-to-the-svn-repository
    fetch = :refs/remotes/git-svn

我还有一个本地“svn”分支,但可能不需要。为了推动我的工作,我有:

git push origin         # push to remote git repo
git svn dcommit         # push to remote svn repo

如果您不确定何时推动,请使用--dry-run选项:

git svn dcommit --dry-run     # check that you are pushing to the right branch

您可以在tutorials中了解有关常规工作流程的更多详细信息。

答案 1 :(得分:0)

  

您可以将Google Code充当稳定的只读Subversion镜像   一个Git项目。在此模型中,补丁首先应用于   中央Git存储库,稍后将导出到Google Code。

     

为什么不加宽,而不是仅仅提供存储库的链接   你的观众只需要一些命令吗?打开你的Git托管   向所有Subversion用户投影,其补丁可以通过集成   GIT中。

当然,这也适用于非Google Code SVN repos。

https://code.google.com/p/support/wiki/ImportingFromGit