Merge branch 'bw/ref-prefix-for-configured-refspec'
"git fetch $there $refspec" that talks over protocol v2 can take advantage of server-side ref filtering; the code has been extended so that this mechanism triggers also when fetching with configured refspec. * bw/ref-prefix-for-configured-refspec: (38 commits) fetch: generate ref-prefixes when using a configured refspec refspec: consolidate ref-prefix generation logic submodule: convert push_unpushed_submodules to take a struct refspec remote: convert check_push_refs to take a struct refspec remote: convert match_push_refs to take a struct refspec http-push: store refspecs in a struct refspec transport: remove transport_verify_remote_names send-pack: store refspecs in a struct refspec transport: convert transport_push to take a struct refspec push: convert to use struct refspec push: check for errors earlier remote: convert match_explicit_refs to take a struct refspec remote: convert get_ref_match to take a struct refspec remote: convert query_refspecs to take a struct refspec remote: convert apply_refspecs to take a struct refspec remote: convert get_stale_heads to take a struct refspec fetch: convert prune_refs to take a struct refspec fetch: convert get_ref_map to take a struct refspec fetch: convert do_fetch to take a struct refspec refspec: remove the deprecated functions ...
This commit is contained in:
@ -12,6 +12,7 @@
|
||||
#include "run-command.h"
|
||||
#include "remote.h"
|
||||
#include "refs.h"
|
||||
#include "refspec.h"
|
||||
#include "connect.h"
|
||||
#include "revision.h"
|
||||
#include "diffcore.h"
|
||||
@ -1753,13 +1754,14 @@ static int push_check(int argc, const char **argv, const char *prefix)
|
||||
|
||||
/* Check the refspec */
|
||||
if (argc > 2) {
|
||||
int i, refspec_nr = argc - 2;
|
||||
int i;
|
||||
struct ref *local_refs = get_local_heads();
|
||||
struct refspec *refspec = parse_push_refspec(refspec_nr,
|
||||
argv + 2);
|
||||
struct refspec refspec = REFSPEC_INIT_PUSH;
|
||||
|
||||
for (i = 0; i < refspec_nr; i++) {
|
||||
struct refspec *rs = refspec + i;
|
||||
refspec_appendn(&refspec, argv + 2, argc - 2);
|
||||
|
||||
for (i = 0; i < refspec.nr; i++) {
|
||||
const struct refspec_item *rs = &refspec.items[i];
|
||||
|
||||
if (rs->pattern || rs->matching)
|
||||
continue;
|
||||
@ -1786,7 +1788,7 @@ static int push_check(int argc, const char **argv, const char *prefix)
|
||||
rs->src);
|
||||
}
|
||||
}
|
||||
free_refspec(refspec_nr, refspec);
|
||||
refspec_clear(&refspec);
|
||||
}
|
||||
free(head);
|
||||
|
||||
|
Reference in New Issue
Block a user