Skip to content


Subversion checkout URL

You can clone with
Download ZIP
Commits on Jan 10, 2010
  1. @rctay @gitster

    refactor ref status logic for pushing

    rctay committed with gitster
    Move the logic that detects up-to-date and non-fast-forward refs to a
    new function in remote.[ch], set_ref_status_for_push().
    Make transport_push() invoke set_ref_status_for_push() before invoking
    the push_refs() implementation. (As a side-effect, the push_refs()
    implementation in transport-helper.c now knows of non-fast-forward
    Removed logic for detecting up-to-date refs from the push_refs()
    implementation in transport-helper.c, as transport_push() has already
    done so for it.
    Make cmd_send_pack() invoke set_ref_status_for_push() before invoking
    send_pack(), as transport_push() can't do it for send_pack() here.
    Mark the test on the return status of non-fast-forward push to fail.
    Git now exits with success, as transport.c::transport_push() does not
    check for refs with status REF_STATUS_REJECT_NONFASTFORWARD nor does it
    indicate rejected pushes with its return value.
    Mark the test for ref status to succeed. As mentioned earlier, refs
    might be marked as non-fast-forwards, triggering the push status
    printing mechanism in transport.c.
    Signed-off-by: Tay Ray Chuan <>
    Signed-off-by: Junio C Hamano <>
Something went wrong with that request. Please try again.