On Fri, Jun 1, 2018 at 7:08 AM, Christian Couder <christian.couder@xxxxxxxxx> wrote: > test_expect_success "multi-fetch works off a 'clean' repository" ' > - rm -rf "$GIT_DIR/svn" "$GIT_DIR/refs/remotes" && > + rm -rf "$GIT_DIR/svn" && > + git for-each-ref --format="option no-deref%0adelete %(refname)" refs/remotes | > + git update-ref --stdin && Is that "option no-deref" really necessary when deleting refs? Does it have any effect at all? The synopsis in 'git update-ref's manpage indicates that '--no-deref' is only applicable when updating a ref, but not when deleting one; though the usage shown by 'git update-ref -h' doesn't indicate this. Anyway, it appears that when deleting refs no symref dereferencing is performed and '--no-deref' is simply ignored: $ git branch one $ git branch two $ git symbolic-ref ONE refs/heads/one $ git symbolic-ref TWO refs/heads/two $ cat .git/{ONE,TWO} ref: refs/heads/one ref: refs/heads/two $ git update-ref -d ONE $ git update-ref --no-deref -d TWO $ cat .git/{ONE,TWO} cat: .git/ONE: No such file or directory cat: .git/TWO: No such file or directory $ git for-each-ref 95c5b8654fd75df13ed29f43cff52287414c3877 commit refs/heads/master 95c5b8654fd75df13ed29f43cff52287414c3877 commit refs/heads/one 95c5b8654fd75df13ed29f43cff52287414c3877 commit refs/heads/two