2014-03-05 70 views
-1

以下是該場景。 在一個svn倉庫中,同一個文件夾樹下有多個文件夾。 說結構爲:單個文件夾中多個位置的SVN內容

ProjectA 
| 
| - Folder1 
| - Folder2 

現在,在一個單獨的文件夾樹:

ProjectB 
| - FromExternalProject (needs all contents of Folder1 & Folder2 in ProjectA) 

優選地,所有的含量應保持在相同的文件夾的水平的外部。使用文件外部是一個選項,但文件太多(差不多25)。 我們不能從同一個文件夾中擁有多個文件夾外部,我們可以嗎? 有沒有其他辦法可以達到這個目的?

+0

可能的重複http://stackoverflow.com/questions/3141538/how-to-bring-in-multiple-files-into-the-same-folder-using-svnexternals – pmod

+0

因此,它看起來像最乾淨/最可靠的解決方案是將您的ProjectB重構爲只接受FromExternalProject中的文件夾外部結構 – pmod

回答

0

文件外部是我最初的想法,25個文件不是真的那麼多。你設置一次,然後使用它。

另一種選擇是使用客戶端鉤子腳本。烏龜SVN客戶端支持several of them。 SVN客戶端可以使用原始文件夾中的文件,鉤子腳本可以在pre-commit,pre-update和post-update腳本中將這些文件與工作文件夾中的相應文件同步。更新階段應該是這樣的:

  • 預更新:文件複製從FromExternalProjectFolder1Folder2
  • 更新後:從Folder1複製文件和Folder2FromExternalProject

提交階段會看像這樣:

  • pre-commit:從複製文件到Folder1Folder2

沒有必要提交後掛鉤。

還有一種選擇是使用文件系統的功能,如Windows和Linux中的symbolic links。這種情況與前一種情況相同,但沒有以前的掛鉤,因爲文件已經同步(因爲它們是磁盤上的相同文件)。您仍然需要在結帳後創建鏈接,可以手動運行一次腳本,也可以在更新後的掛鉤腳本中創建鏈接。

+0

Windows上的Subversion(實際上,我認爲它是底層的APR庫)最後一次檢查時不支持符號鏈接。 – alroc

+0

@alroc OP應該使用任何SVN客戶端和開發工具都認爲是邏輯上存在於兩個地方的純文件。某些類型的腳本會在結帳後運行並創建這些特殊的文件系統對象。 – Dialecticus

+2

任何客戶端腳本都會遇到的麻煩是,您必須確保將其分發到並運行在所有可能的客戶端環境(包括您的CI服務器)上。 – alroc

相關問題