All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Nguyễn Thái Ngọc Duy" <pclouds@gmail.com>
To: git@vger.kernel.org
Cc: "Nguyễn Thái Ngọc Duy" <pclouds@gmail.com>
Subject: [PATCH v3 02/25] Convert git_snpath() to strbuf_git_path()
Date: Tue, 18 Feb 2014 20:39:51 +0700	[thread overview]
Message-ID: <1392730814-19656-3-git-send-email-pclouds@gmail.com> (raw)
In-Reply-To: <1392730814-19656-1-git-send-email-pclouds@gmail.com>

In the previous patch, git_snpath() is modified to take a strbuf
buffer from get_pathname() because vsnpath() needs that. But that
makes it awkward because git_snpath() receives a pre-allocated buffer
from outside and has to copy data back.

Rename it to strbuf_git_path() and make it receive strbuf directly.

Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
---
 builtin/checkout.c | 22 +++++++++---------
 cache.h            |  4 ++--
 path.c             |  8 +------
 refs.c             | 66 +++++++++++++++++++++++++++++++++++-------------------
 refs.h             |  2 +-
 5 files changed, 57 insertions(+), 45 deletions(-)

diff --git a/builtin/checkout.c b/builtin/checkout.c
index 5df3837..0570e41 100644
--- a/builtin/checkout.c
+++ b/builtin/checkout.c
@@ -585,18 +585,20 @@ static void update_refs_for_switch(const struct checkout_opts *opts,
 		if (opts->new_orphan_branch) {
 			if (opts->new_branch_log && !log_all_ref_updates) {
 				int temp;
-				char log_file[PATH_MAX];
+				struct strbuf log_file = STRBUF_INIT;
 				char *ref_name = mkpath("refs/heads/%s", opts->new_orphan_branch);
+				int ret;
 
 				temp = log_all_ref_updates;
 				log_all_ref_updates = 1;
-				if (log_ref_setup(ref_name, log_file, sizeof(log_file))) {
+				ret = log_ref_setup(ref_name, &log_file);
+				log_all_ref_updates = temp;
+				strbuf_release(&log_file);
+				if (ret) {
 					fprintf(stderr, _("Can not do reflog for '%s'\n"),
 					    opts->new_orphan_branch);
-					log_all_ref_updates = temp;
 					return;
 				}
-				log_all_ref_updates = temp;
 			}
 		}
 		else
@@ -651,14 +653,10 @@ static void update_refs_for_switch(const struct checkout_opts *opts,
 					new->name);
 			}
 		}
-		if (old->path && old->name) {
-			char log_file[PATH_MAX], ref_file[PATH_MAX];
-
-			git_snpath(log_file, sizeof(log_file), "logs/%s", old->path);
-			git_snpath(ref_file, sizeof(ref_file), "%s", old->path);
-			if (!file_exists(ref_file) && file_exists(log_file))
-				remove_path(log_file);
-		}
+		if (old->path && old->name &&
+		    !file_exists(git_path("%s", old->path)) &&
+		     file_exists(git_path("logs/%s", old->path)))
+			remove_path(git_path("logs/%s", old->path));
 	}
 	remove_branch_state();
 	strbuf_release(&msg);
diff --git a/cache.h b/cache.h
index dc040fb..8d3697e 100644
--- a/cache.h
+++ b/cache.h
@@ -646,8 +646,8 @@ extern int check_repository_format(void);
 
 extern char *mksnpath(char *buf, size_t n, const char *fmt, ...)
 	__attribute__((format (printf, 3, 4)));
-extern char *git_snpath(char *buf, size_t n, const char *fmt, ...)
-	__attribute__((format (printf, 3, 4)));
+extern void strbuf_git_path(struct strbuf *sb, const char *fmt, ...)
+	__attribute__((format (printf, 2, 3)));
 extern char *git_pathdup(const char *fmt, ...)
 	__attribute__((format (printf, 1, 2)));
 extern char *mkpathdup(const char *fmt, ...)
diff --git a/path.c b/path.c
index 1a1b784..fe3f844 100644
--- a/path.c
+++ b/path.c
@@ -70,18 +70,12 @@ static void vsnpath(struct strbuf *buf, const char *fmt, va_list args)
 	strbuf_cleanup_path(buf);
 }
 
-char *git_snpath(char *buf, size_t n, const char *fmt, ...)
+void strbuf_git_path(struct strbuf *sb, const char *fmt, ...)
 {
-	struct strbuf *sb = get_pathname();
 	va_list args;
 	va_start(args, fmt);
 	vsnpath(sb, fmt, args);
 	va_end(args);
-	if (sb->len >= n)
-		strlcpy(buf, bad_path, n);
-	else
-		memcpy(buf, sb->buf, sb->len + 1);
-	return buf;
 }
 
 char *git_pathdup(const char *fmt, ...)
diff --git a/refs.c b/refs.c
index 89228e2..434bd5e 100644
--- a/refs.c
+++ b/refs.c
@@ -1325,10 +1325,12 @@ static const char *handle_missing_loose_ref(const char *refname,
 
 const char *resolve_ref_unsafe(const char *refname, unsigned char *sha1, int reading, int *flag)
 {
+	struct strbuf sb_path = STRBUF_INIT;
 	int depth = MAXDEPTH;
 	ssize_t len;
 	char buffer[256];
 	static char refname_buffer[256];
+	const char *ret;
 
 	if (flag)
 		*flag = 0;
@@ -1337,15 +1339,17 @@ const char *resolve_ref_unsafe(const char *refname, unsigned char *sha1, int rea
 		return NULL;
 
 	for (;;) {
-		char path[PATH_MAX];
+		const char *path;
 		struct stat st;
 		char *buf;
 		int fd;
 
 		if (--depth < 0)
-			return NULL;
+			goto fail;
 
-		git_snpath(path, sizeof(path), "%s", refname);
+		strbuf_reset(&sb_path);
+		strbuf_git_path(&sb_path, "%s", refname);
+		path = sb_path.buf;
 
 		/*
 		 * We might have to loop back here to avoid a race
@@ -1359,10 +1363,11 @@ const char *resolve_ref_unsafe(const char *refname, unsigned char *sha1, int rea
 	stat_ref:
 		if (lstat(path, &st) < 0) {
 			if (errno == ENOENT)
-				return handle_missing_loose_ref(refname, sha1,
-								reading, flag);
+				ret = handle_missing_loose_ref(refname, sha1,
+							       reading, flag);
 			else
-				return NULL;
+				ret = NULL;
+			goto done;
 		}
 
 		/* Follow "normalized" - ie "refs/.." symlinks by hand */
@@ -1373,7 +1378,7 @@ const char *resolve_ref_unsafe(const char *refname, unsigned char *sha1, int rea
 					/* inconsistent with lstat; retry */
 					goto stat_ref;
 				else
-					return NULL;
+					goto fail;
 			}
 			buffer[len] = 0;
 			if (starts_with(buffer, "refs/") &&
@@ -1389,7 +1394,7 @@ const char *resolve_ref_unsafe(const char *refname, unsigned char *sha1, int rea
 		/* Is it a directory? */
 		if (S_ISDIR(st.st_mode)) {
 			errno = EISDIR;
-			return NULL;
+			goto fail;
 		}
 
 		/*
@@ -1402,12 +1407,13 @@ const char *resolve_ref_unsafe(const char *refname, unsigned char *sha1, int rea
 				/* inconsistent with lstat; retry */
 				goto stat_ref;
 			else
-				return NULL;
+				goto fail;
 		}
+
 		len = read_in_full(fd, buffer, sizeof(buffer)-1);
 		close(fd);
 		if (len < 0)
-			return NULL;
+			goto fail;
 		while (len && isspace(buffer[len-1]))
 			len--;
 		buffer[len] = '\0';
@@ -1424,9 +1430,10 @@ const char *resolve_ref_unsafe(const char *refname, unsigned char *sha1, int rea
 			    (buffer[40] != '\0' && !isspace(buffer[40]))) {
 				if (flag)
 					*flag |= REF_ISBROKEN;
-				return NULL;
+				goto fail;
 			}
-			return refname;
+			ret = refname;
+			goto done;
 		}
 		if (flag)
 			*flag |= REF_ISSYMREF;
@@ -1436,10 +1443,15 @@ const char *resolve_ref_unsafe(const char *refname, unsigned char *sha1, int rea
 		if (check_refname_format(buf, REFNAME_ALLOW_ONELEVEL)) {
 			if (flag)
 				*flag |= REF_ISBROKEN;
-			return NULL;
+			goto fail;
 		}
 		refname = strcpy(refname_buffer, buf);
 	}
+fail:
+	ret = NULL;
+done:
+	strbuf_release(&sb_path);
+	return ret;
 }
 
 char *resolve_refdup(const char *ref, unsigned char *sha1, int reading, int *flag)
@@ -2717,17 +2729,19 @@ static int copy_msg(char *buf, const char *msg)
 	return cp - buf;
 }
 
-int log_ref_setup(const char *refname, char *logfile, int bufsize)
+int log_ref_setup(const char *refname, struct strbuf *sb_logfile)
 {
 	int logfd, oflags = O_APPEND | O_WRONLY;
+	const char *logfile;
 
-	git_snpath(logfile, bufsize, "logs/%s", refname);
+	strbuf_git_path(sb_logfile, "logs/%s", refname);
+	logfile = sb_logfile->buf;
 	if (log_all_ref_updates &&
 	    (starts_with(refname, "refs/heads/") ||
 	     starts_with(refname, "refs/remotes/") ||
 	     starts_with(refname, "refs/notes/") ||
 	     !strcmp(refname, "HEAD"))) {
-		if (safe_create_leading_directories(logfile) < 0)
+		if (safe_create_leading_directories(sb_logfile->buf) < 0)
 			return error("unable to create directory for %s",
 				     logfile);
 		oflags |= O_CREAT;
@@ -2762,20 +2776,22 @@ static int log_ref_write(const char *refname, const unsigned char *old_sha1,
 	int logfd, result, written, oflags = O_APPEND | O_WRONLY;
 	unsigned maxlen, len;
 	int msglen;
-	char log_file[PATH_MAX];
+	struct strbuf sb_log_file = STRBUF_INIT;
+	const char *log_file;
 	char *logrec;
 	const char *committer;
 
 	if (log_all_ref_updates < 0)
 		log_all_ref_updates = !is_bare_repository();
 
-	result = log_ref_setup(refname, log_file, sizeof(log_file));
+	result = log_ref_setup(refname, &sb_log_file);
 	if (result)
-		return result;
+		goto done;
+	log_file = sb_log_file.buf;
 
 	logfd = open(log_file, oflags);
 	if (logfd < 0)
-		return 0;
+		goto done;
 	msglen = msg ? strlen(msg) : 0;
 	committer = git_committer_info(0);
 	maxlen = strlen(committer) + msglen + 100;
@@ -2788,9 +2804,13 @@ static int log_ref_write(const char *refname, const unsigned char *old_sha1,
 		len += copy_msg(logrec + len - 1, msg) - 1;
 	written = len <= maxlen ? write_in_full(logfd, logrec, len) : -1;
 	free(logrec);
-	if (close(logfd) != 0 || written != len)
-		return error("Unable to append to %s", log_file);
-	return 0;
+	if (close(logfd) != 0 || written != len) {
+		error("Unable to append to %s", log_file);
+		result = -1;
+	}
+done:
+	strbuf_release(&sb_log_file);
+	return result;
 }
 
 static int is_branch(const char *refname)
diff --git a/refs.h b/refs.h
index 87a1a79..783033a 100644
--- a/refs.h
+++ b/refs.h
@@ -166,7 +166,7 @@ extern void unlock_ref(struct ref_lock *lock);
 extern int write_ref_sha1(struct ref_lock *lock, const unsigned char *sha1, const char *msg);
 
 /** Setup reflog before using. **/
-int log_ref_setup(const char *ref_name, char *logfile, int bufsize);
+int log_ref_setup(const char *ref_name, struct strbuf *logfile);
 
 /** Reads log for the value of ref during at_time. **/
 extern int read_ref_at(const char *refname, unsigned long at_time, int cnt,
-- 
1.8.5.2.240.g8478abd

  parent reply	other threads:[~2014-02-18 13:40 UTC|newest]

Thread overview: 169+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-02-18 13:39 [PATCH v3 00/25] Support multiple checkouts Nguyễn Thái Ngọc Duy
2014-02-18 13:39 ` [PATCH v3 01/25] path.c: make get_pathname() return strbuf instead of static buffer Nguyễn Thái Ngọc Duy
2014-02-19 20:28   ` Junio C Hamano
2014-02-19 23:26   ` Junio C Hamano
2014-03-01  2:40     ` Duy Nguyen
2014-03-03 17:56       ` Junio C Hamano
2014-02-18 13:39 ` Nguyễn Thái Ngọc Duy [this message]
2014-02-19 23:48   ` [PATCH v3 02/25] Convert git_snpath() to strbuf_git_path() Junio C Hamano
2014-02-19 23:54     ` Duy Nguyen
2014-02-20  3:41       ` Junio C Hamano
2014-02-20  3:55         ` Duy Nguyen
2014-02-20 18:54           ` Junio C Hamano
2014-02-20 19:44   ` Junio C Hamano
2014-02-18 13:39 ` [PATCH v3 03/25] path.c: rename vsnpath() to do_git_path() Nguyễn Thái Ngọc Duy
2014-02-18 13:39 ` [PATCH v3 04/25] path.c: group git_path(), git_pathdup() and strbuf_git_path() together Nguyễn Thái Ngọc Duy
2014-02-18 13:39 ` [PATCH v3 05/25] Make git_path() aware of file relocation in $GIT_DIR Nguyễn Thái Ngọc Duy
2014-02-18 13:39 ` [PATCH v3 06/25] *.sh: respect $GIT_INDEX_FILE Nguyễn Thái Ngọc Duy
2014-02-18 13:39 ` [PATCH v3 07/25] reflog: avoid constructing .lock path with git_path Nguyễn Thái Ngọc Duy
2014-02-25 22:44   ` Junio C Hamano
2014-03-01  3:42     ` Duy Nguyen
2014-03-03 18:07       ` Junio C Hamano
2014-02-18 13:39 ` [PATCH v3 08/25] fast-import: use git_path() for accessing .git dir instead of get_git_dir() Nguyễn Thái Ngọc Duy
2014-02-18 13:39 ` [PATCH v3 09/25] commit: use SEQ_DIR instead of hardcoding "sequencer" Nguyễn Thái Ngọc Duy
2014-02-18 13:39 ` [PATCH v3 10/25] Add new environment variable $GIT_COMMON_DIR Nguyễn Thái Ngọc Duy
2014-02-26  1:24   ` Eric Sunshine
2014-02-26 10:55     ` Duy Nguyen
2014-02-26 16:12       ` Philip Oakley
2014-02-26 17:23         ` Eric Sunshine
2014-02-26 19:43       ` Eric Sunshine
2014-02-26 23:58   ` Junio C Hamano
2014-02-27  3:03     ` Duy Nguyen
2014-02-18 13:40 ` [PATCH v3 11/25] git-sh-setup.sh: use rev-parse --git-path to get $GIT_DIR/objects Nguyễn Thái Ngọc Duy
2014-02-27  0:00   ` Junio C Hamano
2014-02-18 13:40 ` [PATCH v3 12/25] *.sh: avoid hardcoding $GIT_DIR/hooks/ Nguyễn Thái Ngọc Duy
2014-02-18 13:40 ` [PATCH v3 13/25] git-stash: avoid hardcoding $GIT_DIR/logs/ Nguyễn Thái Ngọc Duy
2014-02-18 13:40 ` [PATCH v3 14/25] setup.c: convert is_git_directory() to use strbuf Nguyễn Thái Ngọc Duy
2014-02-19 20:17   ` Junio C Hamano
2014-02-20 13:04     ` Duy Nguyen
2014-02-20 19:06       ` Junio C Hamano
2014-02-20 19:36         ` Junio C Hamano
2014-03-01  2:50     ` [PATCH] strbuf: style fix -- top opening bracket on a separate line Nguyễn Thái Ngọc Duy
2014-02-21  3:38   ` [PATCH v3 14/25] setup.c: convert is_git_directory() to use strbuf Eric Sunshine
2014-02-18 13:40 ` [PATCH v3 15/25] setup.c: detect $GIT_COMMON_DIR in is_git_directory() Nguyễn Thái Ngọc Duy
2014-02-27  0:16   ` Junio C Hamano
2014-03-01  3:33     ` Duy Nguyen
2014-02-18 13:40 ` [PATCH v3 16/25] setup.c: convert check_repository_format_gently to use strbuf Nguyễn Thái Ngọc Duy
2014-02-27  0:18   ` Junio C Hamano
2014-02-18 13:40 ` [PATCH v3 17/25] setup.c: detect $GIT_COMMON_DIR check_repository_format_gently() Nguyễn Thái Ngọc Duy
2014-02-27  0:22   ` Junio C Hamano
2014-02-27  2:43     ` Duy Nguyen
2014-02-27 17:48       ` Junio C Hamano
2014-02-18 13:40 ` [PATCH v3 18/25] setup.c: support multi-checkout repo setup Nguyễn Thái Ngọc Duy
2014-02-19 20:19   ` Junio C Hamano
2014-02-27 20:28   ` Junio C Hamano
2014-03-24 14:52   ` Torsten Bögershausen
2014-03-25 13:52     ` Duy Nguyen
2014-03-25 14:07       ` Duy Nguyen
2014-03-26 21:03         ` Junio C Hamano
2014-02-18 13:40 ` [PATCH v3 19/25] wrapper.c: wrapper to open a file, fprintf then close Nguyễn Thái Ngọc Duy
2014-02-18 13:40 ` [PATCH v3 20/25] use new wrapper write_file() for simple file writing Nguyễn Thái Ngọc Duy
2014-02-18 13:40 ` [PATCH v3 21/25] checkout: support checking out into a new working directory Nguyễn Thái Ngọc Duy
2014-02-26 20:06   ` Eric Sunshine
2014-02-26 23:19     ` Duy Nguyen
2014-02-27  6:59       ` Eric Sunshine
2014-02-18 13:40 ` [PATCH v3 22/25] checkout: clean up half-prepared directories in --to mode Nguyễn Thái Ngọc Duy
2014-02-18 13:40 ` [PATCH v3 23/25] checkout: detach if the branch is already checked out elsewhere Nguyễn Thái Ngọc Duy
2014-02-19 20:20   ` Junio C Hamano
2014-02-19 21:52   ` Eric Sunshine
2014-02-18 13:40 ` [PATCH v3 24/25] prune: strategies for linked checkouts Nguyễn Thái Ngọc Duy
2014-02-19 20:32   ` Junio C Hamano
2014-02-19 20:42     ` Junio C Hamano
2014-02-20 13:15     ` Duy Nguyen
2014-02-20 19:55       ` Junio C Hamano
2014-02-19 22:08   ` Eric Sunshine
2014-02-19 22:53     ` Eric Sunshine
2014-02-20 13:19     ` Duy Nguyen
2014-02-18 13:40 ` [PATCH v3 25/25] gc: support prune --repos Nguyễn Thái Ngọc Duy
2014-02-19 20:22   ` Junio C Hamano
2014-02-19 20:57 ` [PATCH v3 00/25] Support multiple checkouts Junio C Hamano
2014-03-01 12:12 ` [PATCH v4 00/27] " Nguyễn Thái Ngọc Duy
2014-03-01 12:12   ` [PATCH v4 01/27] path.c: make get_pathname() return strbuf instead of static buffer Nguyễn Thái Ngọc Duy
2014-03-02 19:51     ` Eric Sunshine
2014-03-03  0:14       ` Duy Nguyen
2014-03-01 12:12   ` [PATCH v4 02/27] Convert git_snpath() to strbuf_git_path() Nguyễn Thái Ngọc Duy
2014-03-03  0:02     ` Eric Sunshine
2014-03-03  0:15       ` Duy Nguyen
2014-03-07  5:03         ` Duy Nguyen
2014-03-07  5:26           ` Eric Sunshine
2014-03-01 12:12   ` [PATCH v4 03/27] path.c: rename vsnpath() to do_git_path() Nguyễn Thái Ngọc Duy
2014-03-01 12:12   ` [PATCH v4 04/27] path.c: group git_path(), git_pathdup() and strbuf_git_path() together Nguyễn Thái Ngọc Duy
2014-03-01 12:12   ` [PATCH v4 05/27] Make git_path() aware of file relocation in $GIT_DIR Nguyễn Thái Ngọc Duy
2014-03-03  1:34     ` Eric Sunshine
2014-03-01 12:12   ` [PATCH v4 06/27] *.sh: respect $GIT_INDEX_FILE Nguyễn Thái Ngọc Duy
2014-03-01 12:12   ` [PATCH v4 07/27] reflog: avoid constructing .lock path with git_path Nguyễn Thái Ngọc Duy
2014-03-01 12:12   ` [PATCH v4 08/27] fast-import: use git_path() for accessing .git dir instead of get_git_dir() Nguyễn Thái Ngọc Duy
2014-03-01 12:12   ` [PATCH v4 09/27] commit: use SEQ_DIR instead of hardcoding "sequencer" Nguyễn Thái Ngọc Duy
2014-03-01 12:12   ` [PATCH v4 10/27] Add new environment variable $GIT_COMMON_DIR Nguyễn Thái Ngọc Duy
2014-03-03  7:29     ` Eric Sunshine
2014-03-01 12:12   ` [PATCH v4 11/27] git-sh-setup.sh: use rev-parse --git-path to get $GIT_DIR/objects Nguyễn Thái Ngọc Duy
2014-03-01 12:12   ` [PATCH v4 12/27] *.sh: avoid hardcoding $GIT_DIR/hooks/ Nguyễn Thái Ngọc Duy
2014-03-03  8:31     ` Eric Sunshine
2014-03-01 12:12   ` [PATCH v4 13/27] git-stash: avoid hardcoding $GIT_DIR/logs/ Nguyễn Thái Ngọc Duy
2014-03-01 15:50     ` Torsten Bögershausen
2014-03-01 12:12   ` [PATCH v4 14/27] setup.c: convert is_git_directory() to use strbuf Nguyễn Thái Ngọc Duy
2014-03-01 12:12   ` [PATCH v4 15/27] setup.c: detect $GIT_COMMON_DIR in is_git_directory() Nguyễn Thái Ngọc Duy
2014-03-01 12:12   ` [PATCH v4 16/27] setup.c: convert check_repository_format_gently to use strbuf Nguyễn Thái Ngọc Duy
2014-03-01 12:12   ` [PATCH v4 17/27] setup.c: detect $GIT_COMMON_DIR check_repository_format_gently() Nguyễn Thái Ngọc Duy
2014-03-01 12:12   ` [PATCH v4 18/27] setup.c: support multi-checkout repo setup Nguyễn Thái Ngọc Duy
2014-03-05 19:42     ` Junio C Hamano
2014-03-08  1:55       ` Duy Nguyen
2014-03-01 12:12   ` [PATCH v4 19/27] wrapper.c: wrapper to open a file, fprintf then close Nguyễn Thái Ngọc Duy
2014-03-01 17:11     ` Torsten Bögershausen
2014-03-04  2:47       ` Eric Sunshine
2014-03-01 12:12   ` [PATCH v4 20/27] use new wrapper write_file() for simple file writing Nguyễn Thái Ngọc Duy
2014-03-01 12:12   ` [PATCH v4 21/27] checkout: support checking out into a new working directory Nguyễn Thái Ngọc Duy
2014-03-01 12:12   ` [PATCH v4 22/27] checkout: clean up half-prepared directories in --to mode Nguyễn Thái Ngọc Duy
2014-03-06 10:06     ` Eric Sunshine
2014-03-01 12:12   ` [PATCH v4 23/27] checkout: detach if the branch is already checked out elsewhere Nguyễn Thái Ngọc Duy
2014-03-01 12:13   ` [PATCH v4 24/27] prune: strategies for linked checkouts Nguyễn Thái Ngọc Duy
2014-03-01 17:12     ` Torsten Bögershausen
2014-03-02  0:01       ` Duy Nguyen
2014-03-05 20:07     ` Junio C Hamano
2014-03-01 12:13   ` [PATCH v4 25/27] gc: style change -- no SP before closing bracket Nguyễn Thái Ngọc Duy
2014-03-01 12:13   ` [PATCH v4 26/27] gc: support prune --repos Nguyễn Thái Ngọc Duy
2014-03-07  6:40     ` Eric Sunshine
2014-03-01 12:13   ` [PATCH v4 27/27] count-objects: report unused files in $GIT_DIR/repos/ Nguyễn Thái Ngọc Duy
2014-03-05  4:25     ` Eric Sunshine
2014-03-05 12:08       ` Duy Nguyen
2014-03-08  2:47   ` [PATCH v5 00/28] Support multiple checkouts Nguyễn Thái Ngọc Duy
2014-03-08  2:47     ` [PATCH v5 01/28] path.c: make get_pathname() return strbuf instead of static buffer Nguyễn Thái Ngọc Duy
2014-03-08  6:11       ` Torsten Bögershausen
2014-03-08  8:57         ` Duy Nguyen
2014-03-08  2:47     ` [PATCH v5 02/28] path.c: make get_pathname() call sites return const char * Nguyễn Thái Ngọc Duy
2014-03-08  2:47     ` [PATCH v5 03/28] Convert git_snpath() to strbuf_git_path() Nguyễn Thái Ngọc Duy
2014-03-17 18:11       ` Junio C Hamano
2014-03-08  2:47     ` [PATCH v5 04/28] path.c: rename vsnpath() to do_git_path() Nguyễn Thái Ngọc Duy
2014-03-08  2:47     ` [PATCH v5 05/28] path.c: group git_path(), git_pathdup() and strbuf_git_path() together Nguyễn Thái Ngọc Duy
2014-03-08  2:47     ` [PATCH v5 06/28] Make git_path() aware of file relocation in $GIT_DIR Nguyễn Thái Ngọc Duy
2014-03-09  8:19       ` Eric Sunshine
2014-03-08  2:47     ` [PATCH v5 07/28] *.sh: respect $GIT_INDEX_FILE Nguyễn Thái Ngọc Duy
2014-03-08  2:48     ` [PATCH v5 08/28] reflog: avoid constructing .lock path with git_path Nguyễn Thái Ngọc Duy
2014-03-08  2:48     ` [PATCH v5 09/28] fast-import: use git_path() for accessing .git dir instead of get_git_dir() Nguyễn Thái Ngọc Duy
2014-03-08  2:48     ` [PATCH v5 10/28] commit: use SEQ_DIR instead of hardcoding "sequencer" Nguyễn Thái Ngọc Duy
2014-03-08  2:48     ` [PATCH v5 11/28] Add new environment variable $GIT_COMMON_DIR Nguyễn Thái Ngọc Duy
2014-03-08  2:48     ` [PATCH v5 12/28] git-sh-setup.sh: use rev-parse --git-path to get $GIT_DIR/objects Nguyễn Thái Ngọc Duy
2014-03-08  2:48     ` [PATCH v5 13/28] *.sh: avoid hardcoding $GIT_DIR/hooks/ Nguyễn Thái Ngọc Duy
2014-03-08  2:48     ` [PATCH v5 14/28] git-stash: avoid hardcoding $GIT_DIR/logs/ Nguyễn Thái Ngọc Duy
2014-03-08  2:48     ` [PATCH v5 15/28] setup.c: convert is_git_directory() to use strbuf Nguyễn Thái Ngọc Duy
2014-03-08  2:48     ` [PATCH v5 16/28] setup.c: detect $GIT_COMMON_DIR in is_git_directory() Nguyễn Thái Ngọc Duy
2014-03-08  2:48     ` [PATCH v5 17/28] setup.c: convert check_repository_format_gently to use strbuf Nguyễn Thái Ngọc Duy
2014-03-08  2:48     ` [PATCH v5 18/28] setup.c: detect $GIT_COMMON_DIR check_repository_format_gently() Nguyễn Thái Ngọc Duy
2014-03-08  2:48     ` [PATCH v5 19/28] setup.c: support multi-checkout repo setup Nguyễn Thái Ngọc Duy
2014-03-08  2:48     ` [PATCH v5 20/28] wrapper.c: wrapper to open a file, fprintf then close Nguyễn Thái Ngọc Duy
2014-03-08  2:48     ` [PATCH v5 21/28] use new wrapper write_file() for simple file writing Nguyễn Thái Ngọc Duy
2014-03-08  2:48     ` [PATCH v5 22/28] checkout: support checking out into a new working directory Nguyễn Thái Ngọc Duy
2014-03-08  2:48     ` [PATCH v5 23/28] checkout: clean up half-prepared directories in --to mode Nguyễn Thái Ngọc Duy
2014-03-08  2:48     ` [PATCH v5 24/28] checkout: detach if the branch is already checked out elsewhere Nguyễn Thái Ngọc Duy
2014-03-08  2:48     ` [PATCH v5 25/28] prune: strategies for linked checkouts Nguyễn Thái Ngọc Duy
2014-03-09  8:20       ` Eric Sunshine
2014-03-08  2:48     ` [PATCH v5 26/28] gc: style change -- no SP before closing bracket Nguyễn Thái Ngọc Duy
2014-03-08  2:48     ` [PATCH v5 27/28] gc: support prune --repos Nguyễn Thái Ngọc Duy
2014-03-08  2:48     ` [PATCH v5 28/28] count-objects: report unused files in $GIT_DIR/repos/ Nguyễn Thái Ngọc Duy
2014-03-09  8:21       ` Eric Sunshine
2014-03-09 11:25         ` Duy Nguyen
2014-03-09  8:18     ` [PATCH v5 00/28] Support multiple checkouts Eric Sunshine
2014-07-06 20:46     ` Max Kirillov
2014-07-07 10:25       ` Duy Nguyen
2014-07-07 10:49         ` Dennis Kaarsemaker
2014-07-07 17:32           ` Max Kirillov

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1392730814-19656-3-git-send-email-pclouds@gmail.com \
    --to=pclouds@gmail.com \
    --cc=git@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.