5

几个月前,我配置了一个带有 svn 存储库的 git。到目前为止,我只使用 svn 存储库来保持其上提供的应用程序的最新状态。但现在我也想提交一些东西。为此,我要提交的每个功能都需要位于单独的分支中。我读到了你应该如何创建一个新的分支等。但我认为我错误地配置了我的 git,我没有任何分支信息等我认为我只有主干信息。这就是在我的 git config 中设置我的 svn 存储库的方式:

[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-remote 网址直接进入主干。我读到了关于添加这个:

branches = branches/*:refs/remotes/*

但是当我创建一个新分支时,它将把它添加到主干/分支/。当我不添加该行时,它不知道分支的目的地是什么。

知道如何在不破坏现有分支、代码等的情况下解决这个问题吗?

问候,大安

4

2 回答 2

6

我相信分支配置是相对于 svn-remote url。

这是我们的配置方式

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

(在文件夹 foo 中,我们有正常的 trunk/branches/tags 结构)

[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 clone。它将为您配置所有这些(--standard-layout)。

于 2011-05-24T14:48:39.607 回答
0

这是一篇帮助我让 git 与 svn 一起工作的帖子,该项目具有非常非正统的分支结构(出于某种原因,这对于使用 SVN 的公司来说是一样的)。

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

于 2011-06-14T15:41:51.007 回答