我有一个简单的回购结构:
trunk
code
othercode
doc
misc
branches
b1
code
othercode
doc
misc
b2
tags
t1
t2
我正在尝试使用git svn
来克隆它,但是想要在trunk +所有标记和分支上省略doc
和misc
。但是,ignore-paths
选项并不像我期望的那样。
ignore-paths = (doc|misc)
似乎工作,但我担心它也会排除trunk/code/proj1/doc/
之类的路径,我想保留它。
ignore-paths = ^(doc|misc)
不起作用 - doc
和misc
被初始git svn fetch
命令拉入。我如何获得一个正常工作的正则表达式,它只会匹配根目录这样的目录?手册页没有说明ignore-paths
是否匹配“最终位于git clone(doc
等的根目录”的“相对”路径)或“完整”路径SVN远程(branches/b1/doc
等),或其他。
答案 0 :(得分:9)
它似乎与SVN存储库中的完整路径匹配。此正则表达式包含SVN路径的trunk
/ tags
/ branches
部分,可以解决这个问题:
ignore-paths = ^(trunk|tags/[^/]*|branches/[^/]*)/(doc|misc)/
用文字表示:路径必须以以下之一开头:
trunk
tags/
,可能后跟一个路径段(不包含/
)branches/
,可能后跟一个路径段(不包含/
) ...然后是名为doc
或misc
的路径段。