| /* |
| * Copyright (C) 2018-2021, Andre Bossert <andre.bossert@siemens.com> |
| * |
| * This program and the accompanying materials are made available under the |
| * terms of the Eclipse Distribution License v. 1.0 which is available at |
| * https://www.eclipse.org/org/documents/edl-v10.php. |
| * |
| * SPDX-License-Identifier: BSD-3-Clause |
| */ |
| |
| package org.eclipse.jgit.internal.diffmergetool; |
| |
| /** |
| * Pre-defined command line diff tools. |
| * |
| * Adds same diff tools as also pre-defined in C-Git |
| * <p> |
| * see "git-core\mergetools\" |
| * </p> |
| * <p> |
| * see links to command line parameter description for the tools |
| * </p> |
| * |
| * <pre> |
| * araxis |
| * bc |
| * bc3 |
| * codecompare |
| * deltawalker |
| * diffmerge |
| * diffuse |
| * ecmerge |
| * emerge |
| * examdiff |
| * guiffy |
| * gvimdiff |
| * gvimdiff2 |
| * gvimdiff3 |
| * kdiff3 |
| * kompare |
| * meld |
| * opendiff |
| * p4merge |
| * tkdiff |
| * vimdiff |
| * vimdiff2 |
| * vimdiff3 |
| * winmerge |
| * xxdiff |
| * </pre> |
| * |
| */ |
| @SuppressWarnings("nls") |
| public enum CommandLineDiffTool { |
| /** |
| * See: <a href= |
| * "https://www.araxis.com/merge/documentation-windows/command-line.en">https://www.araxis.com/merge/documentation-windows/command-line.en</a> |
| */ |
| araxis("compare", "-wait -2 \"$LOCAL\" \"$REMOTE\""), |
| /** |
| * See: <a href= |
| * "https://www.scootersoftware.com/v4help/index.html?command_line_reference.html">https://www.scootersoftware.com/v4help/index.html?command_line_reference.html</a> |
| */ |
| bc("bcomp", "\"$LOCAL\" \"$REMOTE\""), |
| /** |
| * See: <a href= |
| * "https://www.scootersoftware.com/v4help/index.html?command_line_reference.html">https://www.scootersoftware.com/v4help/index.html?command_line_reference.html</a> |
| */ |
| bc3("bcompare", bc), |
| /** |
| * See: <a href= |
| * "https://www.devart.com/codecompare/docs/index.html?comparing_via_command_line.htm">https://www.devart.com/codecompare/docs/index.html?comparing_via_command_line.htm</a> |
| */ |
| codecompare("CodeCompare", "\"$LOCAL\" \"$REMOTE\""), |
| /** |
| * See: <a href= |
| * "https://www.deltawalker.com/integrate/command-line">https://www.deltawalker.com/integrate/command-line</a> |
| */ |
| deltawalker("DeltaWalker", "\"$LOCAL\" \"$REMOTE\""), |
| /** |
| * See: <a href= |
| * "https://sourcegear.com/diffmerge/webhelp/sec__clargs__diff.html">https://sourcegear.com/diffmerge/webhelp/sec__clargs__diff.html</a> |
| */ |
| diffmerge("diffmerge", "\"$LOCAL\" \"$REMOTE\""), |
| /** |
| * See: <a href= |
| * "http://diffuse.sourceforge.net/manual.html#introduction-usage">http://diffuse.sourceforge.net/manual.html#introduction-usage</a> |
| */ |
| diffuse("diffuse", "\"$LOCAL\" \"$REMOTE\""), |
| /** |
| * See: <a href= |
| * "http://www.elliecomputing.com/en/OnlineDoc/ecmerge_en/44205167.asp">http://www.elliecomputing.com/en/OnlineDoc/ecmerge_en/44205167.asp</a> |
| */ |
| ecmerge("ecmerge", "--default --mode=diff2 \"$LOCAL\" \"$REMOTE\""), |
| /** |
| * See: <a href= |
| * "https://www.gnu.org/software/emacs/manual/html_node/emacs/Overview-of-Emerge.html">https://www.gnu.org/software/emacs/manual/html_node/emacs/Overview-of-Emerge.html</a> |
| */ |
| emerge("emacs", "-f emerge-files-command \"$LOCAL\" \"$REMOTE\""), |
| /** |
| * See: <a href= |
| * "https://www.prestosoft.com/ps.asp?page=htmlhelp/edp/command_line_options">https://www.prestosoft.com/ps.asp?page=htmlhelp/edp/command_line_options</a> |
| */ |
| examdiff("ExamDiff", "\"$LOCAL\" \"$REMOTE\" -nh"), |
| /** |
| * See: <a href= |
| * "https://www.guiffy.com/help/GuiffyHelp/GuiffyCmd.html">https://www.guiffy.com/help/GuiffyHelp/GuiffyCmd.html</a> |
| */ |
| guiffy("guiffy", "\"$LOCAL\" \"$REMOTE\""), |
| /** |
| * See: <a href= |
| * "http://vimdoc.sourceforge.net/htmldoc/diff.html">http://vimdoc.sourceforge.net/htmldoc/diff.html</a> |
| */ |
| gvimdiff("gvimdiff", "\"$LOCAL\" \"$REMOTE\""), |
| /** |
| * See: <a href= |
| * "http://vimdoc.sourceforge.net/htmldoc/diff.html">http://vimdoc.sourceforge.net/htmldoc/diff.html</a> |
| */ |
| gvimdiff2(gvimdiff), |
| /** |
| * See: <a href= |
| * "http://vimdoc.sourceforge.net/htmldoc/diff.html">http://vimdoc.sourceforge.net/htmldoc/diff.html</a> |
| */ |
| gvimdiff3(gvimdiff), |
| /** |
| * See: <a href= |
| * "http://kdiff3.sourceforge.net/doc/documentation.html">http://kdiff3.sourceforge.net/doc/documentation.html</a> |
| */ |
| kdiff3("kdiff3", |
| "--L1 \"$MERGED (A)\" --L2 \"$MERGED (B)\" \"$LOCAL\" \"$REMOTE\""), |
| /** |
| * See: <a href= |
| * "https://docs.kde.org/trunk5/en/kdesdk/kompare/commandline-options.html">https://docs.kde.org/trunk5/en/kdesdk/kompare/commandline-options.html</a> |
| */ |
| kompare("kompare", "\"$LOCAL\" \"$REMOTE\""), |
| /** |
| * See: <a href= |
| * "ttp://meldmerge.org/help/file-mode.html">http://meldmerge.org/help/file-mode.html</a> |
| */ |
| meld("meld", "\"$LOCAL\" \"$REMOTE\""), |
| /** |
| * See: <a href= |
| * "http://www.manpagez.com/man/1/opendiff/">http://www.manpagez.com/man/1/opendiff/</a> |
| * <p> |
| * Hint: check the ' | cat' for the call |
| * </p> |
| */ |
| opendiff("opendiff", "\"$LOCAL\" \"$REMOTE\""), |
| /** |
| * See: <a href= |
| * "https://www.perforce.com/manuals/v15.1/cmdref/p4_merge.html">https://www.perforce.com/manuals/v15.1/cmdref/p4_merge.html</a> |
| */ |
| p4merge("p4merge", "\"$LOCAL\" \"$REMOTE\""), |
| /** |
| * See: <a href= |
| * "http://linux.math.tifr.res.in/manuals/man/tkdiff.html">http://linux.math.tifr.res.in/manuals/man/tkdiff.html</a> |
| */ |
| tkdiff("tkdiff", "\"$LOCAL\" \"$REMOTE\""), |
| /** |
| * See: <a href= |
| * "http://vimdoc.sourceforge.net/htmldoc/diff.html">http://vimdoc.sourceforge.net/htmldoc/diff.html</a> |
| */ |
| vimdiff("vimdiff", gvimdiff), |
| /** |
| * See: <a href= |
| * "http://vimdoc.sourceforge.net/htmldoc/diff.html">http://vimdoc.sourceforge.net/htmldoc/diff.html</a> |
| */ |
| vimdiff2(vimdiff), |
| /** |
| * See: <a href= |
| * "http://vimdoc.sourceforge.net/htmldoc/diff.html">http://vimdoc.sourceforge.net/htmldoc/diff.html</a> |
| */ |
| vimdiff3(vimdiff), |
| /** |
| * See: <a href= |
| * "http://manual.winmerge.org/Command_line.html">http://manual.winmerge.org/Command_line.html</a> |
| * <p> |
| * Hint: check how 'mergetool_find_win32_cmd "WinMergeU.exe" "WinMerge"' |
| * works |
| * </p> |
| */ |
| winmerge("WinMergeU", "-u -e \"$LOCAL\" \"$REMOTE\""), |
| /** |
| * See: <a href= |
| * "http://furius.ca/xxdiff/doc/xxdiff-doc.html">http://furius.ca/xxdiff/doc/xxdiff-doc.html</a> |
| */ |
| xxdiff("xxdiff", |
| "-R 'Accel.Search: \"Ctrl+F\"' -R 'Accel.SearchForward: \"Ctrl+G\"' \"$LOCAL\" \"$REMOTE\""); |
| |
| CommandLineDiffTool(String path, String parameters) { |
| this.path = path; |
| this.parameters = parameters; |
| } |
| |
| CommandLineDiffTool(CommandLineDiffTool from) { |
| this(from.getPath(), from.getParameters()); |
| } |
| |
| CommandLineDiffTool(String path, CommandLineDiffTool from) { |
| this(path, from.getParameters()); |
| } |
| |
| private final String path; |
| |
| private final String parameters; |
| |
| /** |
| * @return path |
| */ |
| public String getPath() { |
| return path; |
| } |
| |
| /** |
| * @return parameters as one string |
| */ |
| public String getParameters() { |
| return parameters; |
| } |
| |
| } |