[英]How can I use git-svn to work with disparate parts of an svn repository?
我有以下svn存儲庫結構:
branches
branch-1
branch-2
trunk
system-a
component-0
component-1
system-b*
component-0
component-1*
shared*
site_scons*
SConscript*
我有一個團隊需要開發system-b
component-1
,但是他們需要在本地使用git,因為它們無法直接訪問我們的svn服務器。 git-svn
似乎正是我想要的,因為它允許我創建他們的git repo並通過git svn dcommit
和git svn rebase
管理同步。
我可以使用git svn clone https://svn-repo
輕松地為他們復制整個svn repo,但這也將為他們提供system-a
下的所有內容以及system-b
下的component-1
以外的所有內容。 不這樣做的原因有很多,最起碼的原因是復制(跟蹤變更)不影響system-b/component-1
團隊的大量存儲庫是不明智的。
上面顯示的已加星標的目錄是從中獲取更新和進行更改的唯一真正需要的目錄。 最好不要讓他們意外更改不需要訪問的內容。
如何使用git-svn
完成此操作? 我當時想我可以創建幾個單獨的git repos,例如:
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 repo中具有這種“稀疏簽出”結構?
當然,讓我為您引用手冊頁
--include路徑= <正則表達式>
這樣,就可以指定一個Perl正則表達式,該正則表達式將導致僅包含來自SVN檢出的匹配路徑。
--include-paths
選項應與給定存儲庫中的每個提取 (包括由於clone , dcommit , rebase等導致的自動提取)匹配。 --ignore-paths優先於--include-paths。
config key: svn-remote.<name>.include-paths
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.