[PATCH v3 3/5] enter_repo: allow .git files in strict mode
- From
Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
- Date
- Sep 13, 2015, 01:02 UTC
- Message-ID
- <1442106148-22895-4-git-send-email-pclouds@gmail.com>
- In-Reply-To
- <1442106148-22895-1-git-send-email-pclouds@gmail.com>
Strict mode is about not guessing where .git is. If the user points to a .git file, we know exactly where the target .git dir will be.
This is needed even in local clone case because transport.c code uses upload-pack for fetching remote refs.
Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com> --- path.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-)
diff --git a/path.c b/path.c index 7340e11..32d4ca6 100644 --- a/path.c +++ b/path.c @@ -438,8 +438,13 @@ const char *enter_repo(const char *path, int strict) return NULL; path = validated_path; } - else if (chdir(path)) - return NULL; + else { + const char *gitfile = read_gitfile(used_path); + if (gitfile) + path = gitfile; + if (chdir(path)) + return NULL; + } if (is_git_directory(".")) { set_git_dir(".");
-- 2.3.0.rc1.137.g477eb31