This is a replacement for sp/push-refspec (93e296613306311ef02dabb19a6538be2f52aa1c). Compared to the v2 series the following changed (v2 patch numbers): 1/8 implementation should be better readable. 2/8 adjusted to 1/8 changes. 3/8 removed. 4/8 removed. 5/8 much simpler implementation, second patch "git push HEAD" added. 6/8 chose more explicit naming ref_abbrev_matches_full_with_rev_parse_rules; unified argument order with ref_matches_abbrev, which was renamed to ref_abbrev_matches_full_with_fetch_rules. 7/8 adjusted to 6/8 changes. 8/8 report summary; --verbose fixed; added test that remote tracking branches are unchanged. All tests pass. Here's a summary of the series: Documentation/git-http-push.txt | 6 ++ Documentation/git-push.txt | 16 +++- Documentation/git-send-pack.txt | 18 +++- builtin-push.c | 23 +++++- cache.h | 1 + http-push.c | 9 ++- remote.c | 50 +++++++----- remote.h | 2 +- send-pack.c | 77 +++++++++++++---- sha1_name.c | 14 +++ t/t5516-fetch-push.sh | 181 ++++++++++++++++++++++++++++++++++++++- transport.c | 12 ++- transport.h | 2 + 13 files changed, 358 insertions(+), 53 deletions(-) [PATCH 01/10] push: change push to fail if short refname does not exist [PATCH 02/10] push: teach push new flag --create [PATCH 03/10] push: support pushing HEAD to real branch name [PATCH 04/10] push: add "git push HEAD" shorthand for 'push current branch to default repo' Junio doesn't like this patch. But I had it ready, so here it is. Junio described an alternative in http://marc.info/?l=git&m=119358745026345&w=2 [PATCH 05/10] rename ref_matches_abbrev() to ref_abbrev_matches_full_with_fetch_rules() [PATCH 06/10] add ref_abbrev_matches_full_with_rev_parse_rules() comparing abbrev with full ref name [PATCH 07/10] push: use same rules as git-rev-parse to resolve refspecs Maybe the matching rules could be further unified. Code cleanup would be needed here. But this is a different story. [PATCH 08/10] push: teach push to accept --verbose option [PATCH 09/10] push: teach push to pass --verbose option to transport layer [PATCH 10/10] push: teach push to be quiet if local ref is strict subset of remote ref Steffen - 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