Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.kernel.org/pub/scm/git/git.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBrandon Williams <bmwill@google.com>2018-05-17 01:58:22 +0300
committerJunio C Hamano <gitster@pobox.com>2018-05-18 00:19:44 +0300
commitafb1aed403de404c1e09fae5b8028f6b8f6982d3 (patch)
treed539c201158ef7b72b406287cf10e7374d013ab9
parent5c7ec8462d8706f9731f0d54ea3fdfe810d60a88 (diff)
remote: convert check_push_refs to take a struct refspec
Convert 'check_push_refs()' to take a 'struct refspec' as a parameter instead of an array of 'const char *'. Signed-off-by: Brandon Williams <bmwill@google.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
-rw-r--r--remote.c14
-rw-r--r--remote.h2
-rw-r--r--transport.c2
3 files changed, 7 insertions, 11 deletions
diff --git a/remote.c b/remote.c
index 0046d4e28f..0d1a3d07f8 100644
--- a/remote.c
+++ b/remote.c
@@ -1255,24 +1255,20 @@ static void prepare_ref_index(struct string_list *ref_index, struct ref *ref)
* but we can catch some errors early before even talking to the
* remote side.
*/
-int check_push_refs(struct ref *src, int nr_refspec, const char **refspec_names)
+int check_push_refs(struct ref *src, struct refspec *rs)
{
- struct refspec refspec = REFSPEC_INIT_PUSH;
int ret = 0;
int i;
- refspec_appendn(&refspec, refspec_names, nr_refspec);
-
- for (i = 0; i < refspec.nr; i++) {
- struct refspec_item *rs = &refspec.items[i];
+ for (i = 0; i < rs->nr; i++) {
+ struct refspec_item *item = &rs->items[i];
- if (rs->pattern || rs->matching)
+ if (item->pattern || item->matching)
continue;
- ret |= match_explicit_lhs(src, rs, NULL, NULL);
+ ret |= match_explicit_lhs(src, item, NULL, NULL);
}
- refspec_clear(&refspec);
return ret;
}
diff --git a/remote.h b/remote.h
index 74c5574578..62a6566594 100644
--- a/remote.h
+++ b/remote.h
@@ -161,7 +161,7 @@ struct ref *ref_remove_duplicates(struct ref *ref_map);
int query_refspecs(struct refspec *rs, struct refspec_item *query);
char *apply_refspecs(struct refspec *rs, const char *name);
-int check_push_refs(struct ref *src, int nr_refspec, const char **refspec);
+int check_push_refs(struct ref *src, struct refspec *rs);
int match_push_refs(struct ref *src, struct ref **dst,
struct refspec *rs, int flags);
void set_ref_status_for_push(struct ref *remote_refs, int send_mirror,
diff --git a/transport.c b/transport.c
index 24a97d9e8d..e32bc320cf 100644
--- a/transport.c
+++ b/transport.c
@@ -1090,7 +1090,7 @@ int transport_push(struct transport *transport,
struct argv_array ref_prefixes = ARGV_ARRAY_INIT;
int i;
- if (check_push_refs(local_refs, rs->raw_nr, rs->raw) < 0)
+ if (check_push_refs(local_refs, rs) < 0)
return -1;
for (i = 0; i < rs->nr; i++) {