Jenkins的工作是监控SVN中我们的项目所在的位置。我们在SVN项目的大小是200GB我们的工作每次检查整个项目(200GB),即使是一个小的修改(50MB)。有没有办法只检出针对特定修订版修改的文件夹,以便Jenkins作业上的加载(SVN Checkout)仅从200GB减少到几百MB。 通过在Jenkins工作空间中保留工作副本,我们只需要运行SVN更新,但由于某些内部原因,这是不可能的。
我知道没有规定从SVN存储库中检出修订范围
我将非常感谢任何建议和解决方案
答案 0 :(得分:1)
我认为你应该使用log -v
:
svn log -l1 -v
它生成包含已更改文件列表的输出(在上次提交中)。您可以使用grep
过滤不需要的内容:grep '^ M'
或sed
以清除不需要的M
:sed -n '/^ M/ s@^ M @@p'
:
svn log -l1 -v | sed -n '/^ M/ s@^ M @@p'
所以你需要签出这些文件(svn checkout $(svn log -l1 -v | sed...)
)。
也许您希望将此解决方案扩展到新文件(A
符号而不是M
)。