2011-09-20 103 views
2

目前,我試圖改進我的svn合併過程。爲了達到這個目的,我開始創建一個shell腳本,查找自上次dropmerge後哪些文件夾發生了更改。該腳本的輸出文件看起來是這樣的:基於文件創建文件夾結構

/components/intmodules/ 
/components/ext/modules/EmailConn Runtime/ 
/components/emailconn/ 
/components/ftpconn/ 
/components/ 
/redist/ 

現在我想可以在文件系統上創建該文件夾結構,使用SVN更新。所有文件夾應該用--depth files檢出,但最深的(非組件)應該用--depth infinity檢出。

我將如何實現這一目標。如何遍歷文件夾並檢出/更新這些文件夾,包括那些名稱中有空格的文件夾?

+0

我們如何知道哪些應該得到'無窮'?除此之外,應該只需要一個簡單的'while read dir'循環。 – tripleee

回答

3

合併到一個沒有深度無限的工作副本並不是一個好主意,所以這通常不是一個好主意。

也就是說,Subversion存儲庫中有一個示例腳本,用於檢查基於描述所需內容的輸入文件的混合深度工作副本。我建議你使用這個腳本來完成結帳並調整你的腳本來生成腳本想要的文件格式。這和你上面展示的非常相似,所以不要太難。

http://svn.apache.org/repos/asf/subversion/trunk/tools/client-side/svn-viewspec.py

+0

謝謝@Mark,工作得很好!我可以使用此腳本生成viewspec文件,並按照我想要的方式獲取結帳。 echo「Format:1」> viewspec.txt echo「Url:$ url」>> viewspec.txt echo「」>> viewspec.txt awk'{if($ 0 ==「/ components /」){打印「。」$ 0「〜」} if($ 0!=「/ components /」){print「。」$ 0「**」}}'output-all.log >> viewspec.txt echo「./~」 >> viewspec.txt – Excel20