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

Yan*_*eau 20 svn tortoisesvn

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

svn diff -rXXX foo.bar
Run Code Online (Sandbox Code Playgroud)

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

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

编辑:

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

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

有解决办法吗?

Rob*_*win 23

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

有关此内容的更多信息,请阅读以下链接: 查看差异.这在"与另一个分支/标记的区别"部分中有特别说明


Mic*_*ens 11

当然,@ 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只能做出选择.


Ste*_*ers 5

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

  • 这应该是公认的答案。当您有很长的历史记录时,修订图会非常慢,而且接受的答案谈论的是比较具体文件,而OP标题是关于将整个工作副本与完整修订版进行比较。 (2认同)