SVN checkout特定文件夹,其最近提交了与存储库中的修订相关的提交

时间:2018-01-19 12:03:24

标签: svn svn-checkout

Jenkins的工作是监控SVN中我们的项目所在的位置。我们在SVN项目的大小是200GB我们的工作每次检查整个项目(200GB),即使是一个小的修改(50MB)。有没有办法只检出针对特定修订版修改的文件夹,以便Jenkins作业上的加载(SVN Checkout)仅从200GB减少到几百MB。 通过在Jenkins工作空间中保留工作副本,我们只需要运行SVN更新,但由于某些内部原因,这是不可能的。

我知道没有规定从SVN存储库中检出修订范围

我将非常感谢任何建议和解决方案

1 个答案:

答案 0 :(得分:1)

我认为你应该使用log -v

svn log -l1 -v

它生成包含已更改文件列表的输出(在上次提交中)。您可以使用grep过滤不需要的内容:grep '^ M'sed以清除不需要的Msed -n '/^ M/ s@^ M @@p'

svn log -l1 -v | sed -n '/^   M/ s@^   M @@p'

所以你需要签出这些文件(svn checkout $(svn log -l1 -v | sed...))。

也许您希望将此解决方案扩展到新文件(A符号而不是M)。