2013-06-24 41 views
1

我們有一個在它之下名爲「Nagios的」具有以下路徑庫:SVN:從多個URL到相同路徑下的當前工作目錄結帳?

common/nagios/etc 
common/nagios/objects 

FTW/nagios/etc 
FTW/nagios/etc/objects 

DAL/nagios/etc 
DAL/nagios/etc/objects 

正如你可以看到下面的「常見」,「DAL」和「FTW」的目錄結構identitical。

我希望能夠先簽出(不導出)「通用」路徑,例如, (CD的/ usr /本地):

svn co http://foobar/repo/nagios/common/nagios nagios 

然後,根據該客戶端站點(服務器)我在,結賬該網站的特定文件,如:

svn co http://foobar/repo/nagios/FTW/nagios nagios 

這給我的錯誤: 的svn: '的nagios' 已是一個不同的URL

注意一個工作拷貝:有 「commmon」 之間沒有相同的/重疊的文件和 「FTW」(或 「DAL」)

我試圖完成這幾種方式,包括使用「svn:externals」(這讓我接近,但在現有的下創建一個新的目錄結構 - ../nagios/nagios/etc/...)。

這裏的對象是維護每個站點在單個位置共有的所有文件,以及在repo中他們各自目錄中的站點特定文件,並且能夠檢出常見文件和站點特定一些到相同的工作目錄路徑。

回答

2

能得到所需結果如果

  • COMMON和HOST文件存儲在同一倉庫
  • 您使用SVN 1.6或更高版本(我會建議開始使用1.8)

解決方案是基於文件的外部件:再仔細閱讀"Externals Definitions" in SVN-Book,從文字

Subversion 1.6 also introduced support for external definitions for files. File externals are configured just like externals for directories and appear as a versioned file in the working copy.

即你文件common/nagios/etc + common/nagios/objects將維持文件開始,HOST樹中的文件 - 的外部到公共文件(如果所有文件具有唯一的名稱)。檢查主機樹將工作副本中的所有文件(如果外部沒有禁用結帳)

+0

這工作完美(一旦我意識到我正在運行1.5.7和升級:-)!我現在唯一的小問題是,如果我運行'svn list -R --include-externals',我沒有看到外部,但這不是真正的問題。 謝謝! – pconnally

相關問題