Merge branch 'nd/clone-linked-checkout' into maint
It was not possible to use a repository-lookalike created by "git worktree add" as a local source of "git clone". * nd/clone-linked-checkout: clone: better error when --reference is a linked checkout clone: allow --local from a linked checkout enter_repo: allow .git files in strict mode enter_repo: avoid duplicating logic, use is_git_directory() instead t0002: add test for enter_repo(), non-strict mode path.c: delete an extra space
This commit is contained in:
14
path.c
14
path.c
@ -445,18 +445,22 @@ const char *enter_repo(const char *path, int strict)
|
||||
}
|
||||
if (!suffix[i])
|
||||
return NULL;
|
||||
gitfile = read_gitfile(used_path) ;
|
||||
gitfile = read_gitfile(used_path);
|
||||
if (gitfile)
|
||||
strcpy(used_path, gitfile);
|
||||
if (chdir(used_path))
|
||||
return NULL;
|
||||
path = validated_path;
|
||||
}
|
||||
else if (chdir(path))
|
||||
return NULL;
|
||||
else {
|
||||
const char *gitfile = read_gitfile(path);
|
||||
if (gitfile)
|
||||
path = gitfile;
|
||||
if (chdir(path))
|
||||
return NULL;
|
||||
}
|
||||
|
||||
if (access("objects", X_OK) == 0 && access("refs", X_OK) == 0 &&
|
||||
validate_headref("HEAD") == 0) {
|
||||
if (is_git_directory(".")) {
|
||||
set_git_dir(".");
|
||||
check_repository_format();
|
||||
return path;
|
||||
|
||||
Reference in New Issue
Block a user