threads / patch / 32713

patch, 3 partsmergetool--lib: fix startup options for gvimdiff tool

Subject: [PATCH 1/3] mergetool--lib: fix startup options for gvimdiff tool

## tl;dr

5 messages between Jan 24, 2013 and Jan 25, 2013. Diffs are folded; open one to read it.

replies: 4people: 2as markdown or json

Alexey Shumkin· Jan 24, 2013, 07:16 UTC · lore
Options are taken from <Git source>/mergetools/vim
Signed-off-by: Alexey Shumkin <Alex.Crezoff@gmail.com>
---
 git-gui/lib/mergetool.tcl | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)
Show changes to git-gui/lib/mergetool.tcl +7 −1
diff --git a/git-gui/lib/mergetool.tcl b/git-gui/lib/mergetool.tcl
index 3c8e73b..4fc1cab 100644
--- a/git-gui/lib/mergetool.tcl
+++ b/git-gui/lib/mergetool.tcl
@@ -211,7 +211,13 @@ proc merge_resolve_tool2 {} {
 		}
 	}
 	gvimdiff {
-		set cmdline [list "$merge_tool_path" -f "$LOCAL" "$MERGED" "$REMOTE"]
+		if {$base_stage ne {}} {
+			set cmdline [list "$merge_tool_path" -f -d -c "wincmd J" \
+				"$MERGED" "$LOCAL" "$BASE" "$REMOTE"]
+		} else {
+			set cmdline [list "$merge_tool_path" -f -d -c "wincmd l" \
+				"$LOCAL" "$MERGED" "$REMOTE"]
+		}
 	}
 	kdiff3 {
 		if {$base_stage ne {}} {
-- 
1.8.1.1.10.g9255f3f
Alexey Shumkin· Jan 24, 2013, 07:16 UTC · re: Alexey Shumkin · lore

[PATCH 2/3] mergetool--lib: Add diffuse as a tool

Signed-off-by: Alexey Shumkin <Alex.Crezoff@gmail.com>
---
 git-gui/lib/mergetool.tcl | 9 +++++++++
 1 file changed, 9 insertions(+)
Show changes to git-gui/lib/mergetool.tcl +9 −0
diff --git a/git-gui/lib/mergetool.tcl b/git-gui/lib/mergetool.tcl
index 4fc1cab..837ce17 100644
--- a/git-gui/lib/mergetool.tcl
+++ b/git-gui/lib/mergetool.tcl
@@ -194,6 +194,15 @@ proc merge_resolve_tool2 {} {
 			set cmdline [list "$merge_tool_path" "$LOCAL" "$REMOTE" -mergeoutput="$MERGED"]
 		}
 	}
+	diffuse {
+		if {$base_stage ne {}} {
+			set cmdline [list "$merge_tool_path" \
+				"$LOCAL" "$MERGED" "$REMOTE" "$BASE"]
+		} else {
+			set cmdline [list "$merge_tool_path" \
+				"$LOCAL" "$MERGED" "$REMOTE"]
+		}
+	}
 	ecmerge {
 		if {$base_stage ne {}} {
 			set cmdline [list "$merge_tool_path" "$BASE" "$LOCAL" "$REMOTE" --default --mode=merge3 --to="$MERGED"]
-- 
1.8.1.1.10.g9255f3f
Alexey Shumkin· Jan 24, 2013, 07:16 UTC · re: Alexey Shumkin · lore

[PATCH 3/3] mergetool--lib: Add TortoiseMerge as a tool

Also added Russian translation of the added error message "%s cannot be used without a base"

Signed-off-by: Alexey Shumkin <Alex.Crezoff@gmail.com>
---
 git-gui/lib/mergetool.tcl | 10 ++++++++++
 git-gui/po/ru.po          |  4 ++++
 2 files changed, 14 insertions(+)
Show changes to 2 files +14 −0

git-gui/lib/mergetool.tcl, git-gui/po/ru.po

diff --git a/git-gui/lib/mergetool.tcl b/git-gui/lib/mergetool.tcl
index 837ce17..d978770 100644
--- a/git-gui/lib/mergetool.tcl
+++ b/git-gui/lib/mergetool.tcl
@@ -257,6 +257,16 @@ proc merge_resolve_tool2 {} {
 			set cmdline [list "$merge_tool_path" -o "$MERGED" "$LOCAL" "$REMOTE"]
 		}
 	}
+	tortoisemerge {
+		if {$base_stage ne {}} {
+			set cmdline [list "$merge_tool_path" \
+				-base:$BASE -mine:$LOCAL \
+				-theirs:$REMOTE -merged:$MERGED]
+		} else {
+			error_popup [mc "%s cannot be used without a base" "TortoiseMerge"]
+			return
+		}
+	}
 	vimdiff {
 		error_popup [mc "Not a GUI merge tool: '%s'" $tool]
 		return
diff --git a/git-gui/po/ru.po b/git-gui/po/ru.po
index ca4343b..e9ef810 100644
--- a/git-gui/po/ru.po
+++ b/git-gui/po/ru.po
@@ -1948,6 +1948,10 @@ msgstr "Конфликтующий файл не существует"
 msgid "Not a GUI merge tool: '%s'"
 msgstr "'%s' не является программой слияния"
 
+#: lib/mergetool.tcl:280
+msgid "%s cannot be used without a base"
+msgstr "%s не может использоваться без базовой версии"
+
 #: lib/mergetool.tcl:268
 #, tcl-format
 msgid "Unsupported merge tool '%s'"
-- 
1.8.1.1.10.g9255f3f
David Aguilar· Jan 25, 2013, 05:07 UTC · re: Alexey Shumkin · lore

Re: [PATCH 1/3] mergetool--lib: fix startup options for gvimdiff tool

On Wed, Jan 23, 2013 at 11:16 PM, Alexey Shumkin <alex.crezoff@gmail.com> wrote:
Show 6 quoted lines
> Options are taken from <Git source>/mergetools/vim
>
> Signed-off-by: Alexey Shumkin <Alex.Crezoff@gmail.com>
> ---
>  git-gui/lib/mergetool.tcl | 8 +++++++-
>  1 file changed, 7 insertions(+), 1 deletion(-)
A better long-term solution might be to teach git gui to use "git difftool".

Would it be better to teach git-gui (and gitk) about mergetool/difftool? That would allow us to possibly eliminate this duplication.

We did start towards that path when difftool learned the --extcmd option (for use by gitk) but I have not followed through.

What do you think about trying that approach?
Show 26 quoted lines
> diff --git a/git-gui/lib/mergetool.tcl b/git-gui/lib/mergetool.tcl
> index 3c8e73b..4fc1cab 100644
> --- a/git-gui/lib/mergetool.tcl
> +++ b/git-gui/lib/mergetool.tcl
> @@ -211,7 +211,13 @@ proc merge_resolve_tool2 {} {
>                 }
>         }
>         gvimdiff {
> -               set cmdline [list "$merge_tool_path" -f "$LOCAL" "$MERGED" "$REMOTE"]
> +               if {$base_stage ne {}} {
> +                       set cmdline [list "$merge_tool_path" -f -d -c "wincmd J" \
> +                               "$MERGED" "$LOCAL" "$BASE" "$REMOTE"]
> +               } else {
> +                       set cmdline [list "$merge_tool_path" -f -d -c "wincmd l" \
> +                               "$LOCAL" "$MERGED" "$REMOTE"]
> +               }
>         }
>         kdiff3 {
>                 if {$base_stage ne {}} {
> --
> 1.8.1.1.10.g9255f3f
>
> --
> To unsubscribe from this list: send the line "unsubscribe git" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
-- 
David
Alexey Shumkin· Jan 25, 2013, 08:44 UTC · re: David Aguilar · lore

Re: [PATCH 1/3] mergetool--lib: fix startup options for gvimdiff tool

Maybe, some time ;) Actually, I'm not TCL-programmer. With one of these patches I just have solved one my problem (to run tortoisemerge with git-gui) when I was showing to my collegue how to work with Git, and on the side I fixed another two bugs. So, I decided to sumbit these patches, to avoid applying them every time after each Git update as I did last 1.5 years with other patches which still are not submitted, because I'm too lazy to follow Git development workflow in my free time )

Show 55 quoted lines
> On Wed, Jan 23, 2013 at 11:16 PM, Alexey Shumkin
> <alex.crezoff@gmail.com> wrote:
> > Options are taken from <Git source>/mergetools/vim
> >
> > Signed-off-by: Alexey Shumkin <Alex.Crezoff@gmail.com>
> > ---
> >  git-gui/lib/mergetool.tcl | 8 +++++++-
> >  1 file changed, 7 insertions(+), 1 deletion(-)
> 
> A better long-term solution might be to teach git gui to use "git
> difftool".
> 
> Would it be better to teach git-gui (and gitk) about
> mergetool/difftool? That would allow us to possibly eliminate this
> duplication.
> 
> We did start towards that path when difftool learned the --extcmd
> option (for use by gitk) but I have not followed through.
> 
> What do you think about trying that approach?
> 
> 
> > diff --git a/git-gui/lib/mergetool.tcl b/git-gui/lib/mergetool.tcl
> > index 3c8e73b..4fc1cab 100644
> > --- a/git-gui/lib/mergetool.tcl
> > +++ b/git-gui/lib/mergetool.tcl
> > @@ -211,7 +211,13 @@ proc merge_resolve_tool2 {} {
> >                 }
> >         }
> >         gvimdiff {
> > -               set cmdline [list "$merge_tool_path" -f "$LOCAL"
> > "$MERGED" "$REMOTE"]
> > +               if {$base_stage ne {}} {
> > +                       set cmdline [list "$merge_tool_path" -f -d
> > -c "wincmd J" \
> > +                               "$MERGED" "$LOCAL" "$BASE"
> > "$REMOTE"]
> > +               } else {
> > +                       set cmdline [list "$merge_tool_path" -f -d
> > -c "wincmd l" \
> > +                               "$LOCAL" "$MERGED" "$REMOTE"]
> > +               }
> >         }
> >         kdiff3 {
> >                 if {$base_stage ne {}} {
> > --
> > 1.8.1.1.10.g9255f3f
> >
> > --
> > To unsubscribe from this list: send the line "unsubscribe git" in
> > the body of a message to majordomo@vger.kernel.org
> > More majordomo info at  http://vger.kernel.org/majordomo-info.html
> 
> 
> 

← back to recent threads