Skip to content
  • Jeff King's avatar
    remote.c: add branch_get_push · e291c75a
    Jeff King authored and Junio C Hamano's avatar Junio C Hamano committed
    
    
    In a triangular workflow, the place you pull from and the
    place you push to may be different. As we have
    branch_get_upstream for the former, this patch adds
    branch_get_push for the latter (and as the former implements
    @{upstream}, so will this implement @{push} in a future
    patch).
    
    Note that the memory-handling for the return value bears
    some explanation. Some code paths require allocating a new
    string, and some let us return an existing string. We should
    provide a consistent interface to the caller, so it knows
    whether to free the result or not.
    
    We could do so by xstrdup-ing any existing strings, and
    having the caller always free. But that makes us
    inconsistent with branch_get_upstream, so we would prefer to
    simply take ownership of the resulting string. We do so by
    storing it inside the "struct branch", just as we do with
    the upstream refname (in that case we compute it when the
    branch is created, but there's no reason not to just fill
    it in lazily in this case).
    
    Signed-off-by: default avatarJeff King <peff@peff.net>
    Signed-off-by: default avatarJunio C Hamano <gitster@pobox.com>
    e291c75a