如何在git svn中评估ignore-paths?

时间:2012-05-04 11:58:43

标签: regex git git-svn ignore

我有一个简单的回购结构:

trunk
    code
    othercode
    doc
    misc
branches
    b1
        code
        othercode
        doc
        misc
    b2
tags
    t1
    t2

我正在尝试使用git svn来克隆它,但是想要在trunk +所有标记和分支上省略docmisc。但是,ignore-paths选项并不像我期望的那样。

ignore-paths = (doc|misc)

似乎工作,但我担心它也会排除trunk/code/proj1/doc/之类的路径,我想保留它。

ignore-paths = ^(doc|misc)

不起作用 - docmisc被初始git svn fetch命令拉入。我如何获得一个正常工作的正则表达式,它只会匹配根目录这样的目录?手册页没有说明ignore-paths是否匹配“最终位于git clone(doc等的根目录”的“相对”路径)或“完整”路径SVN远程(branches/b1/doc等),或其他。

1 个答案:

答案 0 :(得分:9)

它似乎与SVN存储库中的完整路径匹配。此正则表达式包含SVN路径的trunk / tags / branches部分,可以解决这个问题:

ignore-paths = ^(trunk|tags/[^/]*|branches/[^/]*)/(doc|misc)/

用文字表示:路径必须以以下之一开头:

  • trunk
  • tags/,可能后跟一个路径段(不包含/
  • branches/,可能后跟一个路径段(不包含/

...然后是名为docmisc的路径段。