Re: git locate
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)