自定义Git合并驱动程序没有重命名检测

时间:2016-02-01 16:33:23

标签: git merge

我想设置一个带有自定义合并驱动程序的Git存储库,然后在合并时禁用重命名检测。

问题在于,如果我使用默认的递归策略,我无法禁用重命名检测,如果我使用解析策略(不理想,但足够好),则忽略合并驱动程序。

请注意,即使文件内容完全匹配,我也希望避免重命名检测。

的.git /配置:

[merge "my"]
    name = my merge
    driver = my_merge_driver %A %O %B
[merge]
    default = my

尝试:

$ git merge -X rename-threshold=200%  # Equivalent to 100%
$ git merge -s resolve                # Custom driver ignored
$ git --version                       # git version 2.2.0-rc0

2 个答案:

答案 0 :(得分:2)

从Git 2.8.0.rc0开始,merge-recursive算法现在接受一个选项“no-renames”(commit 4ce064d),所以我的问题现在已经解决了

$ git merge -X no-renames

答案 1 :(得分:1)

考虑到您为此计划的用例,一个好的解决方法是在每个文件中写入文件名以及版本号。