From d0740d92beb019a7b02678e5acea79c0ff67e3ee Mon Sep 17 00:00:00 2001 From: Shawn Pearce Date: Fri, 19 May 2006 03:29:26 -0400 Subject: Log ref updates made by fetch. If a ref is changed by http-fetch, local-fetch or ssh-fetch record the change and the remote URL/name in the log for the ref. This requires loading the config file to check logAllRefUpdates. Also fixed a bug in the ref lock generation; the log file name was not being produced right due to a bad prefix length. Signed-off-by: Shawn O. Pearce Signed-off-by: Junio C Hamano --- refs.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'refs.c') diff --git a/refs.c b/refs.c index 31cf27668d..d3ddc82d26 100644 --- a/refs.c +++ b/refs.c @@ -142,6 +142,8 @@ static int do_for_each_ref(const char *base, int (*fn)(const char *path, const u namelen = strlen(de->d_name); if (namelen > 255) continue; + if (namelen>5 && !strcmp(de->d_name+namelen-5,".lock")) + continue; memcpy(path + baselen, de->d_name, namelen+1); if (stat(git_path("%s", path), &st) < 0) continue; @@ -296,7 +298,6 @@ static struct ref_lock* lock_ref_sha1_basic(const char *path, plen = strlen(path) - plen; path = resolve_ref(path, lock->old_sha1, mustexist); if (!path) { - error("Can't read ref %s", path); unlock_ref(lock); return NULL; } @@ -326,7 +327,7 @@ struct ref_lock* lock_ref_sha1(const char *ref, if (check_ref_format(ref)) return NULL; return lock_ref_sha1_basic(git_path("refs/%s", ref), - strlen(ref), old_sha1, mustexist); + 5 + strlen(ref), old_sha1, mustexist); } struct ref_lock* lock_any_ref_for_update(const char *ref, -- cgit v1.2.1