git - 在 Git 中切换 diff 算法会导致任何问题吗?

标签 git diff

我想切换到 Git 中的 patience 或直方图算法,但我想知道给定 repo 在使用算法时是否有任何副作用。如果我切换,当我处理在算法切换之前添加的提交时,是否会导致任何中断?如果其他开发人员不使用相同的算法,会不会有问题?

我想不出会发生冲突的特定场景,但这似乎是一个非常根本的变化,所以我还是会先看看再决定。

最佳答案

您使用的 diff 算法从您设置设置时开始生效,因此它将影响当时正在使用的任何操作。更改 diff 算法不会显式产生任何负面影响:任何 diff 算法都会产生等效的 diff,但问题是人们阅读起来有多容易。耐心和直方图通常更好,但并非总是如此。

唯一可能遇到问题的情况是,如果您将差异存储在某个系统或存储库中(例如由 git format-patch 生成的文件),这并不常见,但在一些 Linux 发行版打包工作流中使用。在这种情况下,如果不同的人使用不同的 diff 算法,您会在用户之间重新生成补丁时看到很多 diff 噪音,即使这些 diff 在逻辑上是等效的。

如果您遇到这种情况,最好使用您的工具强制执行一些固定的差异算法,这就是我过去所做的。这看起来就像让您的工具运行 git -c diff.algorithm=myers format-patch

除此之外,如果您发现自己喜欢的东西比默认值更好,那么更改 diff 算法确实没有什么坏处。

关于git - 在 Git 中切换 diff 算法会导致任何问题吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63430354/

相关文章:

C++ 字符串差异(la Python 的差异库)

javascript - 如何有效地存储 html 差异

git 子模块 : customization

linux - 如何从使用 sudo 运行的程序访问用户的 ssh key ?

git - 在git中,是否有一个SHA1指的是路径和修订的组合?

数据库比较工具

git - 使用不同的应用程序对 git 中的差异输出进行着色

diff - svn diff 空白/制表符仅更改

java - 如何在 Eclipse Neon 中轻松地进行 Git 提交

git - npm install error : ssh: connect to host github. com port 22: 连接超时