Subject: [PATCH v4 0/3] Remove special casing for PSEUDOREF updates

From: "Han-Wen Nienhuys via GitGitGadget" <[email-masked]>
Date: Mon, 27 Jul 2020 16:25:44 +0000

This gets rid of the special casing code for pseudorefs in refs.c

This is in preparation for reftable.

v4

 * Address problems on case-insensitive file systems reported by Dscho.

Han-Wen Nienhuys (3):
  t1400: use git rev-parse for testing PSEUDOREF existence
  Modify pseudo refs through ref backend storage
  Make HEAD a PSEUDOREF rather than PER_WORKTREE.

 Documentation/git-update-ref.txt |  13 ++--
 refs.c                           | 127 +++----------------------------
 t/t1400-update-ref.sh            |  30 ++++----
 t/t1405-main-ref-store.sh        |   5 +-
 4 files changed, 36 insertions(+), 139 deletions(-)

base-commit: 5c06d60fc55d2213c089f63c282468080f812686
Published-As: https://github.com/gitgitgadget/git/releases/tag/pr-673%2Fhanwen%2Fpseudoref-v4
Fetch-It-Via: git fetch https://github.com/gitgitgadget/git pr-673/hanwen/pseudoref-v4
Pull-Request: https://github.com/gitgitgadget/git/pull/673

Range-diff vs v3:

 1:  28bd3534d0 = 1:  b5274d9053 t1400: use git rev-parse for testing PSEUDOREF existence
 2:  79cd5dd480 ! 2:  ba5f1b4d26 Modify pseudo refs through ref backend storage
     @@ t/t1405-main-ref-store.sh: test_expect_success 'create_symref(FOO, refs/heads/ma
       test_expect_success 'delete_refs(FOO, refs/tags/new-tag)' '
       	git rev-parse FOO -- &&
       	git rev-parse refs/tags/new-tag -- &&
     +-	$RUN delete-refs 0 nothing FOO refs/tags/new-tag &&
      +	m=$(git rev-parse master) &&
     - 	$RUN delete-refs 0 nothing FOO refs/tags/new-tag &&
     ++	REF_NO_DEREF=1 &&
     ++	$RUN delete-refs $REF_NO_DEREF nothing FOO refs/tags/new-tag &&
     ++	test_must_fail git rev-parse --symbolic-full-name FOO &&
       	test_must_fail git rev-parse FOO -- &&
     --	test_must_fail git rev-parse refs/tags/new-tag --
     -+	test_must_fail git rev-parse refs/tags/new-tag --&&
     -+	test_must_fail git rev-parse master -- &&
     -+	git update-ref refs/heads/master $m
     + 	test_must_fail git rev-parse refs/tags/new-tag --
       '
     - 
     - test_expect_success 'rename_refs(master, new-master)' '
 3:  3ab9f2f04e = 3:  358d34df07 Make HEAD a PSEUDOREF rather than PER_WORKTREE.

-- 
gitgitgadget