git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* git mergetool
@ 2008-05-17 17:21 Evgeny
  2008-05-17 20:21 ` Jakub Narebski
  0 siblings, 1 reply; 4+ messages in thread
From: Evgeny @ 2008-05-17 17:21 UTC (permalink / raw)
  To: git, tytso

Hello Git developers,
and especially Theodore (whos email is in the footer of man git-mergetool)

Background:
   I am trying to use a custom mergetool with git.
   P4Merge from http://www.perforce.com/perforce/products/merge.html

   The documentation explains that environment variables $BASE,
$LOCAL, $REMOTE, $MERGED
   are set for the invocation of the mergetool command.

Problem:
   I wrote a wrapper for P4Merge, and I check for these environment
variables - but they are not there.
   After a closer inspection of git-mergetool I see that infact these
variables are not being sent to the
   external command at all, and are just in the context of the
git-mergetool script.

Solution:
   There are two ways, that i know of, to make the executed command
receive these variables :
     1. use "export" on them
     2. use "env LOCAL=$LOCAL env REMOTE=$REMOTE ....  $extcommand" to
set an environment for just that command

My System Information:
   git 1.5.5.1  (from macports)
   Mac OS X 10.5.2

Hopefully this will get fixed in future versions, so I wont need to
patch git-mergetool locally on my machine with every update.

Regards,
Evgeny

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: git mergetool
  2008-05-17 17:21 git mergetool Evgeny
@ 2008-05-17 20:21 ` Jakub Narebski
  2008-05-17 20:47   ` David Aguilar
  0 siblings, 1 reply; 4+ messages in thread
From: Jakub Narebski @ 2008-05-17 20:21 UTC (permalink / raw)
  To: Evgeny; +Cc: git, tytso

Evgeny <evgeny.zislis@gmail.com> writes:

> Background:
>    I am trying to use a custom mergetool with git.
>    P4Merge from http://www.perforce.com/perforce/products/merge.html
> 
>    The documentation explains that environment variables 
>    $BASE, $LOCAL, $REMOTE, $MERGED
>    are set for the invocation of the mergetool command.
> 
> Problem:
>    I wrote a wrapper for P4Merge, and I check for these environment
>    variables - but they are not there.   After a closer inspection
>    of git-mergetool I see that infact these variables are not being
>    sent to the external command at all, and are just in the context
>    of the git-mergetool script.

>From what I know of git-mergetool, you can use one of the predefined
merge tools: kdiff3, tkdiff, meld, xxdiff, emerge, vimdiff, gvimdiff,
ecmerge, and opendiff (optionally providing path to the tool)

To add support for P4Merge you would have either modify
git-mergetool.sh (and, optionally, send a patch to git mailing list),
or make use of `mergetool.<tool>.cmd` configuration option.
Unfortunately there is no example...

-- 
Jakub Narebski
Poland
ShadeHawk on #git

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: git mergetool
  2008-05-17 20:21 ` Jakub Narebski
@ 2008-05-17 20:47   ` David Aguilar
  2008-05-17 21:32     ` Evgeny
  0 siblings, 1 reply; 4+ messages in thread
From: David Aguilar @ 2008-05-17 20:47 UTC (permalink / raw)
  To: Jakub Narebski; +Cc: Evgeny, git, tytso

On Sat, May 17, 2008 at 1:21 PM, Jakub Narebski <jnareb@gmail.com> wrote:
> Evgeny <evgeny.zislis@gmail.com> writes:
>
>> Background:
>>    I am trying to use a custom mergetool with git.
>>    The documentation explains that environment variables
>>    $BASE, $LOCAL, $REMOTE, $MERGED
>>    are set for the invocation of the mergetool command.
>>
>> Problem:
>>    I wrote a wrapper for P4Merge, and I check for these environment
>>    variables - but they are not there.   After a closer inspection
>>    of git-mergetool I see that infact these variables are not being
>>    sent to the external command at all, and are just in the context
>>    of the git-mergetool script.
>
> From what I know of git-mergetool, you can use one of the predefined
> merge tools: kdiff3, tkdiff, meld, xxdiff, emerge, vimdiff, gvimdiff,
> ecmerge, and opendiff (optionally providing path to the tool)
>
> To add support for P4Merge you would have either modify
> git-mergetool.sh (and, optionally, send a patch to git mailing list),
> or make use of `mergetool.<tool>.cmd` configuration option.
> Unfortunately there is no example...
>
> --
> Jakub Narebski
> Poland
> ShadeHawk on #git

I just sent a patch that exports these variables.

Presumably we do not want to modify git-mergetool.sh every single time
someone needs to be able to use a new mergetool, hence the patch I
sent makes sense to me.  Let me know if you think otherwise.
Thanks,
-- 
 David

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: git mergetool
  2008-05-17 20:47   ` David Aguilar
@ 2008-05-17 21:32     ` Evgeny
  0 siblings, 0 replies; 4+ messages in thread
From: Evgeny @ 2008-05-17 21:32 UTC (permalink / raw)
  To: David Aguilar; +Cc: Jakub Narebski, git, tytso

I was in fact using mergetool.p4merge.cmd ... and the documentation explains
regarding the non-working environment variables.

Hopefully with the new patch it will work okay.

Thanks David!

--
Evgeny

On Sat, May 17, 2008 at 11:47 PM, David Aguilar <davvid@gmail.com> wrote:
> On Sat, May 17, 2008 at 1:21 PM, Jakub Narebski <jnareb@gmail.com> wrote:
>> Evgeny <evgeny.zislis@gmail.com> writes:
>>
>>> Background:
>>>    I am trying to use a custom mergetool with git.
>>>    The documentation explains that environment variables
>>>    $BASE, $LOCAL, $REMOTE, $MERGED
>>>    are set for the invocation of the mergetool command.
>>>
>>> Problem:
>>>    I wrote a wrapper for P4Merge, and I check for these environment
>>>    variables - but they are not there.   After a closer inspection
>>>    of git-mergetool I see that infact these variables are not being
>>>    sent to the external command at all, and are just in the context
>>>    of the git-mergetool script.
>>
>> From what I know of git-mergetool, you can use one of the predefined
>> merge tools: kdiff3, tkdiff, meld, xxdiff, emerge, vimdiff, gvimdiff,
>> ecmerge, and opendiff (optionally providing path to the tool)
>>
>> To add support for P4Merge you would have either modify
>> git-mergetool.sh (and, optionally, send a patch to git mailing list),
>> or make use of `mergetool.<tool>.cmd` configuration option.
>> Unfortunately there is no example...
>>
>> --
>> Jakub Narebski
>> Poland
>> ShadeHawk on #git
>
> I just sent a patch that exports these variables.
>
> Presumably we do not want to modify git-mergetool.sh every single time
> someone needs to be able to use a new mergetool, hence the patch I
> sent makes sense to me.  Let me know if you think otherwise.
> Thanks,
> --
>  David
>

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2008-05-17 21:33 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-05-17 17:21 git mergetool Evgeny
2008-05-17 20:21 ` Jakub Narebski
2008-05-17 20:47   ` David Aguilar
2008-05-17 21:32     ` Evgeny

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).