我有一个像这样的简单 repo 结构:
trunk
code
othercode
doc
misc
branches
b1
code
othercode
doc
misc
b2
tags
t1
t2
我正在尝试使用 git svn
来克隆它,但想省略主干上的 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
等)中看到的“完整”路径,或其他。
最佳答案
它似乎与 SVN 存储库中的完整路径匹配。这个包含 SVN 路径的 trunk
/tags
/branches
部分的正则表达式起到了作用:
ignore-paths = ^(trunk|tags/[^/]*|branches/[^/]*)/(doc|misc)/
换句话说:路径必须以以下之一开头:
中继
tags/
,可能后跟一个路径段(不包含/
)branches/
,可能后跟一个路径段(不包含/
)
... 然后是名为 doc
或 misc
的路径段。
关于regex - 如何在 git svn 中评估忽略路径?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10448431/