【问题标题】:Compare diff of multiple files in a single compre window在单个比较窗口中比较多个文件的差异
【发布时间】:2019-06-13 15:24:55
【问题描述】:

我在我的项目中做了一个简单的正则表达式查找和替换,它影响了大约 300 个文件,每个文件大多 2-5 行。此外,还有一些小的调整和手动更改来修复不规则的情况。

现在我想查看所有差异并使用一些比较工具比较每个更改(最好在比较 4 之外)。

我想出的最好办法是使用git diff > changes.diff,但这仍然是一个文档,我更喜欢并排查看。

有没有办法在一个比较窗口中查看所有差异?

P.S 我可能会解析 diff 文件并将 + 行放到一个文件中,将 - 行放到另一个文件中,但希望有一些自动供我使用。

编辑:

我不是在寻找一种使用 Beyond Compare 之类的工具来比较差异的方法。我想查看多个文件一次所有更改作为并排比较。我不想一个一个地检查 300 多个文件并使用 BC 进行比较,而是想打开一个包含所有更改的文件并将其与没有更改的同一文件进行比较。

例如,如果我有 2 个文件 test1.cpptest2.cpp 并且我有 git diff 我会得到:

diff --git.....
--- a/file1.cpp
+++ b/file1.cpp
@@ ....
- foo("a", "b");
+ bar("a", "b");

--- a/file2.cpp
+++ b/file2.cpp
@@ ....
- foo("x", "y");
+ bar("x", "y");

我希望能够打开 BC 并看到类似的内容(在单个选项卡/窗口中):

--- a/file1.cpp     |    +++ b/file1.cpp
foo("a", "b");      |    bar("a", "b");
                    | 
--- a/file2.cpp     |    +++ b/file2.cpp
foo("x", "y");      |    bar("x", "y");

【问题讨论】:

标签: git git-diff beyondcompare4


【解决方案1】:

使用 Beyond Compare 将所有文件差异输出到单个文件:

  1. 超越比较。
  2. 打开文件夹比较并加载一对文件夹。
  3. 选择要比较的文件。
  4. 操作 > 文件比较报告。
  5. 选择并排作为报表布局。
  6. 将输出选项设置为 HTML 报告或纯文本。

一次循环浏览一个文件:

  1. 超越比较。
  2. 打开文件夹比较。
  3. 加载一对文件夹。
  4. 双击文件夹比较中的第一对文件以在文本比较中显示它们的内容。
  5. 使用搜索 > 下一个差异 (Control+N) 循环浏览当前文件中的差异。
  6. 使用搜索 > 下一个差异文件 (Control+M) 循环到下一个文件。

【讨论】:

  • 哇好棒!这很有帮助,谢谢!但是,我不会将此作为答案,因为这种方式显示了文件的全部内容,而不仅仅是围绕差异的周围线,此外,它不允许我使用 BC 在比较文件时具有的功能(例如如对齐、左右移动等)
  • 要仅查看报告中的不同行,请将报告对话框中的下拉列表从 All 更改为 Differences。在上面包含一些匹配的行在每个不同的行下方,检查 Show Context
【解决方案2】:

您可以获取 repo 的副本,然后将更改存储在副本中。之后,您可以在任何差异工具中比较这两个文件夹,例如超越比较等。

【讨论】:

  • 这与查看 Visual Studio(用于 git repo)或任何其他 git gui 工具中的更改相同,它不会将所有更改合并到一个文件中
猜你喜欢
  • 2014-06-08
  • 1970-01-01
  • 1970-01-01
  • 2021-06-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-08-10
相关资源
最近更新 更多