当运行git-svnfetch时,新SVN分支的文件是用错误的路径提取的



我不久前用std布局从SVN克隆了一个git存储库。(这是用gitsvn-init和gitsvn-fetch完成的)。现在我使用的是git 1.7.9。我的svn远程配置部分如下所示:

[svn-remote "svn"]
        url = https://myhost/svn/myProject
        fetch = trunk:refs/remotes/trunk
        branches = branches/*:refs/remotes/*
        tags = tags/*:refs/remotes/tags/*

最初提取的所有分支都能正常工作,随后的提取在这些分支和主干上也是正确的。每个分支下的目录结构如下:

subProject1srcmyPackage
subProject2src
subProject3src

现在创建了一个名为2_7_1的新分支,它与所有其他分支和主干的目录结构相匹配。

现在,当我运行git-svn-etch时,它开始从r1中获取每个修订,而不是只从从从trunk创建2_7_1分支的修订中获取。原因似乎是它假设:src\myPackage目录结构,而不是subProject1\src\myPackage

当我在浏览器中浏览SVN repo时,我看不到目录结构有什么不同。我只注意到一个区别,新分支名为2_7_1@18813(18813是新分支的起始修订号),其中所有其他分支都不包含修订,只包含分支名称。

我不想使用这里提供的解决方案:我如何告诉git svn在获取repo后创建的远程分支,因为它将丢失干线和2_。

编辑:在完成完整的git-svn获取之后,我清楚地看到我的git-svn看到了两个分支:2_7_1和2_7_1@18813.2_7_1@18813是从修订版#1中提取的。这把我之前追踪SVN中继的主分支搞砸了。

现在我的分支结构看起来像这样(一团糟):

------------------------------------------- X -- Y -- Z  ==  masterNew/trunk
-- A -- B -- C -- D -- E -- F -- G ----  == 2_7_1@18813
                                      
                                        - J - K - L == master (old trunk)
                                      
- A' - B' - C' - D' - E' - F' - G' -- H -- I == 2_7_1

编辑#2:在使用git-SVN-clone对SVN repo进行完整克隆后,问题仍然存在。

您可以从公共父级分支到2_7_1分支,然后使用"How do I tell git svn about a remote branch created after I take the repo"中的说明将该分支装配到git svn?

相关内容

  • 没有找到相关文章

最新更新