簡體   English   中英

將git倉庫克隆到Subversion倉庫的子目錄中

[英]Clone a git repository into subdirectory of a subversion repository

我有一個現有的SVN存儲庫,該存儲庫具有一個“公共”目錄,其中包含不同項目共享的模塊。 布局是這樣的:

http://example.com/svn/trunk/common/module_1
http://example.com/svn/trunk/common/module_2
...
http://example.com/svn/trunk/common/module_X

由於各種原因,我正在使用git管理其他項目。 我需要在SVN和git項目中都使用module_X ,因此我打算使用git-svn。 但是,出現以下問題:

user@host:/repos$ git svn clone http://example.com/svn/trunk/common/module_X destination

此命令將在/ repos / destination中創建一個新的git存儲庫,並將module_X內容提取到其中。 我需要完成的是將module_X放在/ repos / destination / module_X中 ,而不是直接將其內容提取到/ repos / destination /中

一開始似乎是一種選擇

user@host:/repos$ git svn clone =--ignore-paths='^((?!module_X).*)$' http://example.com/svn/trunk/common/ destination

它將在/ repos / destination和一個子目錄/ repos / destination / module_X中建立一個存儲庫。 但是問題是我的SVN信息庫具有相當大的修訂歷史,並且在整個common /路徑上的運算速度很慢。

有誰知道如何做到這一點?

簡短答案:您不能,也可以。 Git尚未設計為承載多個項目,因此無法克隆獨立的子目錄,一個git ==一個項目。 即使可以做到這一點(請看以下非常有見地的答案: 如何僅克隆Git存儲庫的子目錄? ),您將失去所有使更新保持最新的能力。

盡管您可以嘗試使用一種方法,但還是要告訴git-svn為您擁有的每個模塊創建一個分支,這里有一個很好的例子: 使用Git-Svn克隆非標准Svn存儲庫 ,應該看起來像:

% git svn clone https://svn.myrepos.com/myproject myproject --ignore-paths='^((?!common).*)$' --trunk=trunk/ --branches=trunk/common/* --prefix=svn/

(未試)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM