Thread (1 message) 1 message, 1 author, 2016-06-15

Re: [PATCH v3 3/5] enter_repo: allow .git files in strict mode

From: Junio C Hamano <hidden>
Date: 2016-06-15 23:06:42

Nguyễn Thái Ngọc Duy  [off-list ref] writes:
quoted hunk
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 <redacted>
---
 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);
At this point, used_path[] has not been touched since this function
was called.  What file are we reading from?

Is that just a typo of used_path?  Do we lack test that cover this
codepath?

Thanks.
+		if (gitfile)
+			path = gitfile;
+		if (chdir(path))
+			return NULL;
+	}
 
 	if (is_git_directory(".")) {
 		set_git_dir(".");
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help