* [PATCH] mergetools: add vimdiff3 mode
@ 2014-04-21 0:24 Felipe Contreras
2014-04-22 5:01 ` David Aguilar
0 siblings, 1 reply; 3+ messages in thread
From: Felipe Contreras @ 2014-04-21 0:24 UTC (permalink / raw)
To: git; +Cc: Felipe Contreras
It's similar to the default, except that the other windows are hidden.
This ensures that removed/added colors are still visible on the main
merge window, but the other windows not visible.
Specially useful with merge.conflictstyle=diff3.
Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
---
How a conflict looks:
http://felipec.org/vimdiff3-conflict.png
How it looks resolved:
http://felipec.org/vimdiff3-resolved.png
mergetools/gvimdiff3 | 1 +
mergetools/vimdiff | 14 ++++++++++++--
mergetools/vimdiff3 | 1 +
3 files changed, 14 insertions(+), 2 deletions(-)
create mode 100644 mergetools/gvimdiff3
create mode 100644 mergetools/vimdiff3
diff --git a/mergetools/gvimdiff3 b/mergetools/gvimdiff3
new file mode 100644
index 0000000..04a5bb0
--- /dev/null
+++ b/mergetools/gvimdiff3
@@ -0,0 +1 @@
+. "$MERGE_TOOLS_DIR/vimdiff"
diff --git a/mergetools/vimdiff b/mergetools/vimdiff
index 39d0327..1ddfbfc 100644
--- a/mergetools/vimdiff
+++ b/mergetools/vimdiff
@@ -20,16 +20,26 @@ merge_cmd () {
"$merge_tool_path" -f -d -c 'wincmd l' \
"$LOCAL" "$MERGED" "$REMOTE"
;;
+ gvimdiff3|vimdiff3)
+ if $base_present
+ then
+ "$merge_tool_path" -f -d -c 'hid | hid | hid' \
+ "$LOCAL" "$REMOTE" "$BASE" "$MERGED"
+ else
+ "$merge_tool_path" -f -d -c 'hid | hid' \
+ "$LOCAL" "$REMOTE" "$MERGED"
+ fi
+ ;;
esac
check_unchanged
}
translate_merge_tool_path() {
case "$1" in
- gvimdiff|gvimdiff2)
+ gvimdiff|gvimdiff2|gvimdiff3)
echo gvim
;;
- vimdiff|vimdiff2)
+ vimdiff|vimdiff2|vimdiff3)
echo vim
;;
esac
diff --git a/mergetools/vimdiff3 b/mergetools/vimdiff3
new file mode 100644
index 0000000..04a5bb0
--- /dev/null
+++ b/mergetools/vimdiff3
@@ -0,0 +1 @@
+. "$MERGE_TOOLS_DIR/vimdiff"
--
1.9.2+fc1.1.g5c924db
^ permalink raw reply related [flat|nested] 3+ messages in thread
* Re: [PATCH] mergetools: add vimdiff3 mode
2014-04-21 0:24 [PATCH] mergetools: add vimdiff3 mode Felipe Contreras
@ 2014-04-22 5:01 ` David Aguilar
2014-04-22 17:30 ` Junio C Hamano
0 siblings, 1 reply; 3+ messages in thread
From: David Aguilar @ 2014-04-22 5:01 UTC (permalink / raw)
To: Felipe Contreras; +Cc: git
On Sun, Apr 20, 2014 at 07:24:20PM -0500, Felipe Contreras wrote:
> It's similar to the default, except that the other windows are hidden.
> This ensures that removed/added colors are still visible on the main
> merge window, but the other windows not visible.
>
> Specially useful with merge.conflictstyle=diff3.
This is a nice addition, thanks.
FWIW,
Acked-by: David Aguilar <davvid@gmail.com>
>
> Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
> ---
>
> How a conflict looks:
> http://felipec.org/vimdiff3-conflict.png
>
> How it looks resolved:
> http://felipec.org/vimdiff3-resolved.png
>
> mergetools/gvimdiff3 | 1 +
> mergetools/vimdiff | 14 ++++++++++++--
> mergetools/vimdiff3 | 1 +
> 3 files changed, 14 insertions(+), 2 deletions(-)
> create mode 100644 mergetools/gvimdiff3
> create mode 100644 mergetools/vimdiff3
>
> diff --git a/mergetools/gvimdiff3 b/mergetools/gvimdiff3
> new file mode 100644
> index 0000000..04a5bb0
> --- /dev/null
> +++ b/mergetools/gvimdiff3
> @@ -0,0 +1 @@
> +. "$MERGE_TOOLS_DIR/vimdiff"
> diff --git a/mergetools/vimdiff b/mergetools/vimdiff
> index 39d0327..1ddfbfc 100644
> --- a/mergetools/vimdiff
> +++ b/mergetools/vimdiff
> @@ -20,16 +20,26 @@ merge_cmd () {
> "$merge_tool_path" -f -d -c 'wincmd l' \
> "$LOCAL" "$MERGED" "$REMOTE"
> ;;
> + gvimdiff3|vimdiff3)
> + if $base_present
> + then
> + "$merge_tool_path" -f -d -c 'hid | hid | hid' \
> + "$LOCAL" "$REMOTE" "$BASE" "$MERGED"
> + else
> + "$merge_tool_path" -f -d -c 'hid | hid' \
> + "$LOCAL" "$REMOTE" "$MERGED"
> + fi
> + ;;
> esac
> check_unchanged
> }
>
> translate_merge_tool_path() {
> case "$1" in
> - gvimdiff|gvimdiff2)
> + gvimdiff|gvimdiff2|gvimdiff3)
> echo gvim
> ;;
> - vimdiff|vimdiff2)
> + vimdiff|vimdiff2|vimdiff3)
> echo vim
> ;;
> esac
> diff --git a/mergetools/vimdiff3 b/mergetools/vimdiff3
> new file mode 100644
> index 0000000..04a5bb0
> --- /dev/null
> +++ b/mergetools/vimdiff3
> @@ -0,0 +1 @@
> +. "$MERGE_TOOLS_DIR/vimdiff"
> --
> 1.9.2+fc1.1.g5c924db
--
David
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [PATCH] mergetools: add vimdiff3 mode
2014-04-22 5:01 ` David Aguilar
@ 2014-04-22 17:30 ` Junio C Hamano
0 siblings, 0 replies; 3+ messages in thread
From: Junio C Hamano @ 2014-04-22 17:30 UTC (permalink / raw)
To: David Aguilar; +Cc: Felipe Contreras, git
David Aguilar <davvid@gmail.com> writes:
> On Sun, Apr 20, 2014 at 07:24:20PM -0500, Felipe Contreras wrote:
>> It's similar to the default, except that the other windows are hidden.
>> This ensures that removed/added colors are still visible on the main
>> merge window, but the other windows not visible.
>>
>> Specially useful with merge.conflictstyle=diff3.
>
> This is a nice addition, thanks.
>
> FWIW,
> Acked-by: David Aguilar <davvid@gmail.com>
Thanks for an explicit Ack.
I personally think a new backend vimdiff3 can go in 2.0 (though we
are -rc0), as we can read from the patch below, it is very unlikely
to break anything else (I am not sure what these 'hid' are in the
implementation, but even if we had any breakage there, it would not
affect anybody other than vimdiff3 backend).
>>
>> Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
>> ---
>>
>> How a conflict looks:
>> http://felipec.org/vimdiff3-conflict.png
>>
>> How it looks resolved:
>> http://felipec.org/vimdiff3-resolved.png
>>
>> mergetools/gvimdiff3 | 1 +
>> mergetools/vimdiff | 14 ++++++++++++--
>> mergetools/vimdiff3 | 1 +
>> 3 files changed, 14 insertions(+), 2 deletions(-)
>> create mode 100644 mergetools/gvimdiff3
>> create mode 100644 mergetools/vimdiff3
>>
>> diff --git a/mergetools/gvimdiff3 b/mergetools/gvimdiff3
>> new file mode 100644
>> index 0000000..04a5bb0
>> --- /dev/null
>> +++ b/mergetools/gvimdiff3
>> @@ -0,0 +1 @@
>> +. "$MERGE_TOOLS_DIR/vimdiff"
>> diff --git a/mergetools/vimdiff b/mergetools/vimdiff
>> index 39d0327..1ddfbfc 100644
>> --- a/mergetools/vimdiff
>> +++ b/mergetools/vimdiff
>> @@ -20,16 +20,26 @@ merge_cmd () {
>> "$merge_tool_path" -f -d -c 'wincmd l' \
>> "$LOCAL" "$MERGED" "$REMOTE"
>> ;;
>> + gvimdiff3|vimdiff3)
>> + if $base_present
>> + then
>> + "$merge_tool_path" -f -d -c 'hid | hid | hid' \
>> + "$LOCAL" "$REMOTE" "$BASE" "$MERGED"
>> + else
>> + "$merge_tool_path" -f -d -c 'hid | hid' \
>> + "$LOCAL" "$REMOTE" "$MERGED"
>> + fi
>> + ;;
>> esac
>> check_unchanged
>> }
>>
>> translate_merge_tool_path() {
>> case "$1" in
>> - gvimdiff|gvimdiff2)
>> + gvimdiff|gvimdiff2|gvimdiff3)
>> echo gvim
>> ;;
>> - vimdiff|vimdiff2)
>> + vimdiff|vimdiff2|vimdiff3)
>> echo vim
>> ;;
>> esac
>> diff --git a/mergetools/vimdiff3 b/mergetools/vimdiff3
>> new file mode 100644
>> index 0000000..04a5bb0
>> --- /dev/null
>> +++ b/mergetools/vimdiff3
>> @@ -0,0 +1 @@
>> +. "$MERGE_TOOLS_DIR/vimdiff"
>> --
>> 1.9.2+fc1.1.g5c924db
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2014-04-22 17:30 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-04-21 0:24 [PATCH] mergetools: add vimdiff3 mode Felipe Contreras
2014-04-22 5:01 ` David Aguilar
2014-04-22 17:30 ` Junio C Hamano
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).