It is now forbidden to update pseudorefs through the ref update framework. Because of the pseudoref update rules change, test cases that used git update-ref on a pseudoref now operate on plain refs. Signed-off-by: David Turner <dturner@xxxxxxxxxxxxxxxx> --- bisect.c | 2 +- refs.c | 2 ++ t/t1400-update-ref.sh | 24 ++++++++++++------------ 3 files changed, 15 insertions(+), 13 deletions(-) diff --git a/bisect.c b/bisect.c index 3a9fd63..47cc778 100644 --- a/bisect.c +++ b/bisect.c @@ -969,7 +969,7 @@ int bisect_next_all(const char *prefix, int no_checkout) if (!hashcmp(bisect_rev, current_bad_oid->hash)) { exit_if_skipped_commits(tried, current_bad_oid); - printf("%s is the first %s commit\n", bisect_rev_hex, + printf("%s is the first %s commit\n", sha1_to_hex(bisect_rev), term_bad); show_diff_tree(prefix, revs.commits->item); /* This means the bisection process succeeded. */ diff --git a/refs.c b/refs.c index efa84e3..f8dc877 100644 --- a/refs.c +++ b/refs.c @@ -3902,6 +3902,8 @@ int ref_transaction_update(struct ref_transaction *transaction, struct ref_update *update; assert(err); + if (is_pseudoref(refname)) + return error(_("BUG: Cannot update pseudorefs (all-caps files in .git) through the refs API")); if (transaction->state != REF_TRANSACTION_OPEN) die("BUG: update called for transaction that is not open"); diff --git a/t/t1400-update-ref.sh b/t/t1400-update-ref.sh index 0038f28..b05657c 100755 --- a/t/t1400-update-ref.sh +++ b/t/t1400-update-ref.sh @@ -608,13 +608,13 @@ test_expect_success 'stdin delete ref fails with zero old value' ' ' test_expect_success 'stdin update symref works option no-deref' ' - git symbolic-ref TESTSYMREF $b && + git symbolic-ref refs/TESTSYMREF $b && cat >stdin <<-EOF && option no-deref - update TESTSYMREF $a $b + update refs/TESTSYMREF $a $b EOF git update-ref --stdin <stdin && - git rev-parse TESTSYMREF >expect && + git rev-parse refs/TESTSYMREF >expect && git rev-parse $a >actual && test_cmp expect actual && git rev-parse $m~1 >expect && @@ -623,13 +623,13 @@ test_expect_success 'stdin update symref works option no-deref' ' ' test_expect_success 'stdin delete symref works option no-deref' ' - git symbolic-ref TESTSYMREF $b && + git symbolic-ref refs/TESTSYMREF $b && cat >stdin <<-EOF && option no-deref - delete TESTSYMREF $b + delete refs/TESTSYMREF $b EOF git update-ref --stdin <stdin && - test_must_fail git rev-parse --verify -q TESTSYMREF && + test_must_fail git rev-parse --verify -q refs/TESTSYMREF && git rev-parse $m~1 >expect && git rev-parse $b >actual && test_cmp expect actual @@ -983,10 +983,10 @@ test_expect_success 'stdin -z delete ref fails with zero old value' ' ' test_expect_success 'stdin -z update symref works option no-deref' ' - git symbolic-ref TESTSYMREF $b && - printf $F "option no-deref" "update TESTSYMREF" "$a" "$b" >stdin && + git symbolic-ref refs/TESTSYMREF $b && + printf $F "option no-deref" "update refs/TESTSYMREF" "$a" "$b" >stdin && git update-ref -z --stdin <stdin && - git rev-parse TESTSYMREF >expect && + git rev-parse refs/TESTSYMREF >expect && git rev-parse $a >actual && test_cmp expect actual && git rev-parse $m~1 >expect && @@ -995,10 +995,10 @@ test_expect_success 'stdin -z update symref works option no-deref' ' ' test_expect_success 'stdin -z delete symref works option no-deref' ' - git symbolic-ref TESTSYMREF $b && - printf $F "option no-deref" "delete TESTSYMREF" "$b" >stdin && + git symbolic-ref refs/TESTSYMREF $b && + printf $F "option no-deref" "delete refs/TESTSYMREF" "$b" >stdin && git update-ref -z --stdin <stdin && - test_must_fail git rev-parse --verify -q TESTSYMREF && + test_must_fail git rev-parse --verify -q refs/TESTSYMREF && git rev-parse $m~1 >expect && git rev-parse $b >actual && test_cmp expect actual -- 2.0.4.315.gad8727a-twtrsrc -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html