SVN结帐按文件扩展名过滤?

Chr*_*mer 12 svn svn-checkout

我有一个DOS批处理文件形式的自行构建的自动构建脚本.在该脚本的一部分中,我查看(带有"svn checkout")我们SVN存储库的一部分,其中包含我们项目中使用的一堆第三方内容.这个批处理文件很长一段时间表现不错,但是现在人们已经在第三方区域检查了很多绒毛(文档,示例代码等),并且这个脚本的结账部分变慢了很多.我想通过仅检查我们需要的东西来缓解这个问题 - 在我们的案例中主要是dll文件.所以,我的问题是:检查通过文件扩展名筛选的SVN存储库的最佳方法是什么?

在svn帮助中我没有看到任何明显的方法来做到这一点.我有一个.NET实用程序库,它以某种方式包装svn.exe,我正在考虑扩展它以仅检索与我感兴趣的扩展名匹配的内容.但是如果存在的话,我更愿意使用更简单或现有的方法.

Mic*_*ner 27

这是可能的:你可以svn checkout一个空目录,然后svn update filename为每个文件,你想要的.

您的脚本可以执行以下操作:

  1. svn checkout svn://path/to/repos/directory --depth empty
  2. svn list --recursive svn://path/to/repos/directory
  3. 通过删除禁用文件扩展名的过滤器生成的管道,例如 grep
  4. 迭代这个新的筛选列表和svn update --parents每个文件

这样可以在没有特定文件或文件扩展名的情况下提供所需的工作副本结果.

当然,还有一个问题,你提到"人们[检查]大量的绒毛",但这是一个单独的问题.

  • 我自己尝试过这种方法,但我认为我做错了.我正在跳过路径冲突. (2认同)