aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPierre Habouzit <madcoder@debian.org>2008-06-15 23:37:42 +0200
committerJunio C Hamano <gitster@pobox.com>2008-06-15 15:54:06 -0700
commit336d09daf288492946f0c51f071da11643f8363d (patch)
tree22065546651f109c587b83d2168dbc91935aa3a5
parent4744d72393defef27fb76f047c2fac53ff6fb9ff (diff)
downloadgit-336d09daf288492946f0c51f071da11643f8363d.tar.gz
git-336d09daf288492946f0c51f071da11643f8363d.tar.xz
Make git reflog expire honour core.sharedRepository.
Signed-off-by: Pierre Habouzit <madcoder@debian.org> Signed-off-by: Junio C Hamano <gitster@pobox.com>
-rw-r--r--builtin-reflog.c2
-rwxr-xr-xt/t1301-shared-repo.sh15
2 files changed, 17 insertions, 0 deletions
diff --git a/builtin-reflog.c b/builtin-reflog.c
index 897d1dcac..b151e24ff 100644
--- a/builtin-reflog.c
+++ b/builtin-reflog.c
@@ -307,6 +307,8 @@ static int expire_reflog(const char *ref, const unsigned char *sha1, int unused,
unlink(newlog_path);
} else if (cmd->updateref && commit_ref(lock)) {
status |= error("Couldn't set %s", lock->ref_name);
+ } else {
+ adjust_shared_perm(log_file);
}
}
free(newlog_path);
diff --git a/t/t1301-shared-repo.sh b/t/t1301-shared-repo.sh
index 5e4252a32..6c78c8bc9 100755
--- a/t/t1301-shared-repo.sh
+++ b/t/t1301-shared-repo.sh
@@ -83,4 +83,19 @@ do
done
+test_expect_success 'git reflog expire honors core.sharedRepository' '
+ git config core.sharedRepository group &&
+ git reflog expire --all &&
+ actual="$(ls -l .git/logs/refs/heads/master)" &&
+ case "$actual" in
+ -rw-rw-*)
+ : happy
+ ;;
+ *)
+ echo Ooops, .git/logs/refs/heads/master is not 0662 [$actual]
+ false
+ ;;
+ esac
+'
+
test_done