2017-06-15 90 views
2

我正在執行一些python腳本,全部使用相同(大)框架的部分。我使用這個框架的各種版本,全部在版本控制之下,並且由於每個測試使用了它的不同部分,我決定只檢出我需要的部分將更快。換句話說,我期待使用稀疏結賬。我的意圖是一步一步簽出一份空的工作副本,並通過更新進行更新,以便隨着時間的推移收集(幾乎)完整的框架。我正在使用一個python腳本和modulefinder來決定我爲每個項目需要的框架的哪些部分。所以我得到如下:svn checkout/update不刪除磁盤上的現有(版本化)文件

FOO項目,框架樹:

\R100 
    \Framework 
    \Module_1 
     \Submodule_1 
     \Submodule_5 
    \Module_2 
    \Module_3 

結帳程序:

svn checkout repo.url/[email protected] local\R100\Framework --depth empty 
svn update \local\R100\Framework --depth immediates --revision 100 
svn update \local\R100\Framework\Module_1 --depth immediates --revision 100 
svn update \local\R100\Framework\Module_1\Submodule_1 --depth immediates --revision 100 
svn update \local\R100\Framework\Module_1\Submodule_5 --depth immediates --revision 100 
svn update \local\R100\Framework\Module_2 --depth immediates --revision 100 
svn update \local\R100\Framework\Module_3 --depth immediates --revision 100 

項目欄:

\R100 
    \Framework 
    \Module_1 
     \Submodule_1 
     \Submodule_2 
    \Module_2 
    \Module_3 

結帳程序:

svn checkout repo.url/[email protected] local\R100\Framework --depth empty 
svn update \local\R100\Framework --depth immediates --revision 100 
svn update \local\R100\Framework\Module_1 --depth immediates --revision 100 
svn update \local\R100\Framework\Module_1\Submodule_1 --depth immediates --revision 100 
svn update \local\R100\Framework\Module_1\Submodule_2 --depth immediates --revision 100 
svn update \local\R100\Framework\Module_2 --depth immediates --revision 100 
svn update \local\R100\Framework\Module_3 --depth immediates --revision 100 

項目武:

\R100 
    \Framework 
    \Module_1 
     \Submodule_1 
     \Submodule_3 
    \Module_6 
    \Module_9 

結帳程序:

svn checkout repo.url/[email protected] local\R100\Framework --depth empty 
svn update \local\R100\Framework --depth immediates --revision 100 
svn update \local\R100\Framework\Module_1 --depth immediates --revision 100 
svn update \local\R100\Framework\Module_1\Submodule_1 --depth immediates --revision 100 
svn update \local\R100\Framework\Module_1\Submodule_3 --depth immediates --revision 100 
svn update \local\R100\Framework\Module_6 --depth immediates --revision 100 
svn update \local\R100\Framework\Module_9 --depth immediates --revision 100 

的問題是,每個連續的更新與已存在的文件的刪除而不是隻檢查出的新的這個工作拷貝文件開始。有什麼辦法可以克服嗎?我意識到設置更新/結帳深度是原因,但我想克服這個問題,告訴svn客戶端「好吧,那些文件和文件夾不再在結帳範圍內,但由於它們已經在這裏,所以請保留它們」

回答

0

你決定遵循的方法將無法正常工作,我期望有很多痛苦的女巫這樣的工作副本。 SVN提供了考慮到這種情況的工具。

在我看來,您特別錯過了vendor branchessvn:externals。你可以研究和您的SVN倉庫實現這些功能的一個或兩個:

  • 使用vendor branches保持定製代碼庫依賴於外部代碼。
  • 使用帶有SVN中標籤的svn:externals來構建多個項目或簽出中的工作副本。
相關問題