[PATCH 0/10 v3] improve refspec handling in push
From: Steffen Prohaska <hidden>
Date: 2016-06-15 22:43:45
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