git/list[1] front-page[2] threads[3] people[4] search[5] about
 

[PATCH 2/7] lock_ref_sha1_basic(): remember the original name of a ref when resolving it

From
Nicolas Pitre <nico@cam.org>
Date
Jan 26, 2007, 22:26 UTC
Message-ID
<11698503712588-git-send-email-nico@cam.org>
In-Reply-To
<1169850371517-git-send-email-nico@cam.org>

A ref might be pointing to another ref but only the name of the last ref is remembered. Let's remember about the first name as well.

Signed-off-by: Nicolas Pitre <nico@cam.org>
---
 refs.c |    2 ++
 refs.h |    1 +
 2 files changed, 3 insertions(+), 0 deletions(-)
diff --git a/refs.c b/refs.c
index 9395677..9641fad 100644
--- a/refs.c
+++ b/refs.c
@@ -676,6 +676,7 @@ static struct ref_lock *lock_ref_sha1_basic(const char *ref, const unsigned char
 	lock->lk = xcalloc(1, sizeof(struct lock_file));
 
 	lock->ref_name = xstrdup(ref);
+	lock->orig_ref_name = xstrdup(orig_ref);
 	ref_file = git_path("%s", ref);
 	lock->force_write = lstat(ref_file, &st) && errno == ENOENT;
 
@@ -915,6 +916,7 @@ void unlock_ref(struct ref_lock *lock)
 			rollback_lock_file(lock->lk);
 	}
 	free(lock->ref_name);
+	free(lock->orig_ref_name);
 	free(lock);
 }
 
diff --git a/refs.h b/refs.h
index 2d2ba14..94a58b4 100644
--- a/refs.h
+++ b/refs.h
@@ -3,6 +3,7 @@
 
 struct ref_lock {
 	char *ref_name;
+	char *orig_ref_name;
 	struct lock_file *lk;
 	unsigned char old_sha1[20];
 	int lock_fd;
-- 
1.5.0.rc2.g6e2c
Previous: Nicolas PitreNext: Nicolas Pitre
Message 2 of 8 in “make reflog filename independent from struct ref_lock”
  1. 1/7 make reflog filename independent from struct ref_lockNicolas Pitre, Jan 26, 2007
  2. 2/7 lock_ref_sha1_basic(): remember the original name of a ref when resolving itNicolas Pitre, Jan 26, 2007
  3. 3/7 enable separate reflog for HEADNicolas Pitre, Jan 26, 2007
  4. 4/7 add reflog entries for HEAD when detachedNicolas Pitre, Jan 26, 2007
  5. 5/7 move create_symref() past log_ref_write()Nicolas Pitre, Jan 26, 2007
  6. 6/7 add logref support to git-symbolic-refNicolas Pitre, Jan 26, 2007
  7. 7/7 add reflog when moving HEAD to a new branchNicolas Pitre, Jan 26, 2007
  8. 2/3 create_symref(): do not assume pathname from git_path() persists long enoughJunio C Hamano, Jan 27, 2007

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.