gpt4 book ai didi

git - 使用 ediff 作为 git mergetool

转载 作者:IT王子 更新时间:2023-10-29 00:44:32 24 4
gpt4 key购买 nike

我希望能够将 ediff 与“git mergetool”一起使用。

我发现了一些修改源代码的补丁,我不想这样做。相反,我想在我的 .gitconfig 中添加 ediff 支持。

我知道 git 内置了对 emerge 的支持,但我更喜欢 ediff。

我试图将这些行添加到我的 .gitconfig 中:

[mergetool "ediff"]
cmd = emacs --eval "(ediff-merge-files-with-ancestor \"$LOCAL\" \"$REMOTE\" \"$BASE\" nil \"$MERGED\")"

但是当我尝试使用“git mergetool --tool=ediff”运行它时,我得到了这个:

eval: 1: Syntax error: "(" unexpected

我做错了什么?

最佳答案

我使用了一个更复杂的命令。据我所知,我是从这个线程http://kerneltrap.org/mailarchive/git/2007/6/28/250230得到的(可能与您所指的相同)。

[mergetool.ediff]
cmd = emacs --eval \"\
(progn\
(defun ediff-write-merge-buffer ()\
(let ((file ediff-merge-store-file))\
(set-buffer ediff-buffer-C)\
(write-region (point-min) (point-max) file)\
(message \\\"Merge buffer saved in: %s\\\" file)\
(set-buffer-modified-p nil)\
(sit-for 1)))\
(setq ediff-quit-hook 'kill-emacs\
ediff-quit-merge-hook 'ediff-write-merge-buffer)\
(ediff-merge-files-with-ancestor \\\"$LOCAL\\\" \\\"$REMOTE\\\"\
\\\"$BASE\\\" nil \\\"$MERGED\\\"))\"

请注意,我将它分成几行以提高可读性并使用 \ 转义换行符,因此 git config 将其视为单行。

我通常使用 emacsclient 来编辑,例如提交消息。不幸的是,上面的 mergetool 配置没有使用 emacsclient,当我试图让它与 emacsclient 一起工作时,我遇到了各种问题,包括 emacsclient 立即返回的事实。

但是你刚刚提醒了我那个问题,所以我可能会尽快解决这个问题。但是,如果其他人已经找到了一个很好的解决方案;-)

关于git - 使用 ediff 作为 git mergetool,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1817370/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com