This is a replacement for sp/push-refspec. It is rebased to the current master.
Documentation/git-push.txt | 4 ++--
Documentation/git-send-pack.txt | 4 +++-
builtin-push.c | 11 +++++++++++
cache.h | 4 ++++
refs.c | 31 +++++++++++++++++++++++++++++++
remote.c | 28 +++-------------------------
sha1_name.c | 14 ++------------
t/t5510-fetch.sh | 25 +++++++++++++++++++++++++
t/t5516-fetch-push.sh | 29 ++++++++++++++++++++++++++++-
transport.c | 8 ++++++--
transport.h | 1 +
11 files changed, 116 insertions(+), 43 deletions(-)
[PATCH 1/6] push: mention --verbose option in documentation
Push uses parseopts, which supports '--verbose'. [PATCH 2/6] push: teach push to pass --verbose option to transport layer
Adapted to paresopts changes. [PATCH 3/6] push: support pushing HEAD to real branch name
Same as before. [PATCH 4/6] add ref_abbrev_matches_full_with_rules()
[PATCH 5/6] push: use same rules as git-rev-parse to resolve refspecs
[PATCH 6/6] refactor fetch's ref matching to use ref_abbrev_matches_full_with_rules()
Start unification of refspec matching rules.