EmergeDiff

Last edit

Summary: Fix invocation of emacs in emerge-for-git so that it properly handles command-line arguments with spaces and other characters that are significant to the shell.

Changed:

< emacs -Q $*

to

> emacs -Q "$@"


has been subsumed by EdiffMode

From Ediff.el: The present version of Ediff supersedes Emerge. It provides a superior user interface and has numerous major features not found in Emerge. In particular, it can do patching, and 2-way and 3-way file comparison, merging, and directory operations.

Reference

Emerge is a graphical frontend to the UNIX “diff” and “diff3” commands. It is useful if two programmers on a project team both changed the same file and you need to integrate their changes.

Here is the Ediff manual section for emerge: http://www-2.cs.cmu.edu/cgi-bin/info2www?(emacs)Emerge

Useful settings for emerge:

    (setq emerge-diff-options "--ignore-all-space")

Start emerge faster for git-mergetool = If you want to use emerge as git-mergetool, and want to start emacs using emacs -Q, then

    #!/bin/sh
    emacs -Q "$@"
    $ git config --global merge.tool emerge
    $ git config --global mergetool.emerge.path $HOME/bin/emerge-for-git

Now git-mergetool should start emacs using emacs -Q. I still don’t know how to use emacsclient for emerge.

    emacsclient -c --eval "(emerge-files \"$3\" \"$4\")" 

Or if you prefer “emerge”

    emacsclient -c  --eval "(emerge-files nil \"$3\" \"$4\" \"${4}.out\")"

Since the “emacs -Q $*” version will actually be expand to

    emacs -Q -f emerge-files-command /tmp/fileA fileB

CategoryExternalUtilities CategoryProgrammerUtils CategoryComparing