path: root/refs.c
diff options
authorJunio C Hamano <>2009-07-24 16:27:09 (GMT)
committerJunio C Hamano <>2009-07-24 16:27:09 (GMT)
commitf87dd2152a6941dfa7f3ddaf599bc30f58562a98 (patch)
tree308c66f7be4942b01b468e958cb7c9c64dd39131 /refs.c
parent4aacaeb3dc82bb6479e70e120053dc27a399460e (diff)
parent01ae841ccf3aa5d5331a4e6aed6122fee6617740 (diff)
Merge branch 'maint'
* maint: SunOS grep does not understand -C<n> nor -e Fix export_marks() error handling. git branch: clean up detached branch handling git branch: avoid unnecessary object lookups git branch: fix performance problem do_one_ref(): null_sha1 check is not about broken ref Conflicts: Makefile
Diffstat (limited to 'refs.c')
1 files changed, 3 insertions, 2 deletions
diff --git a/refs.c b/refs.c
index e15880f..e49eaa3 100644
--- a/refs.c
+++ b/refs.c
@@ -531,9 +531,10 @@ static int do_one_ref(const char *base, each_ref_fn fn, int trim,
if (strncmp(base, entry->name, trim))
return 0;
+ /* Is this a "negative ref" that represents a deleted ref? */
+ if (is_null_sha1(entry->sha1))
+ return 0;
if (!(flags & DO_FOR_EACH_INCLUDE_BROKEN)) {
- if (is_null_sha1(entry->sha1))
- return 0;
if (!has_sha1_file(entry->sha1)) {
error("%s does not point to a valid object!", entry->name);
return 0;