2013-11-26 54 views
0

我讀過http://svnbook.red-bean.com/en/1.7/svn.advanced.externals.html,但我沒有看到我需要的信息。它(幾乎沒有)談論propset,但不是propedit,這正是我想要的。我有v1.8客戶端。如何使用svn externals在混合分支中創建多模塊版本?

說我有在

root URL = https://mySvnRepo 

^/projects/trunk/module1 
^/projects/trunk/module2 
^/projects/trunk/module3 

以下模塊層次說我支了整個項目/ *樹

^/projects/branches/branch1/module1 
^/projects/branches/branch1/module2 
^/projects/branches/branch1/module3 

...和

^/projects/branches/branch2/module1 
^/projects/branches/branch2/module2 
^/projects/branches/branch2/module3 

我怎麼能使用svn外部,所以我的工作副本看起來像

/home/svn/projects/module1 from http://mySvnRepo/projects/trunk 
/home/svn/projects/module2 from http://mySvnRepo/projects/branches/branch1 
/home/svn/projects/module3 from http://mySvnRepo/projects/branches/branch2 

例如。

我不需要對我爲什麼要/不應該做這樣的講座。我只是想知道如何。如果我在足部(或頭部)開始自我射擊,現在就可以了。我只是試圖證明一個可能或不可行的工作流程。謝謝!

+0

其中哪些是SVN中的真實文件夾? 'projects'? '項目/ module1'? 'http:// mySvnRepo/trunk'會在'projects/module1'下進入名爲'projects/module1/trunk'的文件夾嗎? –

+0

謝謝,我澄清了這篇文章。 –

回答

2

將下面svn:externals定義在一個名爲externals.txt的文本文件:

^/projects/trunk/module1 module1 
^/projects/branches/branch1/module2 module2 
^/projects/branches/branch2/module3 module3 

在工作拷貝,運行svn mkdir創建一個存儲庫的根目錄下名爲externals目錄。然後,使用此新目錄的路徑運行svn propset svn:externals --file externals.txt

externals工作副本的svn update運行將獲取外部目錄。

+0

請詳細說明「......它可能是最好把SVN:在外部組件新倉庫」你的意思是創建的https // myNewRepo /外部組件,然後SVN共同的https // myNewRepo /外部組件/家/的外部,CD /家庭/外部,然後svn propset svn:外部 - 文件externals.txt,然後svn了? (注意:我省略了:在URL中避免使它們成爲鏈接) –

+0

我怎樣才能/將/應該設置原始回購以避免爲svn:externals創建新的回購? –

+0

SVN具有[公約](http://svnbook.red-bean.com/en/1.7/svn.branchmerge.maint.html#svn.branchmerge.maint.layout)其中'trunk','branches',和'標籤'目錄在層次結構的同一級別組合在一起。沒有其他目錄應該在該級別。要在一個存儲庫中同時使用'svn:externals'和'svn:externals'指向的內容,請在'mySvnRepo'和'trunk/branches'的根目錄之間插入一個目錄。也許'產品'?然後在與'products'相同的級別創建'externals'目錄。 –