2010-07-20 82 views
5

我配置了一个svn仓库的git。到目前为止,我只使用svn仓库来跟上提供的应用程序的最新信息。但是现在我也想要回馈一些东西。要做到这一点,我要提交的每个功能都需要位于单独的分支中。我读过你应该如何创建一个新的分支等,但我认为我错了配置我的GIT,我没有任何分支信息等,我想我只有主干信息。这是怎么我的svn库已经建立在我的混帐配置:git-svn分支:如何在几个月前配置git config

[remote "origin"] 
    url = url-of-git-repository 
    fetch = +refs/heads/*:refs/remotes/origin/* 
[svn-remote "svn"] 
    url = url-of-svn-repository/trunk 
    fetch = :refs/remotes/git-svn 
[branch "master"] 
    merge = refs/heads/master 
    remote = origin 
... other branch information below (these are git branches) 

现在,你可以看到我的svn的远程网址直达中继。我读了关于添加此:

branches = branches/*:refs/remotes/* 

但是,当我创建一个新的分支,然后将它添加到trunk/branches /。当我不添加该行时,它不知道该分支的目标是什么。

任何想法如何解决这个问题,而不破坏现有的分支机构,代码等?

映入眼帘, 大安

回答

6

相信分支结构是相对的svn-远程URL。

这里是我们的配置它是由做

git svn -s url-of-svn-repository/foo

制造方式(文件夹里面的FOO,我们有正常的主干/分支/标签结构)

[svn-remote "svn"] 
     url = url-of-svn-repository 
     fetch = foo/trunk:refs/remotes/trunk 
     branches = foo/branches/*:refs/remotes/* 
     tags = foo/tags/*:refs/remotes/tags/* 

你可以试试调整到这个结构,或者使用-s参数重新执行你的git svn。它会为你配置所有这些( - 标准布局)。

0

这是一篇文章,帮助我通过一个非常规的分支结构(这对于那些因为某些原因使用SVN的公司而言很不理想)的项目让git与svn一起工作。

http://www.dmo.ca/blog/20070608113513/

+0

这将是在多种方式最好是有下相同的'[SVN-远程XXX]'部处理的多个SVN分支。您不需要分别为每个分支执行'git svn fetch'。此外,我认为常见的svn修订版本在镜像git存储库中表示为单个共享提交。您可以在路径的任何子目录组件中的“branches”定义中具有'*',尽管您需要手动编辑'.git/config'来完成此操作。 – FooF 2015-06-23 08:46:41