• R
    refs.c: pass a list of names to skip to is_refname_available · 5fe7d825
    Ronnie Sahlberg 提交于
    Change is_refname_available to take a list of strings to exclude when
    checking for conflicts instead of just one single name. We can already
    exclude a single name for the sake of renames. This generalizes that support.
    
    ref_transaction_commit already tracks a set of refs that are being deleted
    in an array.  This array is then used to exclude refs from being written to
    the packed-refs file.  At some stage we will want to change this array to a
    struct string_list and then we can pass it to is_refname_available via the
    call to lock_ref_sha1_basic.  That will allow us to perform transactions
    that perform multiple renames as long as there are no conflicts within the
    starting or ending state.
    
    For example, that would allow a single transaction that contains two
    renames that are both individually conflicting:
    
       m -> n/n
       n -> m/m
    
    No functional change intended yet.
    Signed-off-by: NRonnie Sahlberg <sahlberg@google.com>
    Signed-off-by: NJonathan Nieder <jrnieder@gmail.com>
    Signed-off-by: NJunio C Hamano <gitster@pobox.com>
    5fe7d825
refs.c 100.9 KB