This patch series addresses recent complaints about the behavior of push/send-pack when expanding short refspecs. The overall idea is to change push's handling of refspecs to match the behavior of rev-parse. The old way of matching short refspecs in push is often unexpected as discussed in [1]. Now "git push <ref>" resolves ref the same way as rev-parse. [1] http://marc.info/?l=git&m=119224567631084&w=2 A related question is how to push only the current branch [2]. Now "git push HEAD" is supported to push the current head if a matching remote ref exists. [2] http://marc.info/?l=git&m=119089831513994&w=2 A summary of the patch series follows below. Steffen builtin-rev-parse.c | 27 ++++++++++++------- cache.h | 2 + remote.c | 23 ++++++++++------ sha1_name.c | 51 ++++++++++++++++++++++++++++-------- t/t5516-fetch-push.sh | 68 ++++++++++++++++++++++++++++++++++++++++++++++-- 5 files changed, 138 insertions(+), 33 deletions(-) [PATCH 1/6] push, send-pack: fix test if remote branch exists for colon-less refspec This is a bug fix that should go to maint. All following patches modifying the push test script require this. [PATCH 2/6] add get_sha1_with_real_ref() returning full name of ref on demand Is required by 3/6 and 4/6 [PATCH 3/6] rev-parse: teach "git rev-parse --symbolic" to print the full ref name A bit off-topic. It demonstrates the use of get_sha1_with_real_ref. [PATCH 4/6] push, send-pack: support pushing HEAD to real ref name Requires 1/6. [PATCH 5/6] add ref_cmp_full_short() comparing full ref name with a short name [PATCH 6/6] push, send-pack: use same rules as git-rev-parse to resolve refspecs Requires 1/6. Note, an updated documentation is not yet included. I like to first wait for comments. - To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html