2011-09-20 105 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