author | Junio C Hamano <gitster@pobox.com> | |
Thu, 23 Jul 2009 06:07:05 +0000 (23:07 -0700) | ||
committer | Junio C Hamano <gitster@pobox.com> | |
Thu, 23 Jul 2009 06:07:05 +0000 (23:07 -0700) | ||
commit | eafb45265bb9fcbee3cc03b451da7e17db9e6be7 | |
tree | bac155233aa47720ee772499d179c494f86a8e9e | tree | snapshot |
parent | 735c674416b87505400fcf738fd3a38b52f0eccb | commit | diff |
do_one_ref(): null_sha1 check is not about broken ref
f8948e2 (remote prune: warn dangling symrefs, 2009-02-08) introduced a
more dangerous variant of for_each_ref() family that skips the check for
dangling refs, but it also made another unrelated check optional by
mistake.
The check to see if a ref points at 0{40} is not about brokenness, but is
about a possible future plan to represent a deleted ref by writing 40 "0"
in a loose ref when there is a stale version of the same ref already in
.git/packed-refs, so that we can implement deletion of a ref without
having to rewrite the packed refs file excluding the ref being deleted.
This check has to live outside of the conditional.
Signed-off-by: Junio C Hamano <gitster@pobox.com>
f8948e2 (remote prune: warn dangling symrefs, 2009-02-08) introduced a
more dangerous variant of for_each_ref() family that skips the check for
dangling refs, but it also made another unrelated check optional by
mistake.
The check to see if a ref points at 0{40} is not about brokenness, but is
about a possible future plan to represent a deleted ref by writing 40 "0"
in a loose ref when there is a stale version of the same ref already in
.git/packed-refs, so that we can implement deletion of a ref without
having to rewrite the packed refs file excluding the ref being deleted.
This check has to live outside of the conditional.
Signed-off-by: Junio C Hamano <gitster@pobox.com>
refs.c | diff | blob | history |