2017-08-14 57 views
0

我有以下svn庫結構:如何使用git-svn來處理svn存儲庫的不同部分?

branches 
    branch-1 
    branch-2 
trunk 
    system-a 
     component-0 
     component-1 
    system-b* 
     component-0 
     component-1* 
    shared* 
    site_scons* 
    SConscript* 

我有一個團隊,需要發展的system-bcomponent-1但他們需要使用git在本地,因爲他們沒有對我們的SVN服務器直接訪問。 git-svn似乎正是我要找的,因爲它允許我創建他們的git repo並通過git svn dcommitgit svn rebase來管理同步。

我可以很容易地複製他們整個SVN回購與git svn clone https://svn-repo,但是這也將給他們system-bsystem-a下的一切,以及比其他component-1一切。有幾個原因不這樣做,至少是因爲複製(並跟蹤更改)大量存儲庫並不影響system-b/component-1團隊是不明智的。

上面顯示的已加星標的目錄是他們真正需要從中更新並進行更改的唯一目錄。讓他們無法意外地更改他們不需要訪問的東西也是非常好的。

我該如何使用git-svn來實現?我想我可以創建幾個單獨的git回購協議,一拉:

git svn clone https://svn-repo/trunk/SConscript 
git svn clone https://svn-repo/trunk/site-scons 
git svn clone https://svn-repo/trunk/system-b/component-1 
git svn clone https://svn-repo/trunk/shared 

但是,這看起來和聽起來像這將是git的球隊頭疼,因爲,我的理解,這個創建四個實際不同的git倉庫。有沒有辦法在一個使用git-svn的git倉庫中擁有這種「稀疏結帳」結構?

回答

1

當然,讓我引用man page

--include路徑= <正則表達式>

這允許指定一個Perl的正則表達式,將導致只有列入匹配來自SVN結帳的路徑。該--include-paths選項應該匹配每(包括自動取由於克隆dcommit變基等)在給定的存儲庫。 --ignore-paths優先於--include-paths。

config key: svn-remote.<name>.include-paths

相關問題