David Turner's patch to return "ambiguous" seems like a reasonable
patch for future versions of git:

https://public-inbox.org/git/[email protected]/
---
 lib/PublicInbox/Git.pm | 10 ++++++----
 1 file changed, 6 insertions(+), 4 deletions(-)

diff --git a/lib/PublicInbox/Git.pm b/lib/PublicInbox/Git.pm
index b655921..a0b934a 100644
--- a/lib/PublicInbox/Git.pm
+++ b/lib/PublicInbox/Git.pm
@@ -179,11 +179,13 @@ sub check {
        local $/ = "\n";
        chomp(my $line = $self->{in_c}->getline);
        my ($hex, $type, $size) = split(' ', $line);
-       return if $type eq 'missing';
 
-       # "dead" in git.git shows "dangling 4\ndead\n", not sure why
-       # https://public-inbox.org/git/20190118033845.s2vlrb3wd3m2jfzu@dcvr/
-       # so handle the oddball stuff just in case
+       # Future versions of git.git may show 'ambiguous', but for now,
+       # we must handle 'dangling' below (and maybe some other oddball
+       # stuff):
+       # https://public-inbox.org/git/20190118033845.s2vlrb3wd3m2jfzu@dcvr/T/
+       return if $type eq 'missing' || $type eq 'ambiguous';
+
        if ($hex eq 'dangling' || $hex eq 'notdir' || $hex eq 'loop') {
                $size = $type + length("\n");
                my $r = read($self->{in_c}, my $buf, $size);
-- 
EW

--
unsubscribe: [email protected]
archive: https://public-inbox.org/meta/

Reply via email to