【问题标题】:how to svn diff between a working copy and an unrelated branch如何在工作副本和不相关分支之间进行 svn 差异
【发布时间】:2012-06-30 11:03:18
【问题描述】:

这是场景:

用户 1

  1. 创建分支/X
  2. svn checkout 分支/X 到本地机器
  3. 修改文件.txt
  4. 提交更改

另一个用户,用户 2,

  1. 创建分支/Y
  2. svn checkout 分支/Y 到他的本地机器
  3. 将分支/X 合并到本地机器(从而将 file.txt 合并到分支/Y)
  4. 在提交更改之前,使用 svn diff 验证对本地分支/Y 副本中的 file.txt 的更改是否成功。

由于 svn diff 无法将本地工作副本与 URL 的工作副本进行比较,因此用户 2 的步骤 4 不可能在不首先将更改提交到分支/Y 的情况下进行。 但这违背了在提交合并更改之前验证合并是否产生正确结果的整个目的。

我已经搜索过这个,但没有找到任何可用的解决方案。 唯一推荐的解决方案是检查分支/X,以便 svn 可以比较两条路径。 由于尚未签入合并更改,因此我无法将 svn diff 与两个 URL 一起使用。

检查分支/X 和分支/Y 只是为了执行差异是不切实际的,更不用说耗时和乏味了。

有什么方法可以将本地工作副本中尚未提交的合并更改与合并分支中的更改进行比较?

【问题讨论】:

  • 在我看来,在 (2)(svn checkout Y) 和 (3)(svn merge X) 之间,如果 Y / 现有文件 file.txt 发生变化,您应该 commit Y 在 merging X 之前提交,从而完全可以在结帐时执行 svn diff / svn diff -rHEAD
  • 没有问题...无法理解您的问题是什么..
  • branchs/Y 中的 file.txt 没有本地更改。因此,没有什么可承诺的。 file.txt 仅通过合并分支/X 的版本来修改。我需要将 subversion 合并生成的结果 file.txt 与 branch/X 中的原始副本进行比较,以确认 subversion 在将这些更改提交到我的本地工作副本之前正确合并了更改,即分支/Y。

标签: svn merge branch diff


【解决方案1】:

Johan Corveleyn 为我提供了答案。我把它贴在这里,以便其他人可以看到答案。

svn diff 确实可以将本地路径上的工作副本文件与存储库中的另一个版本进行比较,因此可以通过 URL 引用。下面是语法:

svn diff --old=http://repository/branches/X/file.txt --new=file.txt

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-23
    • 2016-06-17
    • 2011-05-27
    • 2012-12-30
    • 1970-01-01
    相关资源
    最近更新 更多