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

Mat*_*nry 5 regex git ignore git-svn

我有一个简单的repo结构,如下所示:

trunk
    code
    othercode
    doc
    misc
branches
    b1
        code
        othercode
        doc
        misc
    b2
tags
    t1
    t2
Run Code Online (Sandbox Code Playgroud)

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

ignore-paths = (doc|misc)
Run Code Online (Sandbox Code Playgroud)

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

ignore-paths = ^(doc|misc)
Run Code Online (Sandbox Code Playgroud)

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

Mat*_*nry 9

它似乎与SVN存储库中的完整路径匹配.这个正则表达式,包括SVN路径的trunk/ tags/ branches部分,做了诀窍:

ignore-paths = ^(trunk|tags/[^/]*|branches/[^/]*)/(doc|misc)/
Run Code Online (Sandbox Code Playgroud)

用文字说明:路径必须以下列之一开头:

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

...然后路径段命名docmisc.