Skip to content

Commit 459e54b

Browse files
ttaylorrgitster
authored andcommitted
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 <[email protected]> Acked-by: Elijah Newren <[email protected]> Signed-off-by: Junio C Hamano <[email protected]>
1 parent ec6829e commit 459e54b

File tree

4 files changed

+23
-7
lines changed

4 files changed

+23
-7
lines changed

builtin/fetch.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -586,7 +586,7 @@ static struct ref *get_ref_map(struct remote *remote,
586586
struct refspec_item tag_refspec;
587587

588588
/* also fetch all tags */
589-
refspec_item_init(&tag_refspec, TAG_REFSPEC, 0);
589+
refspec_item_init_push(&tag_refspec, TAG_REFSPEC);
590590
get_fetch_map(remote_refs, &tag_refspec, &tail, 0);
591591
refspec_item_clear(&tag_refspec);
592592
} else if (tags == TAGS_DEFAULT && *autotags) {

builtin/pull.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -738,7 +738,7 @@ static const char *get_tracking_branch(const char *remote, const char *refspec)
738738
const char *spec_src;
739739
const char *merge_branch;
740740

741-
if (!refspec_item_init(&spec, refspec, 1))
741+
if (!refspec_item_init_fetch(&spec, refspec))
742742
die(_("invalid refspec '%s'"), refspec);
743743
spec_src = spec.src;
744744
if (!*spec_src || !strcmp(spec_src, "HEAD"))

refspec.c

Lines changed: 19 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -153,13 +153,24 @@ static int parse_refspec(struct refspec_item *item, const char *refspec, int fet
153153
return 1;
154154
}
155155

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)
157158
{
158159
memset(item, 0, sizeof(*item));
159160
item->raw = xstrdup(refspec);
160161
return parse_refspec(item, refspec, fetch);
161162
}
162163

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+
163174
void refspec_item_clear(struct refspec_item *item)
164175
{
165176
FREE_AND_NULL(item->src);
@@ -186,8 +197,13 @@ void refspec_init_push(struct refspec *rs)
186197
void refspec_append(struct refspec *rs, const char *refspec)
187198
{
188199
struct refspec_item item;
200+
int ret;
189201

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)
191207
die(_("invalid refspec '%s'"), refspec);
192208

193209
ALLOC_GROW(rs->items, rs->nr + 1, rs->alloc);
@@ -233,7 +249,7 @@ void refspec_clear(struct refspec *rs)
233249
int valid_fetch_refspec(const char *fetch_refspec_str)
234250
{
235251
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);
237253
refspec_item_clear(&refspec);
238254
return ret;
239255
}

refspec.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -47,8 +47,8 @@ struct refspec {
4747
unsigned fetch : 1;
4848
};
4949

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);
5252
void refspec_item_clear(struct refspec_item *item);
5353
void refspec_init_fetch(struct refspec *rs);
5454
void refspec_init_push(struct refspec *rs);

0 commit comments

Comments
 (0)