我有一个带有两个分支的存储库,A
并且B
.
它们应该是相同的代码,但针对它们所依赖的库的不同版本。
所以A/file1.js
可能有一个片段,如下所示:
this.actor.bar();
虽然B/file1.js
可能有:
// `bar` had its name changed to `foo` in version X.Y of library Z
this.actor.foo();
然后我继续A
说,做了一大堆与库的两个版本兼容的更改,Z
并希望将它们合并到B
.
有什么办法可以告诉 mercurial,“进行合并但忽略*.bar()
变为的行*.foo()
”?
基本上有一些代码块在分支之间A
以及B
它们所依赖的库版本不同,但我编写的代码使得除了这些行之外,其余代码是相同的。
我只是不想每次合并时都处理这些代码块,因为否则我更容易捏造合并并切换其中一些块。
我唯一能想到的就是以某种方式为每个文件设置不同的差异预设,每个文件调用每个文件diff --ignore-matching-lines [impressively_long_argument]
都是自定义的——这似乎是错误的做法!
(我可以在 git 中执行此操作吗?这是一个我会切换版本控制系统的功能,尽管我不知道如何实现它。或者解决方案可能在于找到一个复杂的diff
工具)。