* [PATCH] mergetool--lib: add support for araxis merge
@ 2009-05-03 1:18 David Aguilar
2009-05-03 6:54 ` Markus Heidelberg
2009-05-03 14:30 ` Johannes Schindelin
0 siblings, 2 replies; 9+ messages in thread
From: David Aguilar @ 2009-05-03 1:18 UTC (permalink / raw)
To: gitster, snowcoder
Cc: spearce, markus.heidelberg, Johannes.Schindelin, git, charles,
David Aguilar
Araxis merge is now a built-in diff/merge tool.
This adds araxis to git-completion and updates
the documentation as well.
Signed-off-by: David Aguilar <davvid@gmail.com>
---
This patch is a result of the discussion on the msysgit list:
http://groups.google.com/group/msysgit/browse_thread/thread/fa353fa2240594d7
'compare' is the command-line utility that is provided
on MacOS. Users on other platforms may have to manually
set their mergetool.araxis.path.
Documentation/git-difftool.txt | 2 +-
Documentation/git-mergetool.txt | 2 +-
Documentation/merge-config.txt | 2 +-
contrib/completion/git-completion.bash | 2 +-
git-mergetool--lib.sh | 24 ++++++++++++++++++++++--
5 files changed, 26 insertions(+), 6 deletions(-)
diff --git a/Documentation/git-difftool.txt b/Documentation/git-difftool.txt
index 15b247b..96a6c51 100644
--- a/Documentation/git-difftool.txt
+++ b/Documentation/git-difftool.txt
@@ -31,7 +31,7 @@ OPTIONS
Use the diff tool specified by <tool>.
Valid merge tools are:
kdiff3, kompare, tkdiff, meld, xxdiff, emerge, vimdiff, gvimdiff,
- ecmerge, diffuse and opendiff
+ ecmerge, diffuse, opendiff and araxis.
+
If a diff tool is not specified, 'git-difftool'
will use the configuration variable `diff.tool`. If the
diff --git a/Documentation/git-mergetool.txt b/Documentation/git-mergetool.txt
index ff9700d..68ed6c0 100644
--- a/Documentation/git-mergetool.txt
+++ b/Documentation/git-mergetool.txt
@@ -27,7 +27,7 @@ OPTIONS
Use the merge resolution program specified by <tool>.
Valid merge tools are:
kdiff3, tkdiff, meld, xxdiff, emerge, vimdiff, gvimdiff, ecmerge,
- diffuse, tortoisemerge and opendiff
+ diffuse, tortoisemerge, opendiff and araxis.
+
If a merge resolution program is not specified, 'git-mergetool'
will use the configuration variable `merge.tool`. If the
diff --git a/Documentation/merge-config.txt b/Documentation/merge-config.txt
index 4832bc7..c0f96e7 100644
--- a/Documentation/merge-config.txt
+++ b/Documentation/merge-config.txt
@@ -23,7 +23,7 @@ merge.tool::
Controls which merge resolution program is used by
linkgit:git-mergetool[1]. Valid built-in values are: "kdiff3",
"tkdiff", "meld", "xxdiff", "emerge", "vimdiff", "gvimdiff",
- "diffuse", "ecmerge", "tortoisemerge", and
+ "diffuse", "ecmerge", "tortoisemerge", "araxis", and
"opendiff". Any other value is treated is custom merge tool
and there must be a corresponding mergetool.<tool>.cmd option.
diff --git a/contrib/completion/git-completion.bash b/contrib/completion/git-completion.bash
index 1a90cb8..dfd128b 100755
--- a/contrib/completion/git-completion.bash
+++ b/contrib/completion/git-completion.bash
@@ -911,7 +911,7 @@ _git_diff ()
}
__git_mergetools_common="diffuse ecmerge emerge kdiff3 meld opendiff
- tkdiff vimdiff gvimdiff xxdiff
+ tkdiff vimdiff gvimdiff xxdiff araxis
"
_git_difftool ()
diff --git a/git-mergetool--lib.sh b/git-mergetool--lib.sh
index a16a279..f3c63ef 100644
--- a/git-mergetool--lib.sh
+++ b/git-mergetool--lib.sh
@@ -18,6 +18,9 @@ translate_merge_tool_path () {
emerge)
echo emacs
;;
+ araxis)
+ echo compare
+ ;;
*)
echo "$1"
;;
@@ -43,7 +46,7 @@ check_unchanged () {
valid_tool () {
case "$1" in
kdiff3 | tkdiff | xxdiff | meld | opendiff | \
- emerge | vimdiff | gvimdiff | ecmerge | diffuse)
+ emerge | vimdiff | gvimdiff | ecmerge | diffuse | araxis)
;; # happy
tortoisemerge)
if ! merge_mode; then
@@ -263,6 +266,23 @@ run_merge_tool () {
status=1
fi
;;
+ araxis)
+ if merge_mode; then
+ if $base_present; then
+ "$merge_tool_path" -wait -merge -3 -a1 \
+ "$BASE" "$LOCAL" "$REMOTE" "$MERGED" \
+ >/dev/null 2>&1
+ else
+ "$merge_tool_path" -wait -2 \
+ "$LOCAL" "$REMOTE" "$MERGED" \
+ >/dev/null 2>&1
+ fi
+ check_unchanged
+ else
+ "$merge_tool_path" -wait -2 "$LOCAL" "$REMOTE" \
+ >/dev/null 2>&1
+ fi
+ ;;
*)
merge_tool_cmd="$(get_merge_tool_cmd "$1")"
if test -z "$merge_tool_cmd"; then
@@ -302,7 +322,7 @@ guess_merge_tool () {
else
tools="opendiff kdiff3 tkdiff xxdiff meld $tools"
fi
- tools="$tools gvimdiff diffuse ecmerge"
+ tools="$tools gvimdiff diffuse ecmerge araxis"
fi
if echo "${VISUAL:-$EDITOR}" | grep emacs > /dev/null 2>&1; then
# $EDITOR is emacs so add emerge as a candidate
--
1.6.3.rc4
^ permalink raw reply related [flat|nested] 9+ messages in thread
* Re: [PATCH] mergetool--lib: add support for araxis merge
2009-05-03 1:18 [PATCH] mergetool--lib: add support for araxis merge David Aguilar
@ 2009-05-03 6:54 ` Markus Heidelberg
2009-05-03 18:20 ` David Aguilar
2009-05-04 0:09 ` David Aguilar
2009-05-03 14:30 ` Johannes Schindelin
1 sibling, 2 replies; 9+ messages in thread
From: Markus Heidelberg @ 2009-05-03 6:54 UTC (permalink / raw)
To: David Aguilar
Cc: gitster, snowcoder, spearce, Johannes.Schindelin, git, charles
David Aguilar, 03.05.2009:
> This patch is a result of the discussion on the msysgit list:
>
> http://groups.google.com/group/msysgit/browse_thread/thread/fa353fa2240594d7
>
> diff --git a/git-mergetool--lib.sh b/git-mergetool--lib.sh
> @@ -263,6 +266,23 @@ run_merge_tool () {
> status=1
> fi
> ;;
> + araxis)
> + if merge_mode; then
> + if $base_present; then
touch "$BACKUP"
> + "$merge_tool_path" -wait -merge -3 -a1 \
> + "$BASE" "$LOCAL" "$REMOTE" "$MERGED" \
> + >/dev/null 2>&1
> + else
> + "$merge_tool_path" -wait -2 \
> + "$LOCAL" "$REMOTE" "$MERGED" \
> + >/dev/null 2>&1
> + fi
> + check_unchanged
> + else
> + "$merge_tool_path" -wait -2 "$LOCAL" "$REMOTE" \
> + >/dev/null 2>&1
> + fi
> + ;;
> *)
> merge_tool_cmd="$(get_merge_tool_cmd "$1")"
> if test -z "$merge_tool_cmd"; then
Haven't you included the -title[1-3] command line switches because of
the strange "'title'" format? The user on the msysgit list had commented
it out in his patch, although he said it worked in this way. And looking
at git-gui/lib/mergetool.tcl, it is done in the same way.
Markus
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH] mergetool--lib: add support for araxis merge
2009-05-03 1:18 [PATCH] mergetool--lib: add support for araxis merge David Aguilar
2009-05-03 6:54 ` Markus Heidelberg
@ 2009-05-03 14:30 ` Johannes Schindelin
2009-05-03 18:18 ` David Aguilar
1 sibling, 1 reply; 9+ messages in thread
From: Johannes Schindelin @ 2009-05-03 14:30 UTC (permalink / raw)
To: David Aguilar
Cc: gitster, snowcoder, spearce, markus.heidelberg, git, charles
Hi,
On Sat, 2 May 2009, David Aguilar wrote:
> Araxis merge is now a built-in diff/merge tool.
> This adds araxis to git-completion and updates
> the documentation as well.
>
> Signed-off-by: David Aguilar <davvid@gmail.com>
> ---
>
> This patch is a result of the discussion on the msysgit list:
>
> http://groups.google.com/group/msysgit/browse_thread/thread/fa353fa2240594d7
>
> 'compare' is the command-line utility that is provided
> on MacOS. Users on other platforms may have to manually
> set their mergetool.araxis.path.
The only reason I did not merge that patch sent to msysgit@googlegroups
was that I did not have _any_ confirmation that it works.
Do you have any? As Araxis is not free software, I refuse to touch it.
Ciao,
Dscho
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH] mergetool--lib: add support for araxis merge
2009-05-03 14:30 ` Johannes Schindelin
@ 2009-05-03 18:18 ` David Aguilar
0 siblings, 0 replies; 9+ messages in thread
From: David Aguilar @ 2009-05-03 18:18 UTC (permalink / raw)
To: Johannes Schindelin
Cc: gitster, snowcoder, spearce, markus.heidelberg, git, charles
On 0, Johannes Schindelin <Johannes.Schindelin@gmx.de> wrote:
> Hi,
>
> On Sat, 2 May 2009, David Aguilar wrote:
>
> > Araxis merge is now a built-in diff/merge tool.
> > This adds araxis to git-completion and updates
> > the documentation as well.
> >
> > Signed-off-by: David Aguilar <davvid@gmail.com>
> > ---
> >
> > This patch is a result of the discussion on the msysgit list:
> >
> > http://groups.google.com/group/msysgit/browse_thread/thread/fa353fa2240594d7
> >
> > 'compare' is the command-line utility that is provided
> > on MacOS. Users on other platforms may have to manually
> > set their mergetool.araxis.path.
>
> The only reason I did not merge that patch sent to msysgit@googlegroups
> was that I did not have _any_ confirmation that it works.
>
> Do you have any? As Araxis is not free software, I refuse to touch it.
>
> Ciao,
> Dscho
I tested it (but not on windows). It works.
I have the same reservations about non-free software,
but at least they mention git on their homepage
(even if it's only in their documentation).
--
David
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH] mergetool--lib: add support for araxis merge
2009-05-03 6:54 ` Markus Heidelberg
@ 2009-05-03 18:20 ` David Aguilar
2009-05-04 0:09 ` David Aguilar
1 sibling, 0 replies; 9+ messages in thread
From: David Aguilar @ 2009-05-03 18:20 UTC (permalink / raw)
To: Markus Heidelberg
Cc: gitster, snowcoder, spearce, Johannes.Schindelin, git, charles
> David Aguilar, 03.05.2009:
> > + "$merge_tool_path" -wait -merge -3 -a1 \
> > + "$BASE" "$LOCAL" "$REMOTE" "$MERGED" \
> > + >/dev/null 2>&1
> > + else
> > + "$merge_tool_path" -wait -2 \
> > + "$LOCAL" "$REMOTE" "$MERGED" \
> > + >/dev/null 2>&1
> > + fi
> > + check_unchanged
> > + else
> > + "$merge_tool_path" -wait -2 "$LOCAL" "$REMOTE" \
> > + >/dev/null 2>&1
> > + fi
> > + ;;
>
> Haven't you included the -title[1-3] command line switches because of
> the strange "'title'" format? The user on the msysgit list had commented
> it out in his patch, although he said it worked in this way. And looking
> at git-gui/lib/mergetool.tcl, it is done in the same way.
>
> Markus
>
I can resend with the title stuff.
I didn't include it since it was commented out in the original
patch.
--
David
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH] mergetool--lib: add support for araxis merge
2009-05-03 6:54 ` Markus Heidelberg
2009-05-03 18:20 ` David Aguilar
@ 2009-05-04 0:09 ` David Aguilar
2009-05-09 20:56 ` Markus Heidelberg
1 sibling, 1 reply; 9+ messages in thread
From: David Aguilar @ 2009-05-04 0:09 UTC (permalink / raw)
To: Markus Heidelberg
Cc: gitster, snowcoder, spearce, Johannes.Schindelin, git, charles
Markus Heidelberg <markus.heidelberg@web.de> wrote:
>
> Haven't you included the -title[1-3] command line switches because of
> the strange "'title'" format? The user on the msysgit list had commented
> it out in his patch, although he said it worked in this way. And looking
> at git-gui/lib/mergetool.tcl, it is done in the same way.
>
> Markus
I looked into it.
Windows. :(
-title1:"nice stuff" works great everywhere except for windows.
-title1:"'nice stuff'" doesn't work there either.
That's probably why it was commented out in the original patch.
On windows we'd have to escape the spaces (wild guess) so the
original patch is probably the best option since I don't feel
like making the other platforms suffer for it.
Seeing .diff_XXXX as the filename is bad too (and that is a
form of suffering as well) but it's a compromise since there
is a possibility that we could fix that elsewhere to
everyone's benefit.
As far as difftool is concerned, the code that generates
the temp filename is prep_temp_blob() in diff.c.
It's used by several callers that naturally care nothing
about filenames.
It would be nice to specialize the ext-diff code to
generate a more intuitive filename. Maybe something
like original_filename.XXXXX.ext instead of the current
.diff_XXXXX. Right now the choice of filename breaks
syntax highlighting in some viewers and also makes
the usage of --title args necessary since the default
names tell us nothing about what we're viewing.
That's definitely not the kind of thing to be thinking
about during an -rc cycle ;), though I would be interested
in maybe working on that later if others agree that
it's not a bad idea.
It wouldn't be perfect, but it would be just a
little bit nicer for anyone that's using the tools
everyday.
--
David
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH] mergetool--lib: add support for araxis merge
2009-05-04 0:09 ` David Aguilar
@ 2009-05-09 20:56 ` Markus Heidelberg
0 siblings, 0 replies; 9+ messages in thread
From: Markus Heidelberg @ 2009-05-09 20:56 UTC (permalink / raw)
To: David Aguilar
Cc: gitster, snowcoder, spearce, Johannes.Schindelin, git, charles
David Aguilar, 04.05.2009:
> Seeing .diff_XXXX as the filename is bad too
> It would be nice to specialize the ext-diff code to
> generate a more intuitive filename. Maybe something
> like original_filename.XXXXX.ext instead of the current
> .diff_XXXXX. Right now the choice of filename breaks
> syntax highlighting in some viewers and also makes
> the usage of --title args necessary since the default
> names tell us nothing about what we're viewing.
Yes, this change would make sense.
^ permalink raw reply [flat|nested] 9+ messages in thread
* [PATCH] mergetool--lib: add support for araxis merge
@ 2009-05-18 3:18 David Aguilar
2009-05-23 14:29 ` Markus Heidelberg
0 siblings, 1 reply; 9+ messages in thread
From: David Aguilar @ 2009-05-18 3:18 UTC (permalink / raw)
To: gitster; +Cc: git, markus.heidelberg, David Aguilar
Araxis merge is now a built-in diff/merge tool.
This adds araxis to git-completion and updates
the documentation as well.
Signed-off-by: David Aguilar <davvid@gmail.com>
---
This applies on top of the da/mergetool-lib branch
currently in pu.
This is a rework of a patch to add araxis support
to mergetool which originated on the msysgit list.
The commented-out "-titleN:" options were
intentionally left out of this patch because
no amount of shell-quoting could get it to work
when the title contained spaces.
http://groups.google.com/group/msysgit/browse_thread/thread/fa353fa2240594d7
Documentation/git-difftool.txt | 2 +-
Documentation/git-mergetool.txt | 2 +-
Documentation/merge-config.txt | 2 +-
contrib/completion/git-completion.bash | 2 +-
git-mergetool--lib.sh | 24 ++++++++++++++++++++++--
5 files changed, 26 insertions(+), 6 deletions(-)
diff --git a/Documentation/git-difftool.txt b/Documentation/git-difftool.txt
index 15b247b..96a6c51 100644
--- a/Documentation/git-difftool.txt
+++ b/Documentation/git-difftool.txt
@@ -31,7 +31,7 @@ OPTIONS
Use the diff tool specified by <tool>.
Valid merge tools are:
kdiff3, kompare, tkdiff, meld, xxdiff, emerge, vimdiff, gvimdiff,
- ecmerge, diffuse and opendiff
+ ecmerge, diffuse, opendiff and araxis.
+
If a diff tool is not specified, 'git-difftool'
will use the configuration variable `diff.tool`. If the
diff --git a/Documentation/git-mergetool.txt b/Documentation/git-mergetool.txt
index ff9700d..68ed6c0 100644
--- a/Documentation/git-mergetool.txt
+++ b/Documentation/git-mergetool.txt
@@ -27,7 +27,7 @@ OPTIONS
Use the merge resolution program specified by <tool>.
Valid merge tools are:
kdiff3, tkdiff, meld, xxdiff, emerge, vimdiff, gvimdiff, ecmerge,
- diffuse, tortoisemerge and opendiff
+ diffuse, tortoisemerge, opendiff and araxis.
+
If a merge resolution program is not specified, 'git-mergetool'
will use the configuration variable `merge.tool`. If the
diff --git a/Documentation/merge-config.txt b/Documentation/merge-config.txt
index 4832bc7..c0f96e7 100644
--- a/Documentation/merge-config.txt
+++ b/Documentation/merge-config.txt
@@ -23,7 +23,7 @@ merge.tool::
Controls which merge resolution program is used by
linkgit:git-mergetool[1]. Valid built-in values are: "kdiff3",
"tkdiff", "meld", "xxdiff", "emerge", "vimdiff", "gvimdiff",
- "diffuse", "ecmerge", "tortoisemerge", and
+ "diffuse", "ecmerge", "tortoisemerge", "araxis", and
"opendiff". Any other value is treated is custom merge tool
and there must be a corresponding mergetool.<tool>.cmd option.
diff --git a/contrib/completion/git-completion.bash b/contrib/completion/git-completion.bash
index 1683e6d..ead530d 100755
--- a/contrib/completion/git-completion.bash
+++ b/contrib/completion/git-completion.bash
@@ -911,7 +911,7 @@ _git_diff ()
}
__git_mergetools_common="diffuse ecmerge emerge kdiff3 meld opendiff
- tkdiff vimdiff gvimdiff xxdiff
+ tkdiff vimdiff gvimdiff xxdiff araxis
"
_git_difftool ()
diff --git a/git-mergetool--lib.sh b/git-mergetool--lib.sh
index 8b5e6a8..e771b63 100644
--- a/git-mergetool--lib.sh
+++ b/git-mergetool--lib.sh
@@ -18,6 +18,9 @@ translate_merge_tool_path () {
emerge)
echo emacs
;;
+ araxis)
+ echo compare
+ ;;
*)
echo "$1"
;;
@@ -43,7 +46,7 @@ check_unchanged () {
valid_tool () {
case "$1" in
kdiff3 | tkdiff | xxdiff | meld | opendiff | \
- emerge | vimdiff | gvimdiff | ecmerge | diffuse)
+ emerge | vimdiff | gvimdiff | ecmerge | diffuse | araxis)
;; # happy
tortoisemerge)
if ! merge_mode; then
@@ -263,6 +266,23 @@ run_merge_tool () {
status=1
fi
;;
+ araxis)
+ if merge_mode; then
+ if $base_present; then
+ "$merge_tool_path" -wait -merge -3 -a1 \
+ "$BASE" "$LOCAL" "$REMOTE" "$MERGED" \
+ >/dev/null 2>&1
+ else
+ "$merge_tool_path" -wait -2 \
+ "$LOCAL" "$REMOTE" "$MERGED" \
+ >/dev/null 2>&1
+ fi
+ check_unchanged
+ else
+ "$merge_tool_path" -wait -2 "$LOCAL" "$REMOTE" \
+ >/dev/null 2>&1
+ fi
+ ;;
*)
merge_tool_cmd="$(get_merge_tool_cmd "$1")"
if test -z "$merge_tool_cmd"; then
@@ -302,7 +322,7 @@ guess_merge_tool () {
else
tools="opendiff kdiff3 tkdiff xxdiff meld $tools"
fi
- tools="$tools gvimdiff diffuse ecmerge"
+ tools="$tools gvimdiff diffuse ecmerge araxis"
fi
if echo "${VISUAL:-$EDITOR}" | grep emacs > /dev/null 2>&1; then
# $EDITOR is emacs so add emerge as a candidate
--
1.6.3.1.30.g55524
^ permalink raw reply related [flat|nested] 9+ messages in thread
* Re: [PATCH] mergetool--lib: add support for araxis merge
2009-05-18 3:18 David Aguilar
@ 2009-05-23 14:29 ` Markus Heidelberg
0 siblings, 0 replies; 9+ messages in thread
From: Markus Heidelberg @ 2009-05-23 14:29 UTC (permalink / raw)
To: David Aguilar; +Cc: gitster, git
David Aguilar, 18.05.2009:
> Araxis merge is now a built-in diff/merge tool.
> This adds araxis to git-completion and updates
> the documentation as well.
>
> Signed-off-by: David Aguilar <davvid@gmail.com>
> ---
>
> This applies on top of the da/mergetool-lib branch
> currently in pu.
>
> This is a rework of a patch to add araxis support
> to mergetool which originated on the msysgit list.
> The commented-out "-titleN:" options were
> intentionally left out of this patch because
> no amount of shell-quoting could get it to work
> when the title contained spaces.
>
> http://groups.google.com/group/msysgit/browse_thread/thread/fa353fa2240594d7
>
> Documentation/git-difftool.txt | 2 +-
> Documentation/git-mergetool.txt | 2 +-
> Documentation/merge-config.txt | 2 +-
> contrib/completion/git-completion.bash | 2 +-
> git-mergetool--lib.sh | 24 ++++++++++++++++++++++--
> 5 files changed, 26 insertions(+), 6 deletions(-)
>
> diff --git a/git-mergetool--lib.sh b/git-mergetool--lib.sh
> @@ -263,6 +266,23 @@ run_merge_tool () {
> status=1
> fi
> ;;
> + araxis)
> + if merge_mode; then
Here this is missing:
touch "$BACKUP"
I had already mentioned it in a reply to your mail from May 03, maybe
you have overseen it. But looking in my sent-mail I just noticed that my
suggestion had an off-by-one-line error. Now it is correct.
> + if $base_present; then
> + "$merge_tool_path" -wait -merge -3 -a1 \
> + "$BASE" "$LOCAL" "$REMOTE" "$MERGED" \
> + >/dev/null 2>&1
> + else
> + "$merge_tool_path" -wait -2 \
> + "$LOCAL" "$REMOTE" "$MERGED" \
> + >/dev/null 2>&1
> + fi
> + check_unchanged
> + else
> + "$merge_tool_path" -wait -2 "$LOCAL" "$REMOTE" \
> + >/dev/null 2>&1
> + fi
> + ;;
> *)
> merge_tool_cmd="$(get_merge_tool_cmd "$1")"
> if test -z "$merge_tool_cmd"; then
^ permalink raw reply [flat|nested] 9+ messages in thread
end of thread, other threads:[~2009-05-23 14:31 UTC | newest]
Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2009-05-03 1:18 [PATCH] mergetool--lib: add support for araxis merge David Aguilar
2009-05-03 6:54 ` Markus Heidelberg
2009-05-03 18:20 ` David Aguilar
2009-05-04 0:09 ` David Aguilar
2009-05-09 20:56 ` Markus Heidelberg
2009-05-03 14:30 ` Johannes Schindelin
2009-05-03 18:18 ` David Aguilar
-- strict thread matches above, loose matches on Subject: below --
2009-05-18 3:18 David Aguilar
2009-05-23 14:29 ` Markus Heidelberg
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).