22

我知道从命令提示符下,我可以做类似的事情

svn diff -rXXX foo.bar

将我的工作副本foo.bar与修订进行比较XXX即使此修订位于合并分支上。

我怎样才能用 TortoiseSVN 做同样的事情?它就像一个魅力,过去的修订与我的 WC 在同一个分支上,但不是在不同的分支上......

编辑:

感谢 Rob 的回答,我现在可以将工作副本中的文件与位于合并分支上的过去修订进行比较。我想知道的最后一件事是是否可以手动将一些差异合并到我的工作副本中:

  • 当我在“显示日志”窗口中右键单击给定文件的修订版并选择“与工作副本比较”时,差异查看器(或在我的情况下为 WinMerge)比较旧修订版的文件的本地副本(命名为在修订号之后,并出现在 Windows 临时文件夹中)到我的实际工作副本
  • 当我右击同一个文件并选择“Diff with URL”时,正在比较的文件都是在 Windows 的临时文件夹中制作的本地副本,阻止我将一些差异直接合并到我的工作副本中......

有解决办法吗?

4

3 回答 3

24

实现此目的的一种方法是在您右键单击工作副本中要比较的文件时按住 shift 键。选择 TortoiseSVN->Diff with URL。这会弹出一个对话框,允许您将完整的服务器路径名放入要比较的分支上的文件中。它还允许您指定修订版本。这带来了 TortoiseSVN 差异与 2 个文件和差异。

有关这方面的更多信息,您可以阅读此链接: 查看差异。这在“与另一个分支/标签的差异”部分中有专门讨论

于 2013-02-12T15:44:08.333 回答
13

@Rob 的答案当然有效,但需要您查找然后输入一个可能很长的 URL。您只需单击几下鼠标,无需输入即可完成相同的任务:

  1. 在 Windows 资源管理器中打开目标文件的上下文菜单并选择TortoiseSVN >> Revision Graph.
  2. 图表显示后,单击代表您的工作副本的节点。
  3. control +单击要比较的节点,该节点可能位于任何分支上。
  4. 打开任一选定节点上的上下文菜单,然后选择compare revisions

在插图中,修订版 22175 是我在一个分支上的工作副本。我选择了不同分支上的节点 18568 进行比较——两个节点都标有紫色方块。

TortoiseSVN 修订图

2013.02.14 更新:比较工作副本,而不仅仅是工作基础!

Yannick,感谢您提醒我区分工作副本工作基础。我之前的说明确实是将工作基础与任意节点进行比较。修改后的插图显示了如何将工作副本与任意节点进行比较。为此,请注意工具栏上最右侧的两个按钮。黑色圆圈的 WC 按钮显示并突出显示工作基础,在本例中为 22175。红色圆圈的 WC 按钮显示并突出显示工作副本作为标记为特殊的红色节点Modified. 一旦你实现了那个节点,你现在就有了一个修改过的工作副本,你可以随意触摸、抓取、折叠、旋转或破坏它!例如,您可以通过首先选择已修改然后选择工作基础(在本例中为 22175)并比较这些修订来查看您的工作副本修改。

最后说明:选择Modified节点时,顺序很重要!Modified先选择然后控制+选择要比较的节点。这使您compare revisions可以在上下文菜单上进行选择。如果你反其道而行之,你就unified diff只有一个选择。

于 2013-02-13T20:26:35.663 回答
5
  1. 在 Windows 文件资源管理器中右键单击该文件,然后单击 TortoiseSVN -> 显示日志。
  2. 右键单击您需要比较的修订并选择“与工作副本比较”。
于 2018-01-16T09:43:18.027 回答