git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [PATCH] mergetools: Add tortoisegitmerge helper

From
John Keeping <john@keeping.me.uk>
Date
Jan 25, 2013, 09:48 UTC
Message-ID
<20130125094823.GW7498@serenity.lan>
In-Reply-To
<CAJDDKr4oerSq16rYt2iKNtQNK79L+jOiKROhEW_yiBPKjkVhuQ@mail.gmail.com>
On Thu, Jan 24, 2013 at 11:54:25PM -0800, David Aguilar wrote:
Show 29 quoted lines
> On Thu, Jan 24, 2013 at 11:21 PM, Junio C Hamano <gitster@pobox.com> wrote:
> > Is there a way for me to programatically tell what merge.tool and
> > diff.tool could be enabled for a particular source checkout of Git
> > regardless of what platform am I on (that is, even though I won't
> > touch Windows, I want to see 'tortoise' appear in the output of such
> > a procedure)?  We could generate a small text file from the Makefile
> > in Documentation and include it when building the manual pages if
> > such a procedure is available.
> 
> That's a good idea.
> Here's one way... (typed into gmail, so probably broken)
>
> LF='
> '
> mergetools=
> difftools=
> scriptlets="$(git --exec-path)"/mergetools
> 
> for script in "$scriptlets"/*
> do
>     tool="$(basename "$script")"
>     if test "$tool" = "defaults"
>     then
>         continue
>     fi
>     . "$scriptlets"/defaults
>     can_diff && difftools="$difftools$tool$LF"
>     can_merge && mergetools="$mergetools$tool$LF"
> done

I don't think this will work since the names of the valid tools are not necessarily the same as the names of the scriptlets - this is the exact issue that prompted my patches to git-difftool yesterday.

The best option I can see given what's currently available is something like this:

-- >8 --
sed -n -e '/^list_merge_tool_candidates/,/^}/ {
        /tools=/ {
                s/.*tools=//
                s/"//g
                s/\$tools//
                s/ /\n/g
                p
        }
}' git-mergetool--lib.sh |sort |uniq |while read -r tool
do
	test -z "$tool" && continue
	( . git-mergetool--lib && setup_tool $tool
        	# Use can_diff and can_merge here.
	)
done
-- 8< --
John
Previous: David AguilarNext: Sven Strickroth
Message 12 of 31 in “mergetools: Add tortoisegitmerge helper”
  1. mergetools: Add tortoisegitmerge helperSven Strickroth, Jan 20, 2013
  2. Junio C HamanoJan 21, 2013
  3. mergetools: Add tortoisegitmerge helperSven Strickroth, Jan 21, 2013
  4. mergetools: Add tortoisegitmerge helperSven Strickroth, Jan 21, 2013
  5. Sven StrickrothJan 24, 2013
  6. Junio C HamanoJan 24, 2013
  7. Sven StrickrothJan 24, 2013
  8. Junio C HamanoJan 24, 2013
  9. David AguilarJan 25, 2013
  10. Junio C HamanoJan 25, 2013
  11. David AguilarJan 25, 2013
  12. John KeepingJan 25, 2013
  13. mergetools: Enhance tortoisemerge to work withSven Strickroth, Jan 25, 2013
  14. David AguilarJan 25, 2013
  15. mergetools: Enhance tortoisemerge to work withSven Strickroth, Jan 25, 2013
  16. Junio C HamanoJan 25, 2013
  17. Sven StrickrothJan 26, 2013
  18. Sven StrickrothJan 26, 2013
  19. 1/2 mergetools: Added support for TortoiseGitMergeSven Strickroth, Jan 26, 2013
  20. 2/2 mergetools: Make tortoisemerge work withSven Strickroth, Jan 26, 2013
  21. David AguilarJan 26, 2013
  22. Sven StrickrothJan 27, 2013
  23. Junio C HamanoJan 27, 2013
  24. mergetools: Enable tortoisemerge to handle filenames withSven Strickroth, Feb 1, 2013
  25. Sebastian SchuberthFeb 1, 2013
  26. Sven StrickrothFeb 1, 2013
  27. Junio C HamanoFeb 1, 2013
  28. Sven StrickrothFeb 1, 2013
  29. Sven StrickrothFeb 1, 2013
  30. David AguilarFeb 2, 2013
  31. Junio C HamanoFeb 2, 2013

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.