2012-05-04 24 views
5

我有一个简单回购的结构是这样的:如何在git svn中忽略路径评估?

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

我试图用git svn克隆,但需要在主干+所有标签和分支省略docmisc。但是,ignore-paths选项不像我所期望的那样。

ignore-paths = (doc|misc) 

似乎工作,但我担心,它也将排除像trunk/code/proj1/doc/的路径,我想保持。

ignore-paths = ^(doc|misc) 

不工作 - docmisc由初始git svn fetch命令拉入。我如何得到一个工作正则表达式,只会匹配根目录下的目录呢?手册页没有说明ignore-paths是否与在SVN远程(branches/b1/doc等)中看到的git克隆(doc等)根目录或“完整”路径的“相对”路径匹配。 , 或者是其他东西。

回答

9

它似乎与SVN存储库中的完整路径相匹配。此正则表达式,其中包括SVN路径的trunk/tags/branches部,并获得成功:

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

在话:路径必须以之一:

  • trunk
  • tags/ ,也许后面跟着一个路径段(不包含/
  • branches/,可能后跟一个路径段(不包含g /

...然后路径段名为docmisc

+0

这不起作用。无论如何,这些文件都是克隆的。 –

+0

是否有没有svn布局svn回购的等价方法? – Spen

+0

@besnep,如果您的意思是“没有*标准* svn布局”,那么我认为是:由于正则表达式与完整路径相匹配,因此无论您的存储库布局如何,都可以使用该正则表达式。 –