代码之家  ›  专栏  ›  技术社区  ›  Mark Bolusmjak

svn,测试文件在其存在的所有分支中是否相同

svn
  •  0
  • Mark Bolusmjak  · 技术社区  · 15 年前

    如何测试文件在其存在的所有分支中是否相同?
    即使是构建脚本的伪代码也会有所帮助。

    谢谢。

    编辑: 我必须在5个分支中对大约900个文件执行此操作。长话短说。
    事实证明,最简单的事情就是检查所有的东西,并使用标准的命令行工具来完成这项工作。

    谢谢大家的建议。

    2 回复  |  直到 15 年前
        1
  •  1
  •   Peter Parker    15 年前

    最简单(也是最快)的方法是比较文件的修订号,因为分支和标记不会改变它们。

    如果您遵循此路径,则不会检查标识,但如果文件是 改变 在分支中,这通常更重要。

    因此,如果有人提交一个已更改的文件,然后将其反向合并回原来的修订版,那么它将报告一个错误的警报。为了避免这种情况,可以对修订版不匹配的文件进行区分。

    您可以通过以下方式获取标题修订中所有文件的修订号:

    svn ls -vR REPO_URL/path/to/file
    

    或在nice xml中通过:

    svn ls --xml -R REPO_URL/path/to/file
    

    如果知道文件的路径(相对于主干)在整个存储库中是唯一的,则可以使用 格雷普 获取所有分支文件:

    svn ls -vR REPO_URL/ | grep /path/to/file/without/trunk
    

    然后您就有了所有的信息,只需要解析..(但是svn ls-vr repo_url/is 真的? 慢)

        2
  •  2
  •   Avi    15 年前

    像下面这样?

    foreach( branch in project/branches/* )
      svn diff project/trunk/relative_path_to_file branch/relative_path_to_file