2012-05-04 69 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佈局」,那麼我認爲是:由於正則表達式與完整路徑相匹配,因此無論您的存儲庫佈局如何,都可以使用該正則表達式。 –