Re: git locate
- From
- Bruce Stephens <bruce.stephens@isode.com>
- Date
- Jun 2, 2010, 10:23 UTC
- Message-ID
- <80y6ex3f8b.fsf@tiny.isode.net>
- In-Reply-To
- <AANLkTil38OLw3J6ZPvv2wNu98QuTXJKtNwRZP0NDZPWn@mail.gmail.com>
John Tapsell <johnflux@gmail.com> 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)