On Wed, Aug 15, 2018 at 9:24 AM Nguyễn Thái Ngọc Duy <pclo...@gmail.com> wrote:

The patch looks good, but since this touches multiple .c files, I
think I'd s/branch.c/branch/ in the subject line.

>
> Signed-off-by: Nguyễn Thái Ngọc Duy <pclo...@gmail.com>
> ---
>  branch.c           | 22 ++++++++++++----------
>  branch.h           |  7 +++++--
>  builtin/am.c       |  2 +-
>  builtin/branch.c   |  6 ++++--
>  builtin/checkout.c |  5 +++--
>  builtin/reset.c    |  2 +-
>  6 files changed, 26 insertions(+), 18 deletions(-)
>
> diff --git a/branch.c b/branch.c
> index ecd710d730..0baa1f6877 100644
> --- a/branch.c
> +++ b/branch.c
> @@ -244,7 +244,8 @@ N_("\n"
>  "will track its remote counterpart, you may want to use\n"
>  "\"git push -u\" to set the upstream config as you push.");
>
> -void create_branch(const char *name, const char *start_name,
> +void create_branch(struct repository *repo,
> +                  const char *name, const char *start_name,
>                    int force, int clobber_head_ok, int reflog,
>                    int quiet, enum branch_track track)
>  {
> @@ -302,7 +303,8 @@ void create_branch(const char *name, const char 
> *start_name,
>                 break;
>         }
>
> -       if ((commit = lookup_commit_reference(the_repository, &oid)) == NULL)
> +       commit = lookup_commit_reference(repo, &oid);
> +       if (!commit)
>                 die(_("Not a valid branch point: '%s'."), start_name);
>         oidcpy(&oid, &commit->object.oid);
>
> @@ -338,15 +340,15 @@ void create_branch(const char *name, const char 
> *start_name,
>         free(real_ref);
>  }
>
> -void remove_branch_state(void)
> +void remove_branch_state(struct repository *repo)
>  {
> -       unlink(git_path_cherry_pick_head(the_repository));
> -       unlink(git_path_revert_head(the_repository));
> -       unlink(git_path_merge_head(the_repository));
> -       unlink(git_path_merge_rr(the_repository));
> -       unlink(git_path_merge_msg(the_repository));
> -       unlink(git_path_merge_mode(the_repository));
> -       unlink(git_path_squash_msg(the_repository));
> +       unlink(git_path_cherry_pick_head(repo));
> +       unlink(git_path_revert_head(repo));
> +       unlink(git_path_merge_head(repo));
> +       unlink(git_path_merge_rr(repo));
> +       unlink(git_path_merge_msg(repo));
> +       unlink(git_path_merge_mode(repo));
> +       unlink(git_path_squash_msg(repo));
>  }
>
>  void die_if_checked_out(const char *branch, int ignore_current_worktree)
> diff --git a/branch.h b/branch.h
> index 473d0a93e9..14d8282927 100644
> --- a/branch.h
> +++ b/branch.h
> @@ -3,6 +3,8 @@
>
>  /* Functions for acting on the information about branches. */
>
> +struct repository;
> +
>  /*
>   * Creates a new branch, where:
>   *
> @@ -24,7 +26,8 @@
>   *     that start_name is a tracking branch for (if any).
>   *
>   */
> -void create_branch(const char *name, const char *start_name,
> +void create_branch(struct repository *repo,
> +                  const char *name, const char *start_name,
>                    int force, int clobber_head_ok,
>                    int reflog, int quiet, enum branch_track track);
>
> @@ -47,7 +50,7 @@ extern int validate_new_branchname(const char *name, struct 
> strbuf *ref, int for
>   * Remove information about the state of working on the current
>   * branch. (E.g., MERGE_HEAD)
>   */
> -void remove_branch_state(void);
> +void remove_branch_state(struct repository *);
>
>  /*
>   * Configure local branch "local" as downstream to branch "remote"
> diff --git a/builtin/am.c b/builtin/am.c
> index 2c19e69f58..7abe39939e 100644
> --- a/builtin/am.c
> +++ b/builtin/am.c
> @@ -2017,7 +2017,7 @@ static int clean_index(const struct object_id *head, 
> const struct object_id *rem
>         if (merge_tree(remote_tree))
>                 return -1;
>
> -       remove_branch_state();
> +       remove_branch_state(the_repository);
>
>         return 0;
>  }
> diff --git a/builtin/branch.c b/builtin/branch.c
> index 4fc55c3508..e04d528ce1 100644
> --- a/builtin/branch.c
> +++ b/builtin/branch.c
> @@ -795,7 +795,8 @@ int cmd_branch(int argc, const char **argv, const char 
> *prefix)
>                  * create_branch takes care of setting up the tracking
>                  * info and making sure new_upstream is correct
>                  */
> -               create_branch(branch->name, new_upstream, 0, 0, 0, quiet, 
> BRANCH_TRACK_OVERRIDE);
> +               create_branch(the_repository, branch->name, new_upstream,
> +                             0, 0, 0, quiet, BRANCH_TRACK_OVERRIDE);
>         } else if (unset_upstream) {
>                 struct branch *branch = branch_get(argv[0]);
>                 struct strbuf buf = STRBUF_INIT;
> @@ -831,7 +832,8 @@ int cmd_branch(int argc, const char **argv, const char 
> *prefix)
>                 if (track == BRANCH_TRACK_OVERRIDE)
>                         die(_("the '--set-upstream' option is no longer 
> supported. Please use '--track' or '--set-upstream-to' instead."));
>
> -               create_branch(argv[0], (argc == 2) ? argv[1] : head,
> +               create_branch(the_repository,
> +                             argv[0], (argc == 2) ? argv[1] : head,
>                               force, 0, reflog, quiet, track);
>
>         } else
> diff --git a/builtin/checkout.c b/builtin/checkout.c
> index 516136a23a..4756018272 100644
> --- a/builtin/checkout.c
> +++ b/builtin/checkout.c
> @@ -653,7 +653,8 @@ static void update_refs_for_switch(const struct 
> checkout_opts *opts,
>                         free(refname);
>                 }
>                 else
> -                       create_branch(opts->new_branch, new_branch_info->name,
> +                       create_branch(the_repository,
> +                                     opts->new_branch, new_branch_info->name,
>                                       opts->new_branch_force ? 1 : 0,
>                                       opts->new_branch_force ? 1 : 0,
>                                       opts->new_branch_log,
> @@ -711,7 +712,7 @@ static void update_refs_for_switch(const struct 
> checkout_opts *opts,
>                                 delete_reflog(old_branch_info->path);
>                 }
>         }
> -       remove_branch_state();
> +       remove_branch_state(the_repository);
>         strbuf_release(&msg);
>         if (!opts->quiet &&
>             (new_branch_info->path || (!opts->force_detach && 
> !strcmp(new_branch_info->name, "HEAD"))))
> diff --git a/builtin/reset.c b/builtin/reset.c
> index 11cd0dcb8c..d90ccdb839 100644
> --- a/builtin/reset.c
> +++ b/builtin/reset.c
> @@ -399,7 +399,7 @@ int cmd_reset(int argc, const char **argv, const char 
> *prefix)
>                         
> print_new_head_line(lookup_commit_reference(the_repository, &oid));
>         }
>         if (!pathspec.nr)
> -               remove_branch_state();
> +               remove_branch_state(the_repository);
>
>         return update_ref_status;
>  }
> --
> 2.18.0.1004.g6639190530
>

Reply via email to