From: Bruce Stephens Date: Wed, 02 Jun 2010 10:23:32 GMT Subject: Re: git locate Message-ID: <80y6ex3f8b.fsf@tiny.isode.net> In-Reply-To: John Tapsell writes: [...] > Actually could someone help me with this.. the trouble is that this > returns paths relative to the root. > > Can I get it to find all the files, but relative to where I am now? Something like this is probably part of the answer, which allows an alias like this to work: locate = !cd $GIT_CWD && sh -c 'git ls-files "*$1*"' - That doesn't give you all the files (just those below where you are). diff --git a/git.c b/git.c index 99f0363..81c877b 100644 --- a/git.c +++ b/git.c @@ -178,6 +178,10 @@ static int handle_alias(int *argcp, const char ***argv) } trace_printf("trace: alias to shell cmd: %s => %s\n", alias_command, alias_string + 1); + if (!subdir || !*subdir) + setenv("GIT_CWD", "./", 1); + else + setenv("GIT_CWD", subdir, 1); ret = system(alias_string + 1); if (ret >= 0 && WIFEXITED(ret) && WEXITSTATUS(ret) != 127)