summaryrefslogtreecommitdiff
path: root/git-mergetool.sh
AgeCommit message (Collapse)Author
2008-03-05Teach git mergetool to use custom commands defined at config timeCharles Bailey
Currently git mergetool is restricted to a set of commands defined in the script. You can subvert the mergetool.<tool>.path to force git mergetool to use a different command, but if you have a command whose invocation syntax does not match one of the current tools then you would have to write a wrapper script for it. This patch adds two git config variable patterns which allow a more flexible choice of merge tool. If you run git mergetool with -t/--tool or the merge.tool config variable set to an unrecognized tool then git mergetool will query the mergetool.<tool>.cmd config variable. If this variable exists, then git mergetool will treat the specified tool as a custom command and will use a shell eval to run the command with the documented shell variables set. mergetool.<tool>.trustExitCode can be used to indicate that the exit code of the custom command can be used to determine the success of the merge. Signed-off-by: Charles Bailey <charles@hashpling.org> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2008-03-05Changed an internal variable of mergetool to support custom commandsCharles Bailey
The variable $path changes to $MERGED so that it is more consistent with $BASE, $LOCAL and $REMOTE for future custom command lines. Signed-off-by: Charles Bailey <charles@hashpling.org> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2008-03-05Tidy up git mergetool's backup file behaviourCharles Bailey
Currently a backup pre-merge file with conflict markers is sometimes kept with a .orig extenstion and sometimes removed depending on the particular merge tool used. This patch makes the handling consistent across all merge tools and configurable via a new mergetool.keepBackup config variable Signed-off-by: Charles Bailey <charles@hashpling.org> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2008-01-08Allow git-mergetool to handle paths with a leading spaceRogan Dawes
Signed-off-by: Rogan Dawes <rogan@dawes.za.net>
2007-12-06Open external merge tool with original file extensions for all three filesPini Reznik
Before this change, conflicted files were open in external merge tool with temporary filenames like REMOTE.$$ and LOCAL.$$. This way meld was unable to recognize these files and syntax highlighting feature was unusable. Help such merge tools by giving temporar files the same extension as the original. Signed-off-by: Pini Reznik <pinir@expand.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2007-11-06scripts: Add placeholders for OPTIONS_SPECJunio C Hamano
--text follows this line-- These commands currently lack OPTIONS_SPEC; allow people to easily list with "git grep 'OPTIONS_SPEC=$'" what they can help improving. Signed-off-by: Junio C Hamano <gitster@pobox.com>
2007-10-18mergetool: avoid misleading message "Resetting to default..."Steffen Prohaska
If no mergetool is configured in the configuration variable merge.tool the resetting message should not be printed. This is fixed. The message is only printed if a tool is configured but the entry in merge.tool is invalid. Signed-off-by: Steffen Prohaska <prohaska@zib.de> Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
2007-10-18mergetool: add support for ECMergeSteffen Prohaska
Add support to mergetool for ECMerge available from http://www.elliecomputing.com/Products/merge_overview.asp Signed-off-by: Steffen Prohaska <prohaska@zib.de> Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
2007-10-18mergetool: use path to mergetool in config var mergetool.<tool>.pathSteffen Prohaska
This commit adds a mechanism to provide absolute paths to the external programs called by 'git mergetool'. A path can be specified in the configuation variable mergetool.<tool>.path. The configuration variable is similar to how we name branches and remotes. It is extensible if we need to specify more details about a tool. The mechanism is especially useful on Windows, where external programs are unlikely to be in PATH. [sp: Fixed a few minor issues prior to applying] Signed-off-by: Steffen Prohaska <prohaska@zib.de> Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
2007-09-29mergetool: Fix typo in options passed to kdiff3Theodore Ts'o
Fix missing double hyphens in "-L1" and "-L2" Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
2007-09-29mergetool: fix emerge when running in a subdirectoryTheodore Ts'o
Only pass the basename of the output filename when to emerge, since emerge interprets non-absolute pathnames relative to the containing directory of the output buffer. Thanks to Kelvie Wong for pointing this out. Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
2007-09-29Mergetool generating blank files (1.5.3)Junio C Hamano
When mergetool is run from a subdirectory, "ls-files -u" nicely limits the output to conflicted files in that directory, but we need to give the full path to cat-file plumbing to grab the contents of stages. Signed-off-by: Junio C Hamano <gitster@pobox.com> Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
2007-09-23Supplant the "while case ... break ;; esac" idiomDavid Kastrup
A lot of shell scripts contained stuff starting with while case "$#" in 0) break ;; esac and similar. I consider breaking out of the condition instead of the body od the loop ugly, and the implied "true" value of the non-matching case is not really obvious to humans at first glance. It happens not to be obvious to some BSD shells, either, but that's because they are not POSIX-compliant. In most cases, this has been replaced by a straight condition using "test". "case" has the advantage of being faster than "test" on vintage shells where "test" is not a builtin. Since none of them is likely to run the git scripts, anyway, the added readability should be worth the change. A few loops have had their termination condition expressed differently. Signed-off-by: David Kastrup <dak@gnu.org> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2007-07-03Rewrite "git-frotz" to "git frotz"Junio C Hamano
This uses the remove-dashes target to replace "git-frotz" to "git frotz". Signed-off-by: Junio C Hamano <gitster@pobox.com>
2007-06-10git-mergetool: Make default selection of merge-tool more intelligentTheodore Ts'o
Make git-mergetool prefer meld under GNOME, and kdiff3 under KDE. When considering emerge and vimdiff, check $VISUAL and $EDITOR to see which the user might prefer. Signed-off-by: "Theodore Ts'o" <tytso@mit.edu> Cc: Josh Triplett <josh@freedesktop.org>
2007-06-10[PATCH] git-mergetool: Allow gvimdiff to be used as a mergetoolDan McGee
Signed-off-by: Dan McGee <dpmcgee@gmail.com> Acked-by: "Theodore Ts'o" <tytso@mit.edu>
2007-06-06Fix typo in git-mergetoolJosh Triplett
Signed-off-by: Josh Triplett <josh@freedesktop.org> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2007-03-30mergetool: Clean up description of files and prompts for merge resolutionsTheodore Ts'o
This fixes complaints from Junio for how messages and prompts are printed when resolving symlink and deleted file merges. Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
2007-03-29mergetool: Make git-rm quiet when resolving a deleted file conflictTheodore Ts'o
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
2007-03-29mergetool: Add support for Apple Mac OS X's opendiff commandTheodore Ts'o
Signed-off-by: Arjen Laarhoven <arjen@yaph.org> Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
2007-03-29mergetool: Fix abort command when resolving symlinks and deleted filesTheodore Ts'o
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
2007-03-29mergetool: Remove spurious error message if merge.tool config option not setTheodore Ts'o
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
2007-03-29mergetool: factor out common codeTheodore Ts'o
Create common function check_unchanged(), save_backup() and remove_backup(). Also fix some minor whitespace issues while we're at it. Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
2007-03-29mergetool: portability fix: don't use reserved word functionTheodore Ts'o
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
2007-03-29mergetool: portability fix: don't assume true is in /binTheodore Ts'o
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
2007-03-29mergetool: Don't error out in the merge case where the local file is deletedTheodore Ts'o
If the file we are trying to merge resolve is in git-ls-files -u, then skip the file existence test. If the file isn't reported in git-ls-files, then check to see if the file exists or not to give an appropriate error message. Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
2007-03-29mergetool: Replace use of "echo -n" with printf(1) to be more portableTheodore Ts'o
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
2007-03-19mergetool: print an appropriate warning if merge.tool is unknownTheodore Ts'o
Also add support for vimdiff Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
2007-03-19mergetool: Add support for vimdiff.James Bowes
Signed-off-by: James Bowes <jbowes@dangerouslyinc.com> Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
2007-03-14Add git-mergetool to run an appropriate merge conflict resolution programTheodore Ts'o
The git-mergetool program can be used to automatically run an appropriate merge resolution program to resolve merge conflicts. It will automatically run one of kdiff3, tkdiff, meld, xxdiff, or emacs emerge programs. Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>