Message ID | 20250204040558.34766-2-meetsoni3017@gmail.com (mailing list archive) |
---|---|
State | New |
Headers | show |
Series | refspec: centralize refspec-related logic | expand |
Meet Soni <meetsoni3017@gmail.com> writes: > diff --git a/remote.h b/remote.h > index bda10dd5c8..66ee53411d 100644 > --- a/remote.h > +++ b/remote.h > @@ -261,11 +261,7 @@ int resolve_remote_symref(struct ref *ref, struct ref *list); > */ > struct ref *ref_remove_duplicates(struct ref *ref_map); > > -/* > - * Check whether a name matches any negative refspec in rs. Returns 1 if the > - * name matches at least one negative refspec, and 0 otherwise. > - */ > -int omit_name_by_refspec(const char *name, struct refspec *rs); > +int refname_matches_negative_refspec_item(const char *refname, struct refspec *rs); > Nit: The first sentence is now duplicated by the function name as mentioned in the commit message. But aren't we loosing information by removing the second sentence? > /* > * Remove all entries in the input list which match any negative refspec in > -- > 2.34.1
On Tue, 4 Feb 2025 at 14:30, Karthik Nayak <karthik.188@gmail.com> wrote: > > Meet Soni <meetsoni3017@gmail.com> writes: > > > diff --git a/remote.h b/remote.h > > index bda10dd5c8..66ee53411d 100644 > > --- a/remote.h > > +++ b/remote.h > > @@ -261,11 +261,7 @@ int resolve_remote_symref(struct ref *ref, struct ref *list); > > */ > > struct ref *ref_remove_duplicates(struct ref *ref_map); > > > > -/* > > - * Check whether a name matches any negative refspec in rs. Returns 1 if the > > - * name matches at least one negative refspec, and 0 otherwise. > > - */ > > -int omit_name_by_refspec(const char *name, struct refspec *rs); > > +int refname_matches_negative_refspec_item(const char *refname, struct refspec *rs); > > > > Nit: The first sentence is now duplicated by the function name as > mentioned in the commit message. But aren't we loosing information by > removing the second sentence? > Correct. I considered keeping the second sentence for clarity, but that other function signatures in the codebase don’t include comments solely describing return values. To maintain consistency with the existing style, I opted to remove it. Let me know if you think an alternative approach would be better! > > /* > > * Remove all entries in the input list which match any negative refspec in > > -- > > 2.34.1
diff --git a/builtin/remote.c b/builtin/remote.c index 0435963286..258b8895cd 100644 --- a/builtin/remote.c +++ b/builtin/remote.c @@ -383,7 +383,7 @@ static int get_ref_states(const struct ref *remote_refs, struct ref_states *stat states->remote->fetch.items[i].raw); for (ref = fetch_map; ref; ref = ref->next) { - if (omit_name_by_refspec(ref->name, &states->remote->fetch)) + if (refname_matches_negative_refspec_item(ref->name, &states->remote->fetch)) string_list_append(&states->skipped, abbrev_branch(ref->name)); else if (!ref->peer_ref || !refs_ref_exists(get_main_ref_store(the_repository), ref->peer_ref->name)) string_list_append(&states->new_refs, abbrev_branch(ref->name)); diff --git a/remote.c b/remote.c index 0f6fba8562..cb70ce6f3b 100644 --- a/remote.c +++ b/remote.c @@ -944,12 +944,12 @@ static int refspec_match(const struct refspec_item *refspec, return !strcmp(refspec->src, name); } -int omit_name_by_refspec(const char *name, struct refspec *rs) +int refname_matches_negative_refspec_item(const char *refname, struct refspec *rs) { int i; for (i = 0; i < rs->nr; i++) { - if (rs->items[i].negative && refspec_match(&rs->items[i], name)) + if (rs->items[i].negative && refspec_match(&rs->items[i], refname)) return 1; } return 0; @@ -962,7 +962,7 @@ struct ref *apply_negative_refspecs(struct ref *ref_map, struct refspec *rs) for (tail = &ref_map; *tail; ) { struct ref *ref = *tail; - if (omit_name_by_refspec(ref->name, rs)) { + if (refname_matches_negative_refspec_item(ref->name, rs)) { *tail = ref->next; free(ref->peer_ref); free(ref); @@ -1021,7 +1021,7 @@ static int query_matches_negative_refspec(struct refspec *rs, struct refspec_ite } for (i = 0; !matched_negative && i < reversed.nr; i++) { - if (omit_name_by_refspec(reversed.items[i].string, rs)) + if (refname_matches_negative_refspec_item(reversed.items[i].string, rs)) matched_negative = 1; } diff --git a/remote.h b/remote.h index bda10dd5c8..66ee53411d 100644 --- a/remote.h +++ b/remote.h @@ -261,11 +261,7 @@ int resolve_remote_symref(struct ref *ref, struct ref *list); */ struct ref *ref_remove_duplicates(struct ref *ref_map); -/* - * Check whether a name matches any negative refspec in rs. Returns 1 if the - * name matches at least one negative refspec, and 0 otherwise. - */ -int omit_name_by_refspec(const char *name, struct refspec *rs); +int refname_matches_negative_refspec_item(const char *refname, struct refspec *rs); /* * Remove all entries in the input list which match any negative refspec in
Rename the function `omit_name_by_refspec()` to `refname_matches_negative_refspec_item()` to provide clearer intent. The previous function name was vague and did not accurately describe its purpose. By using `refname_matches_negative_refspec_item`, make the function's purpose more intuitive, clarifying that it checks if a reference name matches any negative refspec. Rename function parameters for consistency with existing naming conventions. Use `refname` instead of `name` to align with terminology in `refs.h`. Remove the redundant doc comment since the function name is now self-explanatory. Signed-off-by: Meet Soni <meetsoni3017@gmail.com> --- builtin/remote.c | 2 +- remote.c | 8 ++++---- remote.h | 6 +----- 3 files changed, 6 insertions(+), 10 deletions(-)