Subject: Re: [PATCH 35/35] submodule: convert push_unpushed_submodules to take a struct refspec

From: Ævar Arnfjörð Bjarmason <[email-masked]>
Date: Tue, 15 May 2018 10:11:16 +0200

On Mon, May 14 2018, Brandon Williams wrote:

> Convert 'push_unpushed_submodules()' to take a 'struct refspec' as a
> parameter instead of an array of 'const char *'.
> [...]
> diff --git a/submodule.h b/submodule.h
> index e5526f6aa..aae0c9c8f 100644
> --- a/submodule.h
> +++ b/submodule.h
> @@ -100,9 +100,10 @@ extern int submodule_touches_in_range(struct object_id *a,
>  extern int find_unpushed_submodules(struct oid_array *commits,
>  				    const char *remotes_name,
>  				    struct string_list *needs_pushing);
> +struct refspec;
>  extern int push_unpushed_submodules(struct oid_array *commits,
>  				    const struct remote *remote,
> -				    const char **refspec, int refspec_nr,
> +				    const struct refspec *rs,
>  				    const struct string_list *push_options,
>  				    int dry_run);
>  /*

Why do you prefer doing this to having this on top?:
    
    diff --git a/submodule.h b/submodule.h
    index aae0c9c8ff..c3f206ce17 100644
    --- a/submodule.h
    +++ b/submodule.h
    @@ -1,5 +1,6 @@
     #ifndef SUBMODULE_H
     #define SUBMODULE_H
    +#include "refspec.h"
     
     struct repository;
     struct diff_options;
    @@ -100,7 +101,6 @@ extern int submodule_touches_in_range(struct object_id *a,
     extern int find_unpushed_submodules(struct oid_array *commits,
                                        const char *remotes_name,
                                        struct string_list *needs_pushing);
    -struct refspec;
     extern int push_unpushed_submodules(struct oid_array *commits,
                                        const struct remote *remote,
                                        const struct refspec *rs,