Skip to content
  • Junio C Hamano's avatar
    push: use remote.$name.push as a refmap · ca02465b
    Junio C Hamano authored
    Since f2690487
    
     (fetch: opportunistically update tracking refs,
    2013-05-11), we stopped taking a non-storing refspec given on the
    command line of "git fetch" literally, and instead started mapping
    it via remote.$name.fetch refspecs.  This allows
    
        $ git fetch origin master
    
    from the 'origin' repository, which is configured with
    
        [remote "origin"]
            fetch = +refs/heads/*:refs/remotes/origin/*
    
    to update refs/remotes/origin/master with the result, as if the
    command line were
    
        $ git fetch origin +master:refs/remotes/origin/master
    
    to reduce surprises and improve usability.  Before that change, a
    refspec on the command line without a colon was only to fetch the
    history and leave the result in FETCH_HEAD, without updating the
    remote-tracking branches.
    
    When you are simulating a fetch from you by your mothership with a
    push by you into your mothership, instead of having:
    
        [remote "satellite"]
            fetch = +refs/heads/*:refs/remotes/satellite/*
    
    on the mothership repository and running:
    
        mothership$ git fetch satellite
    
    you would have:
    
        [remote "mothership"]
            push = +refs/heads/*:refs/remotes/satellite/*
    
    on your satellite machine, and run:
    
        satellite$ git push mothership
    
    Because we so far did not make the corresponding change to the push
    side, this command:
    
        satellite$ git push mothership master
    
    does _not_ allow you on the satellite to only push 'master' out but
    still to the usual destination (i.e. refs/remotes/satellite/master).
    
    Implement the logic to map an unqualified refspec given on the
    command line via the remote.$name.push refspec.  This will bring a
    bit more symmetry between "fetch" and "push".
    
    Signed-off-by: default avatarJunio C Hamano <gitster@pobox.com>
    ca02465b