Re: [PATCH] git-init: set core.worktree if GIT_WORK_TREE is specified
From: Johannes Sixt <hidden>
Date: 2016-06-15 22:43:19
Matthias Lederhofer wrote:
quoted
+ if (!getcwd(cwd, sizeof(cwd)) || cwd[0] != '/') + die("Unable to read current working directory");Dscho just pointed out that this causes problems on windows. The same is also in setup_git_directory_gently and was there before I touched it, introduced by Linus in d288a700. What was the original reason to do this? Are there implementations of getcwd which return a relative path? Additionally there are other places which need to check if some user supplied path is absolute. Should we have a macro/function for that which depends on the os and checks for path[0] = '/' on unix and perhaps path[1] = ':' on windows?
I've modified some places (that check for an absolute path) in the MinGW port to read (path[0] == '/' || path[1] == ':'). I don't think that it's necessary that you cater for this case in your code - I'll take care of it in the MinGW port. Of course, a hint that there is another place to watch out for, or even better a test case in t/, is most appreciated. I still hope to find some time to rework the MinGW port. Then such details will be hidden behind a is_path_absolute() function. Or maybe getcwd_or_die() ;) -- Hannes