Jenkins 作业是监视 SVN 中我们的项目位于不同文件夹中的位置。我们在SVN中的项目大小为200GB,我们的工作每次都会检查整个项目(200GB(,即使是很小的修改(50MB(。有没有办法只签出针对特定修订版修改的文件夹,以便将 Jenkins 作业上的负载(SVN 检出(从 200GB 减少到几百 MB。通过在 Jenkins 工作空间中保留工作副本,我们只需要运行 SVN 更新,但由于某些内部原因,这是不可能的。
我知道没有规定从SVN存储库中签出修订范围
我将非常感谢任何类型的建议和解决方案
我认为你应该使用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
(。