Re: [PATCH] Support working directory located at root
From: Johannes Sixt <hidden>
Date: 2016-06-15 22:48:12
On Montag, 8. Februar 2010, Nguyễn Thái Ngọc Duy wrote:
quoted hunk ↗ jump to hunk
@@ -25,7 +25,7 @@ const char *prefix_path(const char *prefix, int len,const char *path) len = strlen(work_tree); total = strlen(sanitized) + 1; if (strncmp(sanitized, work_tree, len) || - (sanitized[len] != '\0' && sanitized[len] != '/')) { + (len > 1 && sanitized[len] != '\0' && sanitized[len] != '/')) { error_out: die("'%s' is outside repository", orig); }@@ -403,7 +403,7 @@ const char *setup_git_directory_gently(int *nongit_ok) if (!work_tree_env) inside_work_tree = 0; if (offset != len) { - cwd[offset] = '\0'; + cwd[offset ? offset : 1] = '\0'; set_git_dir(cwd); } else set_git_dir(".");@@ -427,6 +427,8 @@ const char *setup_git_directory_gently(int *nongit_ok) inside_git_dir = 0; if (!work_tree_env) inside_work_tree = 1; + if (offset == 0) /* reached root, set worktree to '/' */ + offset = 1; git_work_tree_cfg = xstrndup(cwd, offset); if (check_repository_format_gently(nongit_ok)) return NULL;
Does not work: etc@master:1028> ~/Src/git/git/git add resolv.conf fatal: pathspec 'tc/resolv.conf' did not match any files I wonder how this works on Windows where we do not want to strip the slash from C:/ either. -- Hannes