threads / bug / 23455

Feature or a bug: git aliases are executed in git-root directory

Subject: Feature or a bug: git aliases are executed in git-root directory

## tl;dr

3 messages between Apr 14, 2010 and Apr 16, 2010.

replies: 2people: 3as markdown or json

Jens Otten· Apr 14, 2010, 11:18 UTC · lore
Hi,
i started to use git (version is 1.6.3.3 (ubuntu)) and it is really great!

but i have one problem when using aliases. maybe i made a mistake, but here is my problem.

i set up my ~/.gitconfig as follows:
----------
...
[alias]
    meld = !GIT_EXTERNAL_DIFF='git-diff-to-meld-redirect' git diff
...
----------

now when i work in a subdirectory of my git-root dir and want to make a diff, this works perfectly: $ cd ~/git-root/subdir $ git diff some_file

but when doing the same using the alias i get an error: $ cd ~/git-root/subdir $ git meld some_file fatal: ambiguous argument 'some_file': unknown revision or path not in the working tree. Use '--' to separate paths from revisions

whereas using the relative path starting from the git-root directory works $ cd ~/git-root/subdir $ git meld subdir/some_file

is there a way to solve this problem?

thanks for your help jens

Sverre Rabbelier· Apr 14, 2010, 13:10 UTC · re: Jens Otten · lore

Re: Feature or a bug: git aliases are executed in git-root directory

Heya,
On Wed, Apr 14, 2010 at 13:18, Jens Otten <j.otten@plusserver.de> wrote:
> is there a way to solve this problem?
Yes, put this script in your path (and make it executable):

cat > git-meld << EOF #!/bin/sh

GIT_EXTERNAL_DIFF='git-diff-to-meld-redirect' git diff "$@" EOF

-- 
Cheers,

Sverre Rabbelier
David Aguilar· Apr 16, 2010, 08:34 UTC · re: Jens Otten · lore

Re: Feature or a bug: git aliases are executed in git-root directory

On Wed, Apr 14, 2010 at 01:18:27PM +0200, Jens Otten wrote:
Show 32 quoted lines
> Hi,
>
> i started to use git (version is 1.6.3.3 (ubuntu)) and it is really great!
>
> but i have one problem when using aliases. maybe i made a mistake, but  
> here is my problem.
>
> i set up my ~/.gitconfig as follows:
> ----------
> ...
> [alias]
>    meld = !GIT_EXTERNAL_DIFF='git-diff-to-meld-redirect' git diff
> ...
> ----------
>
> now when i work in a subdirectory of my git-root dir and want to make a  
> diff, this works perfectly:
> $ cd ~/git-root/subdir
> $ git diff some_file
>
> but when doing the same using the alias i get an error:
> $ cd ~/git-root/subdir
> $ git meld some_file
> fatal: ambiguous argument 'some_file': unknown revision or path not in  
> the working tree.
> Use '--' to separate paths from revisions
>
> whereas using the relative path starting from the git-root directory works
> $ cd ~/git-root/subdir
> $ git meld subdir/some_file
>
> is there a way to solve this problem?
Yes.  Use git-difftool =)
http://www.kernel.org/pub/software/scm/git/docs/git-difftool.html
git difftool -t meld -- <path>
> thanks for your help
> jens
HTH,
-- 
		David

← back to recent threads