有没有办法在 JetBrains IDE 中查看我的分支中的所有更改?

Is there a way to view all changes in my branch within a JetBrains IDE?

我有一个包含三个提交的 Mercurial 分支,我想在 Rider.

中查看这三个提交的汇总更改

我可以使用 TortiseHg 和 BeyondCompare,但我想知道我是否可以在 IDE.

中实现我正在寻找的东西

我知道我可以使用 CommitMercurial 选项卡来查看单个提交的更改,是否有类似的方法来查看分支的所有文件更改?

有多种方法可以做到这一点,我会这样做:

您有一个分支 default,包含三个提交(ABC

   C
  B
 A
D1
  1. 确保没有 uncommitted/working 更改 - 如果有更改,请搁置或提交。
  2. 更新到 default 分支,它是您第一个分支提交 (D1) 的父分支。
  3. 不更新,将所有更改还原为提交 C(比如 C 是修订版 1234)。

hg revert --all --rev=1234

或者如果您使用 thg 只需右键单击 C 提交并单击 'revert all files'

这会将您的工作目录更新为提交 ABC 所做的更改, 允许将它们作为单个更改进行审查。

在将功能分支合并回 default 之前,这通常是一件有用的事情。

对于使用 TortoiseHG(这是 Mercurial 的常见 GUI 前端)的人来说,它有一个内置的功能。

在 Workbench window 中,您可以 CTRL+单击 select 历史记录中的任意两个任意提交。然后右键单击其中之一和 select“视觉差异”。

这会显示相关更改文件的确认信息。从那里你可以选择一个或多个差异工具(除了 Tortoise 附带的 KDiff3 之外,我还安装了 WinMerge)并单击“目录差异”。

(THG 似乎知道哪些可用的 diff 工具能够执行此操作)。

diff 工具应该首先向您显示文件集之间的差异,然后您可以深入了解各个文件的差异。 (KDiff3 和 WinMerge 都这样做。)

是的,这很容易实现:

  1. 打开 Git 选项卡(大多数情况下为 Alt+9 键盘快捷键)
  2. 过滤到您感兴趣的特定分支
  3. 点击分支中的最新提交(列表顶部)
  4. 按住键盘上的 Ctrl 键
  5. 在列表中向下滚动并单击产生分支的提交(很容易发现,因为它旁边的小圆圈字形将有不同的颜色)。

Example

我找到了一种使用 Rider UI 的方法,但结果是 @Tom 的答案稍微不优雅。

我从一个分支中的 3 个提交开始 new-branch 即将结束 default:

  @  dfa1d813a320 (new-branch) add file 3 [tip]
  o  38677ad21a87 (new-branch) add file 2
  o  f87856294900 (new-branch) add file 1
 /
o  3282081c6a8f (default)

我用 hg up default 更新为默认值,转到 Rider 右下角的分支操作,在分支列表中找到我的新分支的名称,select 然后单击 Compare.

这会弹出一个弹出视图,左侧是提交,右侧是文件更改。我 select 所有提交和文件更改显示整个分支的更改。

然后我可以通过单击名称查看每个文件的聚合分支更改,或者通过单击 Show Diff 按钮循环查看所有更改。此 diff 视图在主 Rider window 中重新显示。这有点尴尬,但它确实产生了所需的结果。