5

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

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等)中看到的“完整”路径,或其他内容别的。

4

1 回答 1

9

它似乎与 SVN 存储库中的完整路径匹配。这个包含SVN 路径的 // 部分的正则表达式起到了trunk作用tagsbranches

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

换句话说:路径必须以以下之一开头:

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

...然后路径段命名为docor misc

于 2012-05-06T02:46:15.210 回答