Merge branch 'sb/pull-rebase-submodule'
authorJunio C Hamano <gitster@pobox.com>
Thu, 15 Feb 2018 22:55:43 +0000 (14:55 -0800)
committerJunio C Hamano <gitster@pobox.com>
Thu, 15 Feb 2018 22:55:43 +0000 (14:55 -0800)
"git pull --rebase" did not pass verbosity setting down when
recursing into a submodule.

* sb/pull-rebase-submodule:
builtin/pull: respect verbosity settings in submodules

1  2 
builtin/pull.c
diff --combined builtin/pull.c
index 511dbbe0f6e25d8f0e8c6ce511cc0ff734adc9bc,44474fdb71861f4a4f96ed7d2e695c945fbd50e7..1876271af9423dc58bb66d00bdd1eaa62a983dab
@@@ -6,7 -6,6 +6,7 @@@
   * Fetch one or more remote refs and merge it/them into the current HEAD.
   */
  #include "cache.h"
 +#include "config.h"
  #include "builtin.h"
  #include "parse-options.h"
  #include "exec_cmd.h"
@@@ -39,7 -38,7 +39,7 @@@ enum rebase_type 
  static enum rebase_type parse_config_rebase(const char *key, const char *value,
                int fatal)
  {
 -      int v = git_config_maybe_bool("pull.rebase", value);
 +      int v = git_parse_maybe_bool(value);
  
        if (!v)
                return REBASE_FALSE;
@@@ -86,7 -85,6 +86,7 @@@ static int recurse_submodules = RECURSE
  static enum rebase_type opt_rebase = -1;
  static char *opt_diffstat;
  static char *opt_log;
 +static char *opt_signoff;
  static char *opt_squash;
  static char *opt_commit;
  static char *opt_edit;
@@@ -113,8 -111,6 +113,8 @@@ static char *opt_depth
  static char *opt_unshallow;
  static char *opt_update_shallow;
  static char *opt_refmap;
 +static char *opt_ipv4;
 +static char *opt_ipv6;
  
  static struct option pull_options[] = {
        /* Shared options */
        OPT_PASSTHRU(0, "log", &opt_log, N_("n"),
                N_("add (at most <n>) entries from shortlog to merge commit message"),
                PARSE_OPT_OPTARG),
 +      OPT_PASSTHRU(0, "signoff", &opt_signoff, NULL,
 +              N_("add Signed-off-by:"),
 +              PARSE_OPT_OPTARG),
        OPT_PASSTHRU(0, "squash", &opt_squash, NULL,
                N_("create a single commit instead of doing a merge"),
                PARSE_OPT_NOARG),
        OPT_PASSTHRU(0, "refmap", &opt_refmap, N_("refmap"),
                N_("specify fetch refmap"),
                PARSE_OPT_NONEG),
 +      OPT_PASSTHRU('4',  "ipv4", &opt_ipv4, NULL,
 +              N_("use IPv4 addresses only"),
 +              PARSE_OPT_NOARG),
 +      OPT_PASSTHRU('6',  "ipv6", &opt_ipv6, NULL,
 +              N_("use IPv6 addresses only"),
 +              PARSE_OPT_NOARG),
  
        OPT_END()
  };
@@@ -286,7 -273,7 +286,7 @@@ static const char *config_get_ff(void
        if (git_config_get_value("pull.ff", &value))
                return NULL;
  
 -      switch (git_config_maybe_bool("pull.ff", value)) {
 +      switch (git_parse_maybe_bool(value)) {
        case 0:
                return "--no-ff";
        case 1:
@@@ -337,10 -324,6 +337,10 @@@ static int git_pull_config(const char *
        if (!strcmp(var, "rebase.autostash")) {
                config_autostash = git_config_bool(var, value);
                return 0;
 +      } else if (!strcmp(var, "submodule.recurse")) {
 +              recurse_submodules = git_config_bool(var, value) ?
 +                      RECURSE_SUBMODULES_ON : RECURSE_SUBMODULES_OFF;
 +              return 0;
        }
        return git_default_config(var, value, cb);
  }
@@@ -530,10 -513,6 +530,10 @@@ static int run_fetch(const char *repo, 
                argv_array_push(&args, opt_update_shallow);
        if (opt_refmap)
                argv_array_push(&args, opt_refmap);
 +      if (opt_ipv4)
 +              argv_array_push(&args, opt_ipv4);
 +      if (opt_ipv6)
 +              argv_array_push(&args, opt_ipv6);
  
        if (repo) {
                argv_array_push(&args, repo);
@@@ -557,10 -536,10 +557,10 @@@ static int pull_into_void(const struct 
         * index/worktree changes that the user already made on the unborn
         * branch.
         */
 -      if (checkout_fast_forward(&empty_tree_oid, merge_head, 0))
 +      if (checkout_fast_forward(the_hash_algo->empty_tree, merge_head, 0))
                return 1;
  
 -      if (update_ref("initial pull", "HEAD", merge_head->hash, curr_head->hash, 0, UPDATE_REFS_DIE_ON_ERR))
 +      if (update_ref("initial pull", "HEAD", merge_head, curr_head, 0, UPDATE_REFS_DIE_ON_ERR))
                return 1;
  
        return 0;
@@@ -574,6 -553,7 +574,7 @@@ static int rebase_submodules(void
        cp.no_stdin = 1;
        argv_array_pushl(&cp.args, "submodule", "update",
                                   "--recursive", "--rebase", NULL);
+       argv_push_verbosity(&cp.args);
  
        return run_command(&cp);
  }
@@@ -586,6 -566,7 +587,7 @@@ static int update_submodules(void
        cp.no_stdin = 1;
        argv_array_pushl(&cp.args, "submodule", "update",
                                   "--recursive", "--checkout", NULL);
+       argv_push_verbosity(&cp.args);
  
        return run_command(&cp);
  }
@@@ -610,8 -591,6 +612,8 @@@ static int run_merge(void
                argv_array_push(&args, opt_diffstat);
        if (opt_log)
                argv_array_push(&args, opt_log);
 +      if (opt_signoff)
 +              argv_array_push(&args, opt_signoff);
        if (opt_squash)
                argv_array_push(&args, opt_squash);
        if (opt_commit)
@@@ -763,15 -742,12 +765,15 @@@ static int get_octopus_merge_base(struc
        if (!is_null_oid(fork_point))
                commit_list_insert(lookup_commit_reference(fork_point), &revs);
  
 -      result = reduce_heads(get_octopus_merge_bases(revs));
 +      result = get_octopus_merge_bases(revs);
        free_commit_list(revs);
 +      reduce_heads_replace(&result);
 +
        if (!result)
                return 1;
  
        oidcpy(merge_base, &result->item->object.oid);
 +      free_commit_list(result);
        return 0;
  }
  
@@@ -840,8 -816,6 +842,8 @@@ int cmd_pull(int argc, const char **arg
        if (!getenv("GIT_REFLOG_ACTION"))
                set_reflog_message(argc, argv);
  
 +      git_config(git_pull_config, NULL);
 +
        argc = parse_options(argc, argv, prefix, pull_options, pull_usage, 0);
  
        parse_repo_refspecs(argc, argv, &repo, &refspecs);
        if (opt_rebase < 0)
                opt_rebase = config_get_rebase();
  
 -      git_config(git_pull_config, NULL);
 -
        if (read_cache_unmerged())
                die_resolve_conflict("pull");