是否可以将我的工作副本与任意修订进行比较?

时间:2013-02-12 15:40:03

标签: svn tortoisesvn

我知道从命令提示符开始,我可以执行类似

的操作
svn diff -rXXX foo.bar

foo.bar的工作副本与修订版XXX 进行比较,即使此修订版位于合并分支上也是如此。

我如何使用TortoiseSVN做同样的事情?它的作用就像过去的修改一样,与我的WC在同一个分支上,但不是在不同的... ...

修改

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

  • 当我在“显示日志”窗口中右键单击给定文件的修订版本并选择“与工作副本比较”时,差异查看器(或WinMerge)在我的例子中)将旧版本(以版本号命名,并存在于Windows临时文件夹中)的文件的本地副本与我的实际工作副本进行比较
  • 当我右键单击同一个文件并选择“Diff with URL”时,被比较的文件都是在Windows的临时文件夹中制作的本地副本,这使我无法将一些差异直接合并到我的工作副本中。 ..

是否有解决办法?

3 个答案:

答案 0 :(得分:22)

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

有关此内容的更多信息,请阅读以下链接: Viewing Differences。这在“与另一个分支/标签的区别”部分中进行了具体讨论

答案 1 :(得分:11)

当然,@ Rob的答案有效,但要求您查找然后输入可能很长的URL。只需点击几下鼠标即可完成相同的任务,而且根本不需要输入任何内容:

  1. 在Windows资源管理器中,打开目标文件的上下文菜单,然后选择TortoiseSVN >> Revision Graph
  2. 显示图表后,单击代表工作副本的节点。
  3. control +单击要与之比较的节点,该节点可能位于任何分支上。
  4. 在所选节点上打开上下文菜单,然后选择compare revisions
  5. 在图示中,修订版22175是我在一个分支上的工作副本。我在不同的分支上选择节点18568进行比较 - 两个节点都标有紫色方块。

    TortoiseSVN revision graph

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

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

    最后注意事项:选择Modified节点时,订单很重要!首先选择Modified 然后控制+选择要比较的节点。这为您提供了上下文菜单中的compare revisions选项。如果你反过来这样做,你只能选择unified diff

答案 2 :(得分:1)

  1. 右键单击Windows文件资源管理器中的文件,然后单击TortoiseSVN - >显示日志。
  2. 右键单击需要比较的修订版本,然后选择“与工作副本比较”。