summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJunio C Hamano <gitster@pobox.com>2014-09-11 17:33:33 (GMT)
committerJunio C Hamano <gitster@pobox.com>2014-09-11 17:33:33 (GMT)
commit88e7dff93d7010bb2974f8e1599a4e53c73e18f3 (patch)
treee9054e4b6af2e649c628bbf16af8b711a4484729
parentbedd3b4b7b25df0b994abf444ee2136995dfeffa (diff)
parentafd11d3ebcfb18c29840dfa68be32c5215810a77 (diff)
downloadgit-88e7dff93d7010bb2974f8e1599a4e53c73e18f3.zip
git-88e7dff93d7010bb2974f8e1599a4e53c73e18f3.tar.gz
git-88e7dff93d7010bb2974f8e1599a4e53c73e18f3.tar.bz2
Merge branch 'jk/prune-top-level-refs-after-packing'
After "pack-refs --prune" packed refs at the top-level, it failed to prune them. * jk/prune-top-level-refs-after-packing: pack-refs: prune top-level refs like "refs/foo"
-rw-r--r--refs.c2
-rwxr-xr-xt/t3210-pack-refs.sh7
2 files changed, 8 insertions, 1 deletions
diff --git a/refs.c b/refs.c
index 808e261..2ce5d69 100644
--- a/refs.c
+++ b/refs.c
@@ -2389,7 +2389,7 @@ static void prune_ref(struct ref_to_prune *r)
struct ref_transaction *transaction;
struct strbuf err = STRBUF_INIT;
- if (check_refname_format(r->name + 5, 0))
+ if (check_refname_format(r->name, 0))
return;
transaction = ref_transaction_begin(&err);
diff --git a/t/t3210-pack-refs.sh b/t/t3210-pack-refs.sh
index 1a2080e..3a017bf 100755
--- a/t/t3210-pack-refs.sh
+++ b/t/t3210-pack-refs.sh
@@ -151,4 +151,11 @@ test_expect_success 'delete ref while another dangling packed ref' '
test_cmp /dev/null result
'
+test_expect_success 'pack ref directly below refs/' '
+ git update-ref refs/top HEAD &&
+ git pack-refs --all --prune &&
+ grep refs/top .git/packed-refs &&
+ test_path_is_missing .git/refs/top
+'
+
test_done