Re: builtin command's prefix question
From: Junio C Hamano <hidden>
Date: 2016-06-15 22:43:56
Johannes Schindelin [off-list ref] writes:
On Thu, 6 Dec 2007, Nguyen Thai Ngoc Duy wrote:quoted
On Dec 6, 2007 6:22 AM, Junio C Hamano [off-list ref] wrote:quoted
However, if we define setup() to behave this way when GIT_DIR is not defined and GIT_WORK_TREE is: (1) internally pretend as if GIT_DIR was specified to be the directory where the command was started from (iow, do getcwd() once upon startup); (2) chdir to GIT_WORK_TREE (which means "callers of setup() always run from the top of the work tree"); (3) set prefix to NULL;(1) is fine by me, even if it goes up to find a gitdir. But (3), no, prefix should be set as relative path from worktree top directory to user current directory, not NULL.If you expect "git <command> <filespec>" to work correctly from GIT_DIR, you will _have_ to set the prefix to NULL.
That depends on the definition of "correctly". As I said, I think the above "rule-looking things" implement an insane behaviour where you are in one directory, and use that <filespec> to name things relative to some other directory whose location is completely unrelated to the directory you are in. IOW, not a good set of rules, and I do not necessarily agree with the statement that says such a behaviour is working "correctly from GIT_DIR".