SVN 签出 最近提交与存储库中的修订相关的特定文件夹



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

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

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

我认为你应该使用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(。

最新更新