• Sean McGivern's avatar
    Record whether or not a repository contains ambiguous refs · e0997f1b
    Sean McGivern authored
    A branch can't be a prefix (including a slash) of another branch. For
    instance, you can't have a branch `a` and a branch `a/b`. Same with
    tags. However, you can have a branch `a` and a tag `a/b`, which is
    ambiguous.
    
    In ExtractsRef, we do some work to handle these cases. That can involve
    a fairly slow Redis SMEMBERS call. If a repository has no ambiguous refs
    of this form (which should be the majority), we can perform some
    optimisations.
    
    For the purposes of this method, we only consider refs ambiguous before
    the first slash. If we have a branch `a/b/c` and a tag `a/b`, this
    method won't detect that.
    e0997f1b
repository.rb 31.7 KB