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: "Junio C Hamano" <gitster@pobox.com>,
	"Michael Haggerty" <mhagger@alum.mit.edu>,
	"Johannes Schindelin" <Johannes.Schindelin@gmx.de>,
	sbeller@google.com, novalis@novalis.org,
	"Nguyễn Thái Ngọc Duy" <pclouds@gmail.com>
Subject: [PATCH 04/11] files-backend: replace *git_path*() with files_path()
Date: Mon, 13 Feb 2017 22:20:04 +0700	[thread overview]
Message-ID: <20170213152011.12050-5-pclouds@gmail.com> (raw)
In-Reply-To: <20170213152011.12050-1-pclouds@gmail.com>

This centralizes all path rewriting of files-backend.c in one place so
we have easier time removing the path rewriting later. There could be
some hidden indirect git_path() though, I didn't audit the code to the
bottom.

Side note: set_worktree_head_symref() is a bad boy and should not be in
files-backend.c (probably should not exist in the first place). But
we'll leave it there until we have better multi-worktree support in refs
before we update it.

Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
---
 refs/files-backend.c | 193 ++++++++++++++++++++++++++-------------------------
 1 file changed, 98 insertions(+), 95 deletions(-)

diff --git a/refs/files-backend.c b/refs/files-backend.c
index 39217a2ca..c69e4fe84 100644
--- a/refs/files-backend.c
+++ b/refs/files-backend.c
@@ -165,12 +165,13 @@ static struct ref_entry *create_dir_entry(struct files_ref_store *ref_store,
 					  const char *dirname, size_t len,
 					  int incomplete);
 static void add_entry_to_dir(struct ref_dir *dir, struct ref_entry *entry);
-static int files_log_ref_write(const char *refname, const unsigned char *old_sha1,
+static int files_log_ref_write(struct files_ref_store *refs,
+			       const char *refname, const unsigned char *old_sha1,
 			       const unsigned char *new_sha1, const char *msg,
 			       int flags, struct strbuf *err);
 
-void files_path(struct files_ref_store *refs, struct strbuf *sb,
-		const char *fmt, ...) __attribute__((format (printf, 3, 4)));
+static void files_path(struct files_ref_store *refs, struct strbuf *sb,
+		       const char *fmt, ...) __attribute__((format (printf, 3, 4)));
 
 static struct ref_dir *get_ref_dir(struct ref_entry *entry)
 {
@@ -933,8 +934,8 @@ struct files_ref_store {
 /* Lock used for the main packed-refs file: */
 static struct lock_file packlock;
 
-void files_path(struct files_ref_store *refs, struct strbuf *sb,
-		const char *fmt, ...)
+static void files_path(struct files_ref_store *refs, struct strbuf *sb,
+		       const char *fmt, ...)
 {
 	struct strbuf tmp = STRBUF_INIT;
 	va_list vap;
@@ -1180,12 +1181,10 @@ static void read_packed_refs(FILE *f, struct ref_dir *dir)
 static struct packed_ref_cache *get_packed_ref_cache(struct files_ref_store *refs)
 {
 	char *packed_refs_file;
+	struct strbuf sb = STRBUF_INIT;
 
-	if (refs->submodule)
-		packed_refs_file = git_pathdup_submodule(refs->submodule,
-							 "packed-refs");
-	else
-		packed_refs_file = git_pathdup("packed-refs");
+	files_path(refs, &sb, "packed-refs");
+	packed_refs_file = strbuf_detach(&sb, NULL);
 
 	if (refs->packed &&
 	    !stat_validity_check(&refs->packed->validity, packed_refs_file))
@@ -1251,10 +1250,7 @@ static void read_loose_refs(const char *dirname, struct ref_dir *dir)
 	size_t path_baselen;
 	int err = 0;
 
-	if (refs->submodule)
-		err = strbuf_git_path_submodule(&path, refs->submodule, "%s", dirname);
-	else
-		strbuf_git_path(&path, "%s", dirname);
+	files_path(refs, &path, "%s", dirname);
 	path_baselen = path.len;
 
 	if (err) {
@@ -1396,10 +1392,7 @@ static int files_read_raw_ref(struct ref_store *ref_store,
 	*type = 0;
 	strbuf_reset(&sb_path);
 
-	if (refs->submodule)
-		strbuf_git_path_submodule(&sb_path, refs->submodule, "%s", refname);
-	else
-		strbuf_git_path(&sb_path, "%s", refname);
+	files_path(refs, &sb_path, "%s", refname);
 
 	path = sb_path.buf;
 
@@ -1587,7 +1580,7 @@ static int lock_raw_ref(struct files_ref_store *refs,
 	*lock_p = lock = xcalloc(1, sizeof(*lock));
 
 	lock->ref_name = xstrdup(refname);
-	strbuf_git_path(&ref_file, "%s", refname);
+	files_path(refs, &ref_file, "%s", refname);
 
 retry:
 	switch (safe_create_leading_directories(ref_file.buf)) {
@@ -2054,7 +2047,7 @@ static struct ref_lock *lock_ref_sha1_basic(struct files_ref_store *refs,
 	if (flags & REF_DELETING)
 		resolve_flags |= RESOLVE_REF_ALLOW_BAD_NAME;
 
-	strbuf_git_path(&ref_file, "%s", refname);
+	files_path(refs, &ref_file, "%s", refname);
 	resolved = !!resolve_ref_unsafe(refname, resolve_flags,
 					lock->old_oid.hash, type);
 	if (!resolved && errno == EISDIR) {
@@ -2199,7 +2192,7 @@ static int lock_packed_refs(struct files_ref_store *refs, int flags)
 		timeout_configured = 1;
 	}
 
-	strbuf_git_path(&sb, "packed-refs");
+	files_path(refs, &sb, "packed-refs");
 	ret = hold_lock_file_for_update_timeout(&packlock, sb.buf,
 						flags, timeout_value);
 	strbuf_release(&sb);
@@ -2345,7 +2338,7 @@ static int pack_if_possible_fn(struct ref_entry *entry, void *cb_data)
  * Remove empty parents, but spare refs/ and immediate subdirs.
  * Note: munges *name.
  */
-static void try_remove_empty_parents(char *name)
+static void try_remove_empty_parents(struct files_ref_store *refs, char *name)
 {
 	char *p, *q;
 	int i;
@@ -2370,7 +2363,7 @@ static void try_remove_empty_parents(char *name)
 		if (q == p)
 			break;
 		*q = '\0';
-		strbuf_git_path(&sb, "%s", name);
+		files_path(refs, &sb, "%s", name);
 		ret = rmdir(sb.buf);
 		strbuf_release(&sb);
 		if (ret)
@@ -2379,7 +2372,7 @@ static void try_remove_empty_parents(char *name)
 }
 
 /* make sure nobody touched the ref, and unlink */
-static void prune_ref(struct ref_to_prune *r)
+static void prune_ref(struct files_ref_store *refs, struct ref_to_prune *r)
 {
 	struct ref_transaction *transaction;
 	struct strbuf err = STRBUF_INIT;
@@ -2399,13 +2392,13 @@ static void prune_ref(struct ref_to_prune *r)
 	}
 	ref_transaction_free(transaction);
 	strbuf_release(&err);
-	try_remove_empty_parents(r->name);
+	try_remove_empty_parents(refs, r->name);
 }
 
-static void prune_refs(struct ref_to_prune *r)
+static void prune_refs(struct files_ref_store *refs, struct ref_to_prune *r)
 {
 	while (r) {
-		prune_ref(r);
+		prune_ref(refs, r);
 		r = r->next;
 	}
 }
@@ -2428,7 +2421,7 @@ static int files_pack_refs(struct ref_store *ref_store, unsigned int flags)
 	if (commit_packed_refs(refs))
 		die_errno("unable to overwrite old ref-pack file");
 
-	prune_refs(cbdata.ref_to_prune);
+	prune_refs(refs, cbdata.ref_to_prune);
 	return 0;
 }
 
@@ -2464,7 +2457,7 @@ static int repack_without_refs(struct files_ref_store *refs,
 	if (lock_packed_refs(refs, 0)) {
 		struct strbuf sb = STRBUF_INIT;
 
-		strbuf_git_path(&sb, "packed-refs");
+		files_path(refs, &sb, "packed-refs");
 		unable_to_lock_message(sb.buf, errno, err);
 		strbuf_release(&sb);
 		return -1;
@@ -2560,15 +2553,15 @@ static int files_delete_refs(struct ref_store *ref_store,
  */
 #define TMP_RENAMED_LOG  "logs/refs/.tmp-renamed-log"
 
-static int rename_tmp_log(const char *newrefname)
+static int rename_tmp_log(struct files_ref_store *refs, const char *newrefname)
 {
 	int attempts_remaining = 4;
 	struct strbuf path = STRBUF_INIT;
 	struct strbuf tmp_renamed_log = STRBUF_INIT;
 	int ret = -1;
 
-	strbuf_git_path(&path, "logs/%s", newrefname);
-	strbuf_git_path(&tmp_renamed_log, TMP_RENAMED_LOG);
+	files_path(refs, &path, "logs/%s", newrefname);
+	files_path(refs, &tmp_renamed_log, TMP_RENAMED_LOG);
  retry:
 	switch (safe_create_leading_directories_const(path.buf)) {
 	case SCLD_OK:
@@ -2657,7 +2650,7 @@ static int files_rename_ref(struct ref_store *ref_store,
 	int log, ret;
 	struct strbuf err = STRBUF_INIT;
 
-	strbuf_git_path(&sb_oldref, "logs/%s", oldrefname);
+	files_path(refs, &sb_oldref, "logs/%s", oldrefname);
 	log = !lstat(sb_oldref.buf, &loginfo);
 	strbuf_release(&sb_oldref);
 	if (log && S_ISLNK(loginfo.st_mode))
@@ -2673,8 +2666,8 @@ static int files_rename_ref(struct ref_store *ref_store,
 	if (!rename_ref_available(oldrefname, newrefname))
 		return 1;
 
-	strbuf_git_path(&sb_oldref, "logs/%s", oldrefname);
-	strbuf_git_path(&tmp_renamed_log, TMP_RENAMED_LOG);
+	files_path(refs, &sb_oldref, "logs/%s", oldrefname);
+	files_path(refs, &tmp_renamed_log, TMP_RENAMED_LOG);
 	ret = log && rename(sb_oldref.buf, tmp_renamed_log.buf);
 	strbuf_release(&sb_oldref);
 	strbuf_release(&tmp_renamed_log);
@@ -2701,7 +2694,7 @@ static int files_rename_ref(struct ref_store *ref_store,
 			struct strbuf path = STRBUF_INIT;
 			int result;
 
-			strbuf_git_path(&path, "%s", newrefname);
+			files_path(refs, &path, "%s", newrefname);
 			result = remove_empty_directories(&path);
 			strbuf_release(&path);
 
@@ -2715,7 +2708,7 @@ static int files_rename_ref(struct ref_store *ref_store,
 		}
 	}
 
-	if (log && rename_tmp_log(newrefname))
+	if (log && rename_tmp_log(refs, newrefname))
 		goto rollback;
 
 	logmoved = log;
@@ -2757,12 +2750,12 @@ static int files_rename_ref(struct ref_store *ref_store,
 	log_all_ref_updates = flag;
 
  rollbacklog:
-	strbuf_git_path(&sb_newref, "logs/%s", newrefname);
-	strbuf_git_path(&sb_oldref, "logs/%s", oldrefname);
+	files_path(refs, &sb_newref, "logs/%s", newrefname);
+	files_path(refs, &sb_oldref, "logs/%s", oldrefname);
 	if (logmoved && rename(sb_newref.buf, sb_oldref.buf))
 		error("unable to restore logfile %s from %s: %s",
 			oldrefname, newrefname, strerror(errno));
-	strbuf_git_path(&tmp_renamed_log, TMP_RENAMED_LOG);
+	files_path(refs, &tmp_renamed_log, TMP_RENAMED_LOG);
 	if (!logmoved && log &&
 	    rename(tmp_renamed_log.buf, sb_oldref.buf))
 		error("unable to restore logfile %s from "TMP_RENAMED_LOG": %s",
@@ -2818,11 +2811,13 @@ static int commit_ref(struct ref_lock *lock)
  * should_autocreate_reflog returns non-zero.  Otherwise, create it
  * regardless of the ref name.  Fill in *err and return -1 on failure.
  */
-static int log_ref_setup(const char *refname, struct strbuf *logfile, struct strbuf *err, int force_create)
+static int log_ref_setup(struct files_ref_store *refs, const char *refname,
+			 struct strbuf *logfile, struct strbuf *err,
+			 int force_create)
 {
 	int logfd, oflags = O_APPEND | O_WRONLY;
 
-	strbuf_git_path(logfile, "logs/%s", refname);
+	files_path(refs, logfile, "logs/%s", refname);
 	if (force_create || should_autocreate_reflog(refname)) {
 		if (safe_create_leading_directories(logfile->buf) < 0) {
 			strbuf_addf(err, "unable to create directory for '%s': "
@@ -2865,11 +2860,10 @@ static int files_create_reflog(struct ref_store *ref_store,
 {
 	int ret;
 	struct strbuf sb = STRBUF_INIT;
+	struct files_ref_store *refs =
+		files_downcast(ref_store, 0, "create_reflog");
 
-	/* Check validity (but we don't need the result): */
-	files_downcast(ref_store, 0, "create_reflog");
-
-	ret = log_ref_setup(refname, &sb, err, force_create);
+	ret = log_ref_setup(refs, refname, &sb, err, force_create);
 	strbuf_release(&sb);
 	return ret;
 }
@@ -2900,7 +2894,8 @@ static int log_ref_write_fd(int fd, const unsigned char *old_sha1,
 	return 0;
 }
 
-static int log_ref_write_1(const char *refname, const unsigned char *old_sha1,
+static int log_ref_write_1(struct files_ref_store *refs,
+			   const char *refname, const unsigned char *old_sha1,
 			   const unsigned char *new_sha1, const char *msg,
 			   struct strbuf *logfile, int flags,
 			   struct strbuf *err)
@@ -2910,7 +2905,7 @@ static int log_ref_write_1(const char *refname, const unsigned char *old_sha1,
 	if (log_all_ref_updates < 0)
 		log_all_ref_updates = !is_bare_repository();
 
-	result = log_ref_setup(refname, logfile, err, flags & REF_FORCE_CREATE_REFLOG);
+	result = log_ref_setup(refs, refname, logfile, err, flags & REF_FORCE_CREATE_REFLOG);
 
 	if (result)
 		return result;
@@ -2934,21 +2929,23 @@ static int log_ref_write_1(const char *refname, const unsigned char *old_sha1,
 	return 0;
 }
 
-static int log_ref_write(const char *refname, const unsigned char *old_sha1,
+static int log_ref_write(struct files_ref_store *refs,
+			 const char *refname, const unsigned char *old_sha1,
 			 const unsigned char *new_sha1, const char *msg,
 			 int flags, struct strbuf *err)
 {
-	return files_log_ref_write(refname, old_sha1, new_sha1, msg, flags,
-				   err);
+	return files_log_ref_write(refs, refname, old_sha1, new_sha1,
+				   msg, flags, err);
 }
 
-int files_log_ref_write(const char *refname, const unsigned char *old_sha1,
+int files_log_ref_write(struct files_ref_store *refs,
+			const char *refname, const unsigned char *old_sha1,
 			const unsigned char *new_sha1, const char *msg,
 			int flags, struct strbuf *err)
 {
 	struct strbuf sb = STRBUF_INIT;
-	int ret = log_ref_write_1(refname, old_sha1, new_sha1, msg, &sb, flags,
-				  err);
+	int ret = log_ref_write_1(refs, refname, old_sha1, new_sha1, msg,
+				  &sb, flags, err);
 	strbuf_release(&sb);
 	return ret;
 }
@@ -3005,7 +3002,8 @@ static int commit_ref_update(struct files_ref_store *refs,
 	files_assert_main_repository(refs, "commit_ref_update");
 
 	clear_loose_ref_cache(refs);
-	if (log_ref_write(lock->ref_name, lock->old_oid.hash, sha1, logmsg, 0, err)) {
+	if (log_ref_write(refs, lock->ref_name, lock->old_oid.hash,
+			  sha1, logmsg, 0, err)) {
 		char *old_msg = strbuf_detach(err, NULL);
 		strbuf_addf(err, "cannot update the ref '%s': %s",
 			    lock->ref_name, old_msg);
@@ -3036,8 +3034,8 @@ static int commit_ref_update(struct files_ref_store *refs,
 		if (head_ref && (head_flag & REF_ISSYMREF) &&
 		    !strcmp(head_ref, lock->ref_name)) {
 			struct strbuf log_err = STRBUF_INIT;
-			if (log_ref_write("HEAD", lock->old_oid.hash, sha1,
-					  logmsg, 0, &log_err)) {
+			if (log_ref_write(refs, "HEAD", lock->old_oid.hash,
+					  sha1, logmsg, 0, &log_err)) {
 				error("%s", log_err.buf);
 				strbuf_release(&log_err);
 			}
@@ -3069,23 +3067,26 @@ static int create_ref_symlink(struct ref_lock *lock, const char *target)
 	return ret;
 }
 
-static void update_symref_reflog(struct ref_lock *lock, const char *refname,
+static void update_symref_reflog(struct files_ref_store *refs,
+				 struct ref_lock *lock, const char *refname,
 				 const char *target, const char *logmsg)
 {
 	struct strbuf err = STRBUF_INIT;
 	unsigned char new_sha1[20];
 	if (logmsg && !read_ref(target, new_sha1) &&
-	    log_ref_write(refname, lock->old_oid.hash, new_sha1, logmsg, 0, &err)) {
+	    log_ref_write(refs, refname, lock->old_oid.hash,
+			  new_sha1, logmsg, 0, &err)) {
 		error("%s", err.buf);
 		strbuf_release(&err);
 	}
 }
 
-static int create_symref_locked(struct ref_lock *lock, const char *refname,
+static int create_symref_locked(struct files_ref_store *refs,
+				struct ref_lock *lock, const char *refname,
 				const char *target, const char *logmsg)
 {
 	if (prefer_symlink_refs && !create_ref_symlink(lock, target)) {
-		update_symref_reflog(lock, refname, target, logmsg);
+		update_symref_reflog(refs, lock, refname, target, logmsg);
 		return 0;
 	}
 
@@ -3093,7 +3094,7 @@ static int create_symref_locked(struct ref_lock *lock, const char *refname,
 		return error("unable to fdopen %s: %s",
 			     lock->lk->tempfile.filename.buf, strerror(errno));
 
-	update_symref_reflog(lock, refname, target, logmsg);
+	update_symref_reflog(refs, lock, refname, target, logmsg);
 
 	/* no error check; commit_ref will check ferror */
 	fprintf(lock->lk->tempfile.fp, "ref: %s\n", target);
@@ -3122,13 +3123,19 @@ static int files_create_symref(struct ref_store *ref_store,
 		return -1;
 	}
 
-	ret = create_symref_locked(lock, refname, target, logmsg);
+	ret = create_symref_locked(refs, lock, refname, target, logmsg);
 	unlock_ref(lock);
 	return ret;
 }
 
 int set_worktree_head_symref(const char *gitdir, const char *target)
 {
+	/*
+	 * FIXME: this obviously will not work well for future refs
+	 * backends. This function needs to die.
+	 */
+	struct files_ref_store *refs =
+		files_downcast(get_ref_store(NULL), 0, "set_head_symref");
 	static struct lock_file head_lock;
 	struct ref_lock *lock;
 	struct strbuf head_path = STRBUF_INIT;
@@ -3155,7 +3162,7 @@ int set_worktree_head_symref(const char *gitdir, const char *target)
 	lock->lk = &head_lock;
 	lock->ref_name = xstrdup(head_rel);
 
-	ret = create_symref_locked(lock, head_rel, target, NULL);
+	ret = create_symref_locked(refs, lock, head_rel, target, NULL);
 
 	unlock_ref(lock); /* will free lock */
 	strbuf_release(&head_path);
@@ -3165,14 +3172,13 @@ int set_worktree_head_symref(const char *gitdir, const char *target)
 static int files_reflog_exists(struct ref_store *ref_store,
 			       const char *refname)
 {
+	struct files_ref_store *refs =
+		files_downcast(ref_store, 0, "reflog_exists");
 	struct strbuf sb = STRBUF_INIT;
 	struct stat st;
 	int ret;
 
-	/* Check validity (but we don't need the result): */
-	files_downcast(ref_store, 0, "reflog_exists");
-
-	strbuf_git_path(&sb, "logs/%s", refname);
+	files_path(refs, &sb, "logs/%s", refname);
 	ret = !lstat(sb.buf, &st) && S_ISREG(st.st_mode);
 	strbuf_release(&sb);
 	return ret;
@@ -3181,13 +3187,12 @@ static int files_reflog_exists(struct ref_store *ref_store,
 static int files_delete_reflog(struct ref_store *ref_store,
 			       const char *refname)
 {
+	struct files_ref_store *refs =
+		files_downcast(ref_store, 0, "delete_reflog");
 	struct strbuf sb = STRBUF_INIT;
 	int ret;
 
-	/* Check validity (but we don't need the result): */
-	files_downcast(ref_store, 0, "delete_reflog");
-
-	strbuf_git_path(&sb, "logs/%s", refname);
+	files_path(refs, &sb, "logs/%s", refname);
 	ret = remove_path(sb.buf);
 	strbuf_release(&sb);
 	return ret;
@@ -3237,15 +3242,14 @@ static int files_for_each_reflog_ent_reverse(struct ref_store *ref_store,
 					     each_reflog_ent_fn fn,
 					     void *cb_data)
 {
+	struct files_ref_store *refs =
+		files_downcast(ref_store, 0, "for_each_reflog_ent_reverse");
 	struct strbuf sb = STRBUF_INIT;
 	FILE *logfp;
 	long pos;
 	int ret = 0, at_tail = 1;
 
-	/* Check validity (but we don't need the result): */
-	files_downcast(ref_store, 0, "for_each_reflog_ent_reverse");
-
-	strbuf_git_path(&sb, "logs/%s", refname);
+	files_path(refs, &sb, "logs/%s", refname);
 	logfp = fopen(sb.buf, "r");
 	strbuf_release(&sb);
 	if (!logfp)
@@ -3346,14 +3350,13 @@ static int files_for_each_reflog_ent(struct ref_store *ref_store,
 				     const char *refname,
 				     each_reflog_ent_fn fn, void *cb_data)
 {
+	struct files_ref_store *refs =
+		files_downcast(ref_store, 0, "for_each_reflog_ent");
 	FILE *logfp;
 	struct strbuf sb = STRBUF_INIT;
 	int ret = 0;
 
-	/* Check validity (but we don't need the result): */
-	files_downcast(ref_store, 0, "for_each_reflog_ent");
-
-	strbuf_git_path(&sb, "logs/%s", refname);
+	files_path(refs, &sb, "logs/%s", refname);
 	logfp = fopen(sb.buf, "r");
 	strbuf_release(&sb);
 	if (!logfp)
@@ -3435,15 +3438,14 @@ static struct ref_iterator_vtable files_reflog_iterator_vtable = {
 
 static struct ref_iterator *files_reflog_iterator_begin(struct ref_store *ref_store)
 {
+	struct files_ref_store *refs =
+		files_downcast(ref_store, 0, "reflog_iterator_begin");
 	struct files_reflog_iterator *iter = xcalloc(1, sizeof(*iter));
 	struct ref_iterator *ref_iterator = &iter->base;
 	struct strbuf sb = STRBUF_INIT;
 
-	/* Check validity (but we don't need the result): */
-	files_downcast(ref_store, 0, "reflog_iterator_begin");
-
 	base_ref_iterator_init(ref_iterator, &files_reflog_iterator_vtable);
-	strbuf_git_path(&sb, "logs");
+	files_path(refs, &sb, "logs");
 	iter->dir_iterator = dir_iterator_begin(sb.buf);
 	strbuf_release(&sb);
 	return ref_iterator;
@@ -3867,8 +3869,8 @@ static int files_transaction_commit(struct ref_store *ref_store,
 
 		if (update->flags & REF_NEEDS_COMMIT ||
 		    update->flags & REF_LOG_ONLY) {
-			if (log_ref_write(lock->ref_name, lock->old_oid.hash,
-					  update->new_sha1,
+			if (log_ref_write(refs, lock->ref_name,
+					  lock->old_oid.hash, update->new_sha1,
 					  update->msg, update->flags, err)) {
 				char *old_msg = strbuf_detach(err, NULL);
 
@@ -3917,7 +3919,7 @@ static int files_transaction_commit(struct ref_store *ref_store,
 	for_each_string_list_item(ref_to_delete, &refs_to_delete) {
 		struct strbuf sb = STRBUF_INIT;
 
-		strbuf_git_path(&sb, "logs/%s", ref_to_delete->string);
+		files_path(refs, &sb, "logs/%s", ref_to_delete->string);
 		unlink_or_warn(sb.buf);
 		strbuf_release(&sb);
 	}
@@ -4079,6 +4081,7 @@ static int files_reflog_expire(struct ref_store *ref_store,
 	int status = 0;
 	int type;
 	struct strbuf err = STRBUF_INIT;
+	struct strbuf sb = STRBUF_INIT;
 
 	memset(&cb, 0, sizeof(cb));
 	cb.flags = flags;
@@ -4103,7 +4106,8 @@ static int files_reflog_expire(struct ref_store *ref_store,
 		return 0;
 	}
 
-	log_file = git_pathdup("logs/%s", refname);
+	files_path(refs, &sb, "logs/%s", refname);
+	log_file = strbuf_detach(&sb, NULL);
 	if (!(flags & EXPIRE_REFLOGS_DRY_RUN)) {
 		/*
 		 * Even though holding $GIT_DIR/logs/$reflog.lock has
@@ -4174,25 +4178,24 @@ static int files_reflog_expire(struct ref_store *ref_store,
 
 static int files_init_db(struct ref_store *ref_store, struct strbuf *err)
 {
+	struct files_ref_store *refs =
+		files_downcast(ref_store, 0, "init_db");
 	struct strbuf sb = STRBUF_INIT;
 
-	/* Check validity (but we don't need the result): */
-	files_downcast(ref_store, 0, "init_db");
-
 	/*
 	 * Create .git/refs/{heads,tags}
 	 */
-	strbuf_git_path(&sb, "refs/heads");
+	files_path(refs, &sb, "refs/heads");
 	safe_create_dir(sb.buf, 1);
 	strbuf_reset(&sb);
-	strbuf_git_path(&sb, "refs/tags");
+	files_path(refs, &sb, "refs/tags");
 	safe_create_dir(sb.buf, 1);
 	strbuf_reset(&sb);
 	if (get_shared_repository()) {
-		strbuf_git_path(&sb, "refs/heads");
+		files_path(refs, &sb, "refs/heads");
 		adjust_shared_perm(sb.buf);
 		strbuf_reset(&sb);
-		strbuf_git_path(&sb, "refs/tags");
+		files_path(refs, &sb, "refs/tags");
 		adjust_shared_perm(sb.buf);
 	}
 	strbuf_release(&sb);
-- 
2.11.0.157.gd943d85


  parent reply	other threads:[~2017-02-13 15:20 UTC|newest]

Thread overview: 250+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-02-13 15:20 [PATCH/RFC 00/11] Remove submodule from files-backend.c Nguyễn Thái Ngọc Duy
2017-02-13 15:20 ` [PATCH 01/11] refs-internal.c: make files_log_ref_write() static Nguyễn Thái Ngọc Duy
2017-02-13 20:14   ` Ramsay Jones
2017-02-14  9:23     ` Duy Nguyen
2017-02-13 15:20 ` [PATCH 02/11] files-backend: convert git_path() to strbuf_git_path() Nguyễn Thái Ngọc Duy
2017-02-13 20:38   ` Ramsay Jones
2017-02-13 15:20 ` [PATCH 03/11] files-backend: add files_path() Nguyễn Thái Ngọc Duy
2017-02-13 20:43   ` Ramsay Jones
2017-02-13 15:20 ` Nguyễn Thái Ngọc Duy [this message]
2017-02-13 20:58   ` [PATCH 04/11] files-backend: replace *git_path*() with files_path() Ramsay Jones
2017-02-14  9:43     ` Duy Nguyen
2017-02-13 15:20 ` [PATCH 05/11] refs.c: share is_per_worktree_ref() to files-backend.c Nguyễn Thái Ngọc Duy
2017-02-13 15:20 ` [PATCH 06/11] refs-internal.h: correct is_per_worktree_ref() Nguyễn Thái Ngọc Duy
2017-02-13 22:37   ` Stefan Beller
2017-02-14  9:40     ` Duy Nguyen
2017-02-14 17:40       ` Stefan Beller
2017-02-13 15:20 ` [PATCH 07/11] files-backend: remove the use of git_path() Nguyễn Thái Ngọc Duy
2017-02-13 23:09   ` Stefan Beller
2017-02-14  9:38     ` Duy Nguyen
2017-02-13 15:20 ` [PATCH 08/11] refs.c: factor submodule code out of get_ref_store() Nguyễn Thái Ngọc Duy
2017-02-13 23:13   ` Stefan Beller
2017-02-13 15:20 ` [PATCH 09/11] refs: move submodule code out of files-backend.c Nguyễn Thái Ngọc Duy
2017-02-13 23:35   ` Stefan Beller
2017-02-14  9:32     ` Duy Nguyen
2017-02-13 15:20 ` [PATCH 10/11] files-backend: remove submodule_allowed from files_downcast() Nguyễn Thái Ngọc Duy
2017-02-13 23:44   ` Stefan Beller
2017-02-13 15:20 ` [PATCH 11/11] refs: split and make get_*_ref_store() public API Nguyễn Thái Ngọc Duy
2017-02-13 23:55   ` Stefan Beller
2017-02-14 10:04     ` Duy Nguyen
2017-02-14 18:24       ` Junio C Hamano
2017-02-15  0:44         ` Duy Nguyen
2017-02-15  1:16           ` Junio C Hamano
2017-02-14 18:43       ` Stefan Beller
2017-02-16 11:48 ` [PATCH v2 00/16] Remove submodule from files-backend.c Nguyễn Thái Ngọc Duy
2017-02-16 11:48   ` [PATCH v2 01/16] refs-internal.c: make files_log_ref_write() static Nguyễn Thái Ngọc Duy
2017-02-16 11:48   ` [PATCH v2 02/16] files-backend: convert git_path() to strbuf_git_path() Nguyễn Thái Ngọc Duy
2017-02-16 11:48   ` [PATCH v2 03/16] files-backend: add files_path() Nguyễn Thái Ngọc Duy
2017-02-16 11:48   ` [PATCH v2 04/16] files-backend: replace *git_path*() with files_path() Nguyễn Thái Ngọc Duy
2017-02-20 11:23     ` Michael Haggerty
2017-02-20 12:25       ` Duy Nguyen
2017-02-16 11:48   ` [PATCH v2 05/16] refs.c: share is_per_worktree_ref() to files-backend.c Nguyễn Thái Ngọc Duy
2017-02-16 11:48   ` [PATCH v2 06/16] refs-internal.h: correct is_per_worktree_ref() Nguyễn Thái Ngọc Duy
2017-02-16 11:48   ` [PATCH v2 07/16] files-backend: remove the use of git_path() Nguyễn Thái Ngọc Duy
2017-02-16 11:48   ` [PATCH v2 08/16] refs.c: introduce get_main_ref_store() Nguyễn Thái Ngọc Duy
2017-02-16 11:48   ` [PATCH v2 09/16] refs: rename lookup_ref_store() to lookup_submodule_ref_store() Nguyễn Thái Ngọc Duy
2017-02-16 11:48   ` [PATCH v2 10/16] refs.c: flatten get_ref_store() a bit Nguyễn Thái Ngọc Duy
2017-02-16 11:48   ` [PATCH v2 11/16] refs.c: kill register_ref_store(), add register_submodule_ref_store() Nguyễn Thái Ngọc Duy
2017-02-16 11:48   ` [PATCH v2 12/16] refs.c: make get_main_ref_store() public and use it Nguyễn Thái Ngọc Duy
2017-02-16 11:48   ` [PATCH v2 13/16] path.c: move some code out of strbuf_git_path_submodule() Nguyễn Thái Ngọc Duy
2017-02-16 11:48   ` [PATCH v2 14/16] refs: move submodule code out of files-backend.c Nguyễn Thái Ngọc Duy
2017-02-16 11:48   ` [PATCH v2 15/16] files-backend: remove submodule_allowed from files_downcast() Nguyễn Thái Ngọc Duy
2017-02-16 11:48   ` [PATCH v2 16/16] refs: rename get_ref_store() to get_submodule_ref_store() and make it public Nguyễn Thái Ngọc Duy
2017-02-16 22:55   ` [PATCH v2 00/16] Remove submodule from files-backend.c Stefan Beller
2017-02-17 14:04   ` [PATCH v3 " Nguyễn Thái Ngọc Duy
2017-02-17 14:04     ` [PATCH v3 01/16] refs-internal.c: make files_log_ref_write() static Nguyễn Thái Ngọc Duy
2017-02-17 14:04     ` [PATCH v3 02/16] files-backend: convert git_path() to strbuf_git_path() Nguyễn Thái Ngọc Duy
2017-02-17 14:04     ` [PATCH v3 03/16] files-backend: add files_path() Nguyễn Thái Ngọc Duy
2017-02-17 18:57       ` Junio C Hamano
2017-02-17 14:04     ` [PATCH v3 04/16] files-backend: replace *git_path*() with files_path() Nguyễn Thái Ngọc Duy
2017-02-17 19:27       ` Junio C Hamano
2017-02-17 14:04     ` [PATCH v3 05/16] refs.c: share is_per_worktree_ref() to files-backend.c Nguyễn Thái Ngọc Duy
2017-02-17 14:04     ` [PATCH v3 06/16] refs-internal.h: correct is_per_worktree_ref() Nguyễn Thái Ngọc Duy
2017-02-17 14:04     ` [PATCH v3 07/16] files-backend: remove the use of git_path() Nguyễn Thái Ngọc Duy
2017-02-17 14:04     ` [PATCH v3 08/16] refs.c: introduce get_main_ref_store() Nguyễn Thái Ngọc Duy
2017-02-17 14:04     ` [PATCH v3 09/16] refs: rename lookup_ref_store() to lookup_submodule_ref_store() Nguyễn Thái Ngọc Duy
2017-02-17 14:04     ` [PATCH v3 10/16] refs.c: flatten get_ref_store() a bit Nguyễn Thái Ngọc Duy
2017-02-17 14:04     ` [PATCH v3 11/16] refs.c: kill register_ref_store(), add register_submodule_ref_store() Nguyễn Thái Ngọc Duy
2017-02-17 19:29       ` Junio C Hamano
2017-02-17 14:04     ` [PATCH v3 12/16] refs.c: make get_main_ref_store() public and use it Nguyễn Thái Ngọc Duy
2017-02-17 14:04     ` [PATCH v3 13/16] path.c: move some code out of strbuf_git_path_submodule() Nguyễn Thái Ngọc Duy
2017-02-17 14:04     ` [PATCH v3 14/16] refs: move submodule code out of files-backend.c Nguyễn Thái Ngọc Duy
2017-02-17 14:04     ` [PATCH v3 15/16] files-backend: remove submodule_allowed from files_downcast() Nguyễn Thái Ngọc Duy
2017-02-17 14:04     ` [PATCH v3 16/16] refs: rename get_ref_store() to get_submodule_ref_store() and make it public Nguyễn Thái Ngọc Duy
2017-02-18 13:32     ` [PATCH v4 00/15] Remove submodule from files-backend.c Nguyễn Thái Ngọc Duy
2017-02-18 13:32       ` [PATCH v4 01/15] refs-internal.c: make files_log_ref_write() static Nguyễn Thái Ngọc Duy
2017-02-18 13:32       ` [PATCH v4 02/15] files-backend: convert git_path() to strbuf_git_path() Nguyễn Thái Ngọc Duy
2017-02-18 13:32       ` [PATCH v4 03/15] files-backend: add files_path() Nguyễn Thái Ngọc Duy
2017-02-18 13:32       ` [PATCH v4 04/15] files-backend: replace *git_path*() with files_path() Nguyễn Thái Ngọc Duy
2017-02-18 13:32       ` [PATCH v4 05/15] refs.c: share is_per_worktree_ref() to files-backend.c Nguyễn Thái Ngọc Duy
2017-02-18 13:32       ` [PATCH v4 06/15] files-backend: remove the use of git_path() Nguyễn Thái Ngọc Duy
2017-02-20 11:34         ` Michael Haggerty
2017-02-20 12:31           ` Duy Nguyen
2017-02-18 13:32       ` [PATCH v4 07/15] refs.c: introduce get_main_ref_store() Nguyễn Thái Ngọc Duy
2017-02-18 13:32       ` [PATCH v4 08/15] refs: rename lookup_ref_store() to lookup_submodule_ref_store() Nguyễn Thái Ngọc Duy
2017-02-18 13:32       ` [PATCH v4 09/15] refs.c: flatten get_ref_store() a bit Nguyễn Thái Ngọc Duy
2017-02-18 13:32       ` [PATCH v4 10/15] refs.c: kill register_ref_store(), add register_submodule_ref_store() Nguyễn Thái Ngọc Duy
2017-02-18 13:32       ` [PATCH v4 11/15] refs.c: make get_main_ref_store() public and use it Nguyễn Thái Ngọc Duy
2017-02-20 12:37         ` Michael Haggerty
2017-02-18 13:33       ` [PATCH v4 12/15] path.c: move some code out of strbuf_git_path_submodule() Nguyễn Thái Ngọc Duy
2017-02-18 13:33       ` [PATCH v4 13/15] refs: move submodule code out of files-backend.c Nguyễn Thái Ngọc Duy
2017-02-18 13:33       ` [PATCH v4 14/15] files-backend: remove submodule_allowed from files_downcast() Nguyễn Thái Ngọc Duy
2017-02-20 12:11         ` Michael Haggerty
2017-02-20 12:21           ` Duy Nguyen
2017-02-20 12:30             ` Michael Haggerty
2017-02-20 12:33               ` Duy Nguyen
2017-02-20 12:38                 ` Michael Haggerty
2017-02-21 13:25           ` Duy Nguyen
2017-02-18 13:33       ` [PATCH v4 15/15] refs: rename get_ref_store() to get_submodule_ref_store() and make it public Nguyễn Thái Ngọc Duy
2017-02-20 12:42       ` [PATCH v4 00/15] Remove submodule from files-backend.c Michael Haggerty
2017-02-20 12:47         ` Duy Nguyen
2017-02-22 14:04       ` [PATCH v5 00/24] " Nguyễn Thái Ngọc Duy
2017-02-22 14:04         ` [PATCH v5 01/24] refs.h: add forward declaration for structs used in this file Nguyễn Thái Ngọc Duy
2017-02-22 18:18           ` Stefan Beller
2017-02-23  9:26             ` Duy Nguyen
2017-02-22 14:04         ` [PATCH v5 02/24] files-backend: make files_log_ref_write() static Nguyễn Thái Ngọc Duy
2017-02-22 14:04         ` [PATCH v5 03/24] files-backend: add and use files_packed_refs_path() Nguyễn Thái Ngọc Duy
2017-02-22 14:04         ` [PATCH v5 04/24] files-backend: convert git_path() to strbuf_git_path() Nguyễn Thái Ngọc Duy
2017-02-28 17:06           ` Michael Haggerty
2017-03-02 12:52             ` Duy Nguyen
2017-02-22 14:04         ` [PATCH v5 05/24] files-backend: move "logs/" out of TMP_RENAMED_LOG Nguyễn Thái Ngọc Duy
2017-02-28 17:19           ` Michael Haggerty
2017-03-02 13:07             ` Duy Nguyen
2017-02-22 14:04         ` [PATCH v5 06/24] files-backend: add and use files_reflog_path() Nguyễn Thái Ngọc Duy
2017-02-22 14:04         ` [PATCH v5 07/24] files-backend: add and use files_refname_path() Nguyễn Thái Ngọc Duy
2017-02-28 17:41           ` Michael Haggerty
2017-03-02 12:46             ` Duy Nguyen
2017-03-09 12:24           ` Michael Haggerty
2017-02-22 14:04         ` [PATCH v5 08/24] files-backend: remove the use of git_path() Nguyễn Thái Ngọc Duy
2017-02-28 17:50           ` Michael Haggerty
2017-03-02 12:43             ` Duy Nguyen
2017-02-22 14:04         ` [PATCH v5 09/24] refs.c: introduce get_main_ref_store() Nguyễn Thái Ngọc Duy
2017-02-28 17:51           ` Michael Haggerty
2017-03-01 12:06             ` Duy Nguyen
2017-02-22 14:04         ` [PATCH v5 10/24] refs: rename lookup_ref_store() to lookup_submodule_ref_store() Nguyễn Thái Ngọc Duy
2017-02-22 14:04         ` [PATCH v5 11/24] refs.c: flatten get_ref_store() a bit Nguyễn Thái Ngọc Duy
2017-02-22 14:04         ` [PATCH v5 12/24] refs.c: kill register_ref_store(), add register_submodule_ref_store() Nguyễn Thái Ngọc Duy
2017-02-28 18:03           ` Michael Haggerty
2017-03-01 12:00             ` Duy Nguyen
2017-03-01 12:31               ` Michael Haggerty
2017-02-22 14:04         ` [PATCH v5 13/24] refs.c: make get_main_ref_store() public and use it Nguyễn Thái Ngọc Duy
2017-02-28 18:06           ` Michael Haggerty
2017-02-22 14:04         ` [PATCH v5 14/24] path.c: move some code out of strbuf_git_path_submodule() Nguyễn Thái Ngọc Duy
2017-02-28 18:14           ` Michael Haggerty
2017-02-22 14:04         ` [PATCH v5 15/24] refs: move submodule code out of files-backend.c Nguyễn Thái Ngọc Duy
2017-03-03 14:32           ` Michael Haggerty
2017-02-22 14:04         ` [PATCH v5 16/24] files-backend: replace submodule_allowed check in files_downcast() Nguyễn Thái Ngọc Duy
2017-03-03 14:49           ` Michael Haggerty
2017-02-22 14:04         ` [PATCH v5 17/24] refs: rename get_ref_store() to get_submodule_ref_store() and make it public Nguyễn Thái Ngọc Duy
2017-02-22 14:04         ` [PATCH v5 18/24] refs: add new ref-store api Nguyễn Thái Ngọc Duy
2017-02-22 14:04         ` [PATCH v5 19/24] refs: new transaction related " Nguyễn Thái Ngọc Duy
2017-03-03 15:48           ` Michael Haggerty
2017-02-22 14:04         ` [PATCH v5 20/24] files-backend: avoid ref api targetting main ref store Nguyễn Thái Ngọc Duy
2017-03-03 16:03           ` Michael Haggerty
2017-02-22 14:04         ` [PATCH v5 21/24] refs: delete pack_refs() in favor of refs_pack_refs() Nguyễn Thái Ngọc Duy
2017-02-22 14:04         ` [PATCH v5 22/24] t/helper: add test-ref-store to test ref-store functions Nguyễn Thái Ngọc Duy
2017-02-22 14:04         ` [PATCH v5 23/24] t1405: some basic tests on main ref store Nguyễn Thái Ngọc Duy
2017-03-03 16:43           ` Michael Haggerty
2017-03-06 12:30             ` Duy Nguyen
2017-02-22 14:04         ` [PATCH v5 24/24] t1406: new tests for submodule " Nguyễn Thái Ngọc Duy
2017-02-28 17:34           ` Michael Haggerty
2017-03-01 12:34             ` Duy Nguyen
2017-03-01 15:11               ` Michael Haggerty
2017-03-02  6:13                 ` Duy Nguyen
2017-03-02  8:16                   ` Michael Haggerty
2017-03-02 12:38                     ` Duy Nguyen
2017-03-03 16:51           ` Michael Haggerty
2017-02-22 17:18         ` [PATCH v5 00/24] Remove submodule from files-backend.c Junio C Hamano
2017-02-22 21:04           ` Junio C Hamano
2017-02-28 18:20         ` Michael Haggerty
2017-02-28 20:52           ` Junio C Hamano
2017-03-03 16:54         ` Michael Haggerty
2017-03-18  2:03         ` [PATCH v6 00/27] " Nguyễn Thái Ngọc Duy
2017-03-18  2:03           ` [PATCH v6 01/27] refs.h: add forward declaration for structs used in this file Nguyễn Thái Ngọc Duy
2017-03-18  2:03           ` [PATCH v6 02/27] files-backend: make files_log_ref_write() static Nguyễn Thái Ngọc Duy
2017-03-19 19:10             ` Michael Haggerty
2017-03-19 20:35               ` Ramsay Jones
2017-03-18  2:03           ` [PATCH v6 03/27] files-backend: delete dead code in files_init_db() Nguyễn Thái Ngọc Duy
2017-03-19 19:11             ` Michael Haggerty
2017-03-18  2:03           ` [PATCH v6 04/27] files-backend: add and use files_packed_refs_path() Nguyễn Thái Ngọc Duy
2017-03-18  2:03           ` [PATCH v6 05/27] files-backend: make sure files_rename_ref() always reach the end Nguyễn Thái Ngọc Duy
2017-03-18  2:03           ` [PATCH v6 06/27] files-backend: convert git_path() to strbuf_git_path() Nguyễn Thái Ngọc Duy
2017-03-18  2:03           ` [PATCH v6 07/27] files-backend: move "logs/" out of TMP_RENAMED_LOG Nguyễn Thái Ngọc Duy
2017-03-18  2:03           ` [PATCH v6 08/27] files-backend: add and use files_reflog_path() Nguyễn Thái Ngọc Duy
2017-03-18  2:03           ` [PATCH v6 09/27] files-backend: add and use files_refname_path() Nguyễn Thái Ngọc Duy
2017-03-19 20:32             ` Michael Haggerty
2017-03-18  2:03           ` [PATCH v6 10/27] files-backend: remove the use of git_path() Nguyễn Thái Ngọc Duy
2017-03-18  2:03           ` [PATCH v6 11/27] refs.c: introduce get_main_ref_store() Nguyễn Thái Ngọc Duy
2017-03-19 20:38             ` Michael Haggerty
2017-03-18  2:03           ` [PATCH v6 12/27] refs: rename lookup_ref_store() to lookup_submodule_ref_store() Nguyễn Thái Ngọc Duy
2017-03-18  2:03           ` [PATCH v6 13/27] refs.c: flatten get_ref_store() a bit Nguyễn Thái Ngọc Duy
2017-03-18  2:03           ` [PATCH v6 14/27] refs.c: kill register_ref_store(), add register_submodule_ref_store() Nguyễn Thái Ngọc Duy
2017-03-18  2:03           ` [PATCH v6 15/27] refs.c: make get_main_ref_store() public and use it Nguyễn Thái Ngọc Duy
2017-03-18  2:03           ` [PATCH v6 16/27] path.c: move some code out of strbuf_git_path_submodule() Nguyễn Thái Ngọc Duy
2017-03-19 20:47             ` Michael Haggerty
2017-03-20 12:11               ` Duy Nguyen
2017-03-18  2:03           ` [PATCH v6 17/27] refs: move submodule code out of files-backend.c Nguyễn Thái Ngọc Duy
2017-03-19 21:05             ` Michael Haggerty
2017-03-20 12:09               ` Duy Nguyen
2017-03-20 14:29                 ` Michael Haggerty
2017-03-18  2:03           ` [PATCH v6 18/27] files-backend: replace submodule_allowed check in files_downcast() Nguyễn Thái Ngọc Duy
2017-03-19 21:18             ` Michael Haggerty
2017-03-26  2:16               ` Duy Nguyen
2017-03-29 10:55                 ` Michael Haggerty
2017-03-18  2:03           ` [PATCH v6 19/27] refs: rename get_ref_store() to get_submodule_ref_store() and make it public Nguyễn Thái Ngọc Duy
2017-03-18  2:03           ` [PATCH v6 20/27] refs: add new ref-store api Nguyễn Thái Ngọc Duy
2017-03-18  2:03           ` [PATCH v6 21/27] refs: new transaction related " Nguyễn Thái Ngọc Duy
2017-03-18  2:03           ` [PATCH v6 22/27] files-backend: avoid ref api targetting main ref store Nguyễn Thái Ngọc Duy
2017-03-18  2:03           ` [PATCH v6 23/27] refs: delete pack_refs() in favor of refs_pack_refs() Nguyễn Thái Ngọc Duy
2017-03-18  2:03           ` [PATCH v6 24/27] t/helper: add test-ref-store to test ref-store functions Nguyễn Thái Ngọc Duy
2017-03-22 13:34             ` Jeff King
2017-03-22 13:37               ` Jeff King
2017-03-25 11:54                 ` Duy Nguyen
2017-03-18  2:03           ` [PATCH v6 25/27] t1405: some basic tests on main ref store Nguyễn Thái Ngọc Duy
2017-03-18  2:03           ` [PATCH v6 26/27] t1406: new tests for submodule " Nguyễn Thái Ngọc Duy
2017-03-20  5:27             ` Michael Haggerty
2017-03-20 12:05               ` Duy Nguyen
2017-03-18  2:03           ` [PATCH v6 27/27] refs.h: add a note about sorting order of for_each_ref_* Nguyễn Thái Ngọc Duy
2017-03-20  5:37           ` [PATCH v6 00/27] Remove submodule from files-backend.c Michael Haggerty
2017-03-20 15:53             ` Junio C Hamano
2017-03-26  2:42           ` [PATCH v7 00/28] " Nguyễn Thái Ngọc Duy
2017-03-26  2:42             ` [PATCH v7 01/28] refs.h: add forward declaration for structs used in this file Nguyễn Thái Ngọc Duy
2017-03-26  2:42             ` [PATCH v7 02/28] files-backend: make files_log_ref_write() static Nguyễn Thái Ngọc Duy
2017-03-26  2:42             ` [PATCH v7 03/28] files-backend.c: delete dead code in files_ref_iterator_begin() Nguyễn Thái Ngọc Duy
2017-03-26  2:42             ` [PATCH v7 04/28] files-backend: delete dead code in files_init_db() Nguyễn Thái Ngọc Duy
2017-03-26  2:42             ` [PATCH v7 05/28] files-backend: add and use files_packed_refs_path() Nguyễn Thái Ngọc Duy
2017-03-26  2:42             ` [PATCH v7 06/28] files-backend: make sure files_rename_ref() always reach the end Nguyễn Thái Ngọc Duy
2017-03-26  2:42             ` [PATCH v7 07/28] files-backend: convert git_path() to strbuf_git_path() Nguyễn Thái Ngọc Duy
2017-03-26  2:42             ` [PATCH v7 08/28] files-backend: move "logs/" out of TMP_RENAMED_LOG Nguyễn Thái Ngọc Duy
2017-03-26  2:42             ` [PATCH v7 09/28] files-backend: add and use files_reflog_path() Nguyễn Thái Ngọc Duy
2017-03-26  2:42             ` [PATCH v7 10/28] files-backend: add and use files_ref_path() Nguyễn Thái Ngọc Duy
2017-03-26  2:42             ` [PATCH v7 11/28] files-backend: remove the use of git_path() Nguyễn Thái Ngọc Duy
2017-03-26  2:42             ` [PATCH v7 12/28] refs.c: introduce get_main_ref_store() Nguyễn Thái Ngọc Duy
2017-03-26  2:42             ` [PATCH v7 13/28] refs: rename lookup_ref_store() to lookup_submodule_ref_store() Nguyễn Thái Ngọc Duy
2017-03-26  2:42             ` [PATCH v7 14/28] refs.c: flatten get_ref_store() a bit Nguyễn Thái Ngọc Duy
2017-03-26  2:42             ` [PATCH v7 15/28] refs.c: kill register_ref_store(), add register_submodule_ref_store() Nguyễn Thái Ngọc Duy
2017-03-26  2:42             ` [PATCH v7 16/28] refs.c: make get_main_ref_store() public and use it Nguyễn Thái Ngọc Duy
2017-03-26  2:42             ` [PATCH v7 17/28] path.c: move some code out of strbuf_git_path_submodule() Nguyễn Thái Ngọc Duy
2017-03-26  2:42             ` [PATCH v7 18/28] refs: move submodule code out of files-backend.c Nguyễn Thái Ngọc Duy
2017-03-26  2:42             ` [PATCH v7 19/28] files-backend: replace submodule_allowed check in files_downcast() Nguyễn Thái Ngọc Duy
2017-04-01  4:02               ` Michael Haggerty
2017-04-07 12:41                 ` Duy Nguyen
2017-04-14 10:44                   ` Junio C Hamano
2017-04-14 13:02                     ` Duy Nguyen
2017-03-26  2:42             ` [PATCH v7 20/28] refs: rename get_ref_store() to get_submodule_ref_store() and make it public Nguyễn Thái Ngọc Duy
2017-03-26  2:42             ` [PATCH v7 21/28] refs: add new ref-store api Nguyễn Thái Ngọc Duy
2017-03-26  2:42             ` [PATCH v7 22/28] refs: new transaction related " Nguyễn Thái Ngọc Duy
2017-04-01  4:54               ` Michael Haggerty
2017-04-07 12:29                 ` Duy Nguyen
2017-03-26  2:42             ` [PATCH v7 23/28] files-backend: avoid ref api targetting main ref store Nguyễn Thái Ngọc Duy
2017-04-01  5:05               ` Michael Haggerty
2017-03-26  2:42             ` [PATCH v7 24/28] refs: delete pack_refs() in favor of refs_pack_refs() Nguyễn Thái Ngọc Duy
2017-03-26  2:42             ` [PATCH v7 25/28] t/helper: add test-ref-store to test ref-store functions Nguyễn Thái Ngọc Duy
2017-03-26  2:42             ` [PATCH v7 26/28] t1405: some basic tests on main ref store Nguyễn Thái Ngọc Duy
2017-03-26  2:42             ` [PATCH v7 27/28] t1406: new tests for submodule " Nguyễn Thái Ngọc Duy
2017-03-26  2:42             ` [PATCH v7 28/28] refs.h: add a note about sorting order of for_each_ref_* Nguyễn Thái Ngọc Duy
2017-04-01  5:09             ` [PATCH v7 00/28] Remove submodule from files-backend.c Michael Haggerty
2017-04-11  8:30               ` Junio C Hamano
2017-02-17 18:35   ` [PATCH v2 00/16] " Junio C Hamano
2017-02-17 20:49     ` Junio C Hamano
2017-02-18 13:15     ` Duy Nguyen

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=20170213152011.12050-5-pclouds@gmail.com \
    --to=pclouds@gmail.com \
    --cc=Johannes.Schindelin@gmx.de \
    --cc=git@vger.kernel.org \
    --cc=gitster@pobox.com \
    --cc=mhagger@alum.mit.edu \
    --cc=novalis@novalis.org \
    --cc=sbeller@google.com \
    /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.