{"thread":{"id":"36459","subject":"[PATCH] mergetools: add vimdiff3 mode","startedAt":"2014-04-21T00:24:20Z","lastAt":"2014-04-22T17:30:28Z","messageCount":3,"participants":["Felipe Contreras","David Aguilar","Junio C Hamano"],"isPatch":true,"patchVersion":1,"patchTotal":null},"messages":[{"id":"239200","messageId":"1398039860-31420-1-git-send-email-felipe.contreras@gmail.com","threadId":"36459","inReplyTo":null,"subject":"[PATCH] mergetools: add vimdiff3 mode","fromName":"Felipe Contreras","fromEmail":"felipe.contreras@gmail.com","sentAt":"2014-04-21T00:24:20Z","receivedAt":"2014-04-21T00:24:20Z","isPatch":true,"sender":{"key":"felipe.contreras@gmail.com","avatar":"https://avatars.githubusercontent.com/u/8358?v=4"},"body":"It's similar to the default, except that the other windows are hidden.\nThis ensures that removed/added colors are still visible on the main\nmerge window, but the other windows not visible.\n\nSpecially useful with merge.conflictstyle=diff3.\n\nSigned-off-by: Felipe Contreras <felipe.contreras@gmail.com>\n---\n\nHow a conflict looks:\nhttp://felipec.org/vimdiff3-conflict.png\n\nHow it looks resolved:\nhttp://felipec.org/vimdiff3-resolved.png\n\n mergetools/gvimdiff3 |  1 +\n mergetools/vimdiff   | 14 ++++++++++++--\n mergetools/vimdiff3  |  1 +\n 3 files changed, 14 insertions(+), 2 deletions(-)\n create mode 100644 mergetools/gvimdiff3\n create mode 100644 mergetools/vimdiff3\n\ndiff --git a/mergetools/gvimdiff3 b/mergetools/gvimdiff3\nnew file mode 100644\nindex 0000000..04a5bb0\n--- /dev/null\n+++ b/mergetools/gvimdiff3\n@@ -0,0 +1 @@\n+. \"$MERGE_TOOLS_DIR/vimdiff\"\ndiff --git a/mergetools/vimdiff b/mergetools/vimdiff\nindex 39d0327..1ddfbfc 100644\n--- a/mergetools/vimdiff\n+++ b/mergetools/vimdiff\n@@ -20,16 +20,26 @@ merge_cmd () {\n \t\t\"$merge_tool_path\" -f -d -c 'wincmd l' \\\n \t\t\t\"$LOCAL\" \"$MERGED\" \"$REMOTE\"\n \t\t;;\n+\tgvimdiff3|vimdiff3)\n+\t\tif $base_present\n+\t\tthen\n+\t\t\t\"$merge_tool_path\" -f -d -c 'hid | hid | hid' \\\n+\t\t\t\t\"$LOCAL\" \"$REMOTE\" \"$BASE\" \"$MERGED\"\n+\t\telse\n+\t\t\t\"$merge_tool_path\" -f -d -c 'hid | hid' \\\n+\t\t\t\t\"$LOCAL\" \"$REMOTE\" \"$MERGED\"\n+\t\tfi\n+\t\t;;\n \tesac\n \tcheck_unchanged\n }\n \n translate_merge_tool_path() {\n \tcase \"$1\" in\n-\tgvimdiff|gvimdiff2)\n+\tgvimdiff|gvimdiff2|gvimdiff3)\n \t\techo gvim\n \t\t;;\n-\tvimdiff|vimdiff2)\n+\tvimdiff|vimdiff2|vimdiff3)\n \t\techo vim\n \t\t;;\n \tesac\ndiff --git a/mergetools/vimdiff3 b/mergetools/vimdiff3\nnew file mode 100644\nindex 0000000..04a5bb0\n--- /dev/null\n+++ b/mergetools/vimdiff3\n@@ -0,0 +1 @@\n+. \"$MERGE_TOOLS_DIR/vimdiff\"\n-- \n1.9.2+fc1.1.g5c924db\n"},{"id":"239289","messageId":"20140422050142.GB60610@gmail.com","threadId":"36459","inReplyTo":"1398039860-31420-1-git-send-email-felipe.contreras@gmail.com","subject":"Re: [PATCH] mergetools: add vimdiff3 mode","fromName":"David Aguilar","fromEmail":"davvid@gmail.com","sentAt":"2014-04-22T05:01:43Z","receivedAt":"2014-04-22T05:01:43Z","isPatch":true,"sender":{"key":"davvid@gmail.com","avatar":"https://avatars.githubusercontent.com/u/13196?v=4"},"body":"On Sun, Apr 20, 2014 at 07:24:20PM -0500, Felipe Contreras wrote:\n> It's similar to the default, except that the other windows are hidden.\n> This ensures that removed/added colors are still visible on the main\n> merge window, but the other windows not visible.\n> \n> Specially useful with merge.conflictstyle=diff3.\n\nThis is a nice addition, thanks.\n\nFWIW,\nAcked-by: David Aguilar <davvid@gmail.com>\n\n> \n> Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>\n> ---\n> \n> How a conflict looks:\n> http://felipec.org/vimdiff3-conflict.png\n> \n> How it looks resolved:\n> http://felipec.org/vimdiff3-resolved.png\n> \n>  mergetools/gvimdiff3 |  1 +\n>  mergetools/vimdiff   | 14 ++++++++++++--\n>  mergetools/vimdiff3  |  1 +\n>  3 files changed, 14 insertions(+), 2 deletions(-)\n>  create mode 100644 mergetools/gvimdiff3\n>  create mode 100644 mergetools/vimdiff3\n> \n> diff --git a/mergetools/gvimdiff3 b/mergetools/gvimdiff3\n> new file mode 100644\n> index 0000000..04a5bb0\n> --- /dev/null\n> +++ b/mergetools/gvimdiff3\n> @@ -0,0 +1 @@\n> +. \"$MERGE_TOOLS_DIR/vimdiff\"\n> diff --git a/mergetools/vimdiff b/mergetools/vimdiff\n> index 39d0327..1ddfbfc 100644\n> --- a/mergetools/vimdiff\n> +++ b/mergetools/vimdiff\n> @@ -20,16 +20,26 @@ merge_cmd () {\n>  \t\t\"$merge_tool_path\" -f -d -c 'wincmd l' \\\n>  \t\t\t\"$LOCAL\" \"$MERGED\" \"$REMOTE\"\n>  \t\t;;\n> +\tgvimdiff3|vimdiff3)\n> +\t\tif $base_present\n> +\t\tthen\n> +\t\t\t\"$merge_tool_path\" -f -d -c 'hid | hid | hid' \\\n> +\t\t\t\t\"$LOCAL\" \"$REMOTE\" \"$BASE\" \"$MERGED\"\n> +\t\telse\n> +\t\t\t\"$merge_tool_path\" -f -d -c 'hid | hid' \\\n> +\t\t\t\t\"$LOCAL\" \"$REMOTE\" \"$MERGED\"\n> +\t\tfi\n> +\t\t;;\n>  \tesac\n>  \tcheck_unchanged\n>  }\n>  \n>  translate_merge_tool_path() {\n>  \tcase \"$1\" in\n> -\tgvimdiff|gvimdiff2)\n> +\tgvimdiff|gvimdiff2|gvimdiff3)\n>  \t\techo gvim\n>  \t\t;;\n> -\tvimdiff|vimdiff2)\n> +\tvimdiff|vimdiff2|vimdiff3)\n>  \t\techo vim\n>  \t\t;;\n>  \tesac\n> diff --git a/mergetools/vimdiff3 b/mergetools/vimdiff3\n> new file mode 100644\n> index 0000000..04a5bb0\n> --- /dev/null\n> +++ b/mergetools/vimdiff3\n> @@ -0,0 +1 @@\n> +. \"$MERGE_TOOLS_DIR/vimdiff\"\n> -- \n> 1.9.2+fc1.1.g5c924db\n-- \nDavid\n"},{"id":"239352","messageId":"xmqq7g6h6zm3.fsf@gitster.dls.corp.google.com","threadId":"36459","inReplyTo":"20140422050142.GB60610@gmail.com","subject":"Re: [PATCH] mergetools: add vimdiff3 mode","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2014-04-22T17:30:28Z","receivedAt":"2014-04-22T17:30:28Z","isPatch":true,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"David Aguilar <davvid@gmail.com> writes:\n\n> On Sun, Apr 20, 2014 at 07:24:20PM -0500, Felipe Contreras wrote:\n>> It's similar to the default, except that the other windows are hidden.\n>> This ensures that removed/added colors are still visible on the main\n>> merge window, but the other windows not visible.\n>> \n>> Specially useful with merge.conflictstyle=diff3.\n>\n> This is a nice addition, thanks.\n>\n> FWIW,\n> Acked-by: David Aguilar <davvid@gmail.com>\n\nThanks for an explicit Ack.\n\nI personally think a new backend vimdiff3 can go in 2.0 (though we\nare -rc0), as we can read from the patch below, it is very unlikely\nto break anything else (I am not sure what these 'hid' are in the\nimplementation, but even if we had any breakage there, it would not\naffect anybody other than vimdiff3 backend).\n\n>> \n>> Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>\n>> ---\n>> \n>> How a conflict looks:\n>> http://felipec.org/vimdiff3-conflict.png\n>> \n>> How it looks resolved:\n>> http://felipec.org/vimdiff3-resolved.png\n>> \n>>  mergetools/gvimdiff3 |  1 +\n>>  mergetools/vimdiff   | 14 ++++++++++++--\n>>  mergetools/vimdiff3  |  1 +\n>>  3 files changed, 14 insertions(+), 2 deletions(-)\n>>  create mode 100644 mergetools/gvimdiff3\n>>  create mode 100644 mergetools/vimdiff3\n>> \n>> diff --git a/mergetools/gvimdiff3 b/mergetools/gvimdiff3\n>> new file mode 100644\n>> index 0000000..04a5bb0\n>> --- /dev/null\n>> +++ b/mergetools/gvimdiff3\n>> @@ -0,0 +1 @@\n>> +. \"$MERGE_TOOLS_DIR/vimdiff\"\n>> diff --git a/mergetools/vimdiff b/mergetools/vimdiff\n>> index 39d0327..1ddfbfc 100644\n>> --- a/mergetools/vimdiff\n>> +++ b/mergetools/vimdiff\n>> @@ -20,16 +20,26 @@ merge_cmd () {\n>>  \t\t\"$merge_tool_path\" -f -d -c 'wincmd l' \\\n>>  \t\t\t\"$LOCAL\" \"$MERGED\" \"$REMOTE\"\n>>  \t\t;;\n>> +\tgvimdiff3|vimdiff3)\n>> +\t\tif $base_present\n>> +\t\tthen\n>> +\t\t\t\"$merge_tool_path\" -f -d -c 'hid | hid | hid' \\\n>> +\t\t\t\t\"$LOCAL\" \"$REMOTE\" \"$BASE\" \"$MERGED\"\n>> +\t\telse\n>> +\t\t\t\"$merge_tool_path\" -f -d -c 'hid | hid' \\\n>> +\t\t\t\t\"$LOCAL\" \"$REMOTE\" \"$MERGED\"\n>> +\t\tfi\n>> +\t\t;;\n>>  \tesac\n>>  \tcheck_unchanged\n>>  }\n>>  \n>>  translate_merge_tool_path() {\n>>  \tcase \"$1\" in\n>> -\tgvimdiff|gvimdiff2)\n>> +\tgvimdiff|gvimdiff2|gvimdiff3)\n>>  \t\techo gvim\n>>  \t\t;;\n>> -\tvimdiff|vimdiff2)\n>> +\tvimdiff|vimdiff2|vimdiff3)\n>>  \t\techo vim\n>>  \t\t;;\n>>  \tesac\n>> diff --git a/mergetools/vimdiff3 b/mergetools/vimdiff3\n>> new file mode 100644\n>> index 0000000..04a5bb0\n>> --- /dev/null\n>> +++ b/mergetools/vimdiff3\n>> @@ -0,0 +1 @@\n>> +. \"$MERGE_TOOLS_DIR/vimdiff\"\n>> -- \n>> 1.9.2+fc1.1.g5c924db\n"}]}