3

我正在尝试使用 mercurial 配置 Beyondcompare 以设置多个工作流程。

目前我可以这样做:

  • 启动hg bcomparehg bcompare --rev <something>
  • 对右侧的文件进行一些更改
  • 保存在无可比拟
  • 接近无可比拟
  • 刷新我的编辑器/IDE
  • 在编辑器/IDE 中进行更改
  • 重新启动无与伦比

我想做的是:

  • 启动hg bcomparehg bcompare --rev <something>
  • 对右侧的文件进行一些更改
  • 保存在无可比拟
  • 刷新我的编辑器/IDE
  • 在编辑器/IDE 中进行更改
  • 刷新无可比拟

目前,此工作流程无法正常工作,但我似乎无法弄清楚是无法比较还是反复无常的事情会搞砸。我可以看到超出比较右侧窗格中的文件位于此目录中:/tmp/extdiff.MIGT6x/dir.

这个目录是从哪里来的?有没有办法让我超越比较在修订之间做一个完整的差异(我知道这会更慢)?

或者,有没有一种方法可以让超越比较的保存将文件写入实际位置并让超越比较的刷新正常工作?

我按照Beyond Compare 网站上的描述设置了 Beyond-compare :

[extensions]
hgext.extdiff =

[extdiff]
cmd.bcompare =

[merge-tools]
bcomp.executable = /usr/bin/bcompare
bcomp.args = $local $other $base $output
bcomp.priority = 1
bcomp.premerge = True
bcomp.gui = True

在此处输入图像描述

4

2 回答 2

1

'extdiff' 扩展名(这是我希望你能够在 bcompare 中显示更改的内容),使用 'hg status' 来检查 2 个修订版之间(或当前工作目录和一个修订版之间的文件不同) )。

然后它将所有与两个临时目录不同的文件复制到两个临时目录并调用 bcompare(或任何其他 difftool)来比较这两个目录。

这种方法的好处:

  • 只需要比较少量文件(所以difftool本身不需要遍历所有文件)
  • 不需要每个 difftool 都添加 Mercurial 支持,工具只需要支持 diffing 2 个目录

当然,缺点是在 difftool 中进行编辑不会在您的存储库中显示效果。换句话说:不可能按照您想要的方式执行此操作。

于 2015-04-22T09:12:08.713 回答
0

Mathiasdm 在他们的回答中所说的是正确的,因为 HG 创建了临时文件,然后它告诉 Beyond Compare 开始一个差异。

如果您仍希望保存对临时文件所做的编辑,最好的替代方法是使用该Save As命令并将其指向您的存储库中的现有文件。话虽如此,如果您只想编辑当前的工作文件,您只需编辑左侧(工作副本)并直接保存更改。除此之外,没有办法强制 Beyond Compare 对不是临时文件的文件进行比较,因为这些文件是由 HG 生成的。

于 2015-04-23T17:54:43.463 回答