Git fork

refspec: replace `refspec_item_init()` with fetch/push variants

For similar reasons as in the previous refactoring of `refspec_init()`
into `refspec_init_fetch()` and `refspec_init_push()`, apply the same
refactoring to `refspec_item_init()`.

Signed-off-by: Taylor Blau <me@ttaylorr.com>
Acked-by: Elijah Newren <newren@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

authored by

Taylor Blau and committed by
Junio C Hamano
459e54b5 ec6829e4

+23 -7
+1 -1
builtin/fetch.c
··· 586 586 struct refspec_item tag_refspec; 587 587 588 588 /* also fetch all tags */ 589 - refspec_item_init(&tag_refspec, TAG_REFSPEC, 0); 589 + refspec_item_init_push(&tag_refspec, TAG_REFSPEC); 590 590 get_fetch_map(remote_refs, &tag_refspec, &tail, 0); 591 591 refspec_item_clear(&tag_refspec); 592 592 } else if (tags == TAGS_DEFAULT && *autotags) {
+1 -1
builtin/pull.c
··· 738 738 const char *spec_src; 739 739 const char *merge_branch; 740 740 741 - if (!refspec_item_init(&spec, refspec, 1)) 741 + if (!refspec_item_init_fetch(&spec, refspec)) 742 742 die(_("invalid refspec '%s'"), refspec); 743 743 spec_src = spec.src; 744 744 if (!*spec_src || !strcmp(spec_src, "HEAD"))
+19 -3
refspec.c
··· 153 153 return 1; 154 154 } 155 155 156 - int refspec_item_init(struct refspec_item *item, const char *refspec, int fetch) 156 + static int refspec_item_init(struct refspec_item *item, const char *refspec, 157 + int fetch) 157 158 { 158 159 memset(item, 0, sizeof(*item)); 159 160 item->raw = xstrdup(refspec); 160 161 return parse_refspec(item, refspec, fetch); 161 162 } 162 163 164 + int refspec_item_init_fetch(struct refspec_item *item, const char *refspec) 165 + { 166 + return refspec_item_init(item, refspec, 1); 167 + } 168 + 169 + int refspec_item_init_push(struct refspec_item *item, const char *refspec) 170 + { 171 + return refspec_item_init(item, refspec, 0); 172 + } 173 + 163 174 void refspec_item_clear(struct refspec_item *item) 164 175 { 165 176 FREE_AND_NULL(item->src); ··· 186 197 void refspec_append(struct refspec *rs, const char *refspec) 187 198 { 188 199 struct refspec_item item; 200 + int ret; 189 201 190 - if (!refspec_item_init(&item, refspec, rs->fetch)) 202 + if (rs->fetch) 203 + ret = refspec_item_init_fetch(&item, refspec); 204 + else 205 + ret = refspec_item_init_push(&item, refspec); 206 + if (!ret) 191 207 die(_("invalid refspec '%s'"), refspec); 192 208 193 209 ALLOC_GROW(rs->items, rs->nr + 1, rs->alloc); ··· 233 249 int valid_fetch_refspec(const char *fetch_refspec_str) 234 250 { 235 251 struct refspec_item refspec; 236 - int ret = refspec_item_init(&refspec, fetch_refspec_str, 1); 252 + int ret = refspec_item_init_fetch(&refspec, fetch_refspec_str); 237 253 refspec_item_clear(&refspec); 238 254 return ret; 239 255 }
+2 -2
refspec.h
··· 47 47 unsigned fetch : 1; 48 48 }; 49 49 50 - int refspec_item_init(struct refspec_item *item, const char *refspec, 51 - int fetch); 50 + int refspec_item_init_fetch(struct refspec_item *item, const char *refspec); 51 + int refspec_item_init_push(struct refspec_item *item, const char *refspec); 52 52 void refspec_item_clear(struct refspec_item *item); 53 53 void refspec_init_fetch(struct refspec *rs); 54 54 void refspec_init_push(struct refspec *rs);