From: Junio C Hamano Date: Fri, 19 Aug 2016 22:34:15 +0000 (-0700) Subject: Merge branch 'sb/checkout-explit-detach-no-advice' X-Git-Tag: v2.10.0-rc1~4 X-Git-Url: https://git.lorimer.id.au/gitweb.git/diff_plain/e6dab9f62fbda86d0adb530f0c2a543e3e2ed118?ds=inline;hp=-c Merge branch 'sb/checkout-explit-detach-no-advice' "git checkout --detach " used to give the same advice message as that is issued when "git checkout " (or anything that is not a branch name) is given, but asking with "--detach" is an explicit enough sign that the user knows what is going on. The advice message has been squelched in this case. * sb/checkout-explit-detach-no-advice: checkout: do not mention detach advice for explicit --detach option --- e6dab9f62fbda86d0adb530f0c2a543e3e2ed118 diff --combined builtin/checkout.c index 4866111522,91bafdaef4..8672d0724f --- a/builtin/checkout.c +++ b/builtin/checkout.c @@@ -276,7 -276,7 +276,7 @@@ static int checkout_paths(const struct hold_locked_index(lock_file, 1); if (read_cache_preload(&opts->pathspec) < 0) - return error(_("corrupt index file")); + return error(_("index file corrupt")); if (opts->source_tree) read_tree_some(opts->source_tree, &opts->pathspec); @@@ -470,7 -470,7 +470,7 @@@ static int merge_working_tree(const str hold_locked_index(lock_file, 1); if (read_cache_preload(NULL) < 0) - return error(_("corrupt index file")); + return error(_("index file corrupt")); resolve_undo_clear(); if (opts->force) { @@@ -567,13 -567,10 +567,13 @@@ o.ancestor = old->name; o.branch1 = new->name; o.branch2 = "local"; - merge_trees(&o, new->commit->tree, work, + ret = merge_trees(&o, new->commit->tree, work, old->commit->tree, &result); + if (ret < 0) + exit(128); ret = reset_tree(new->commit->tree, opts, 0, writeout_error); + strbuf_release(&o.obuf); if (ret) return ret; } @@@ -658,7 -655,8 +658,8 @@@ static void update_refs_for_switch(cons update_ref(msg.buf, "HEAD", new->commit->object.oid.hash, NULL, REF_NODEREF, UPDATE_REFS_DIE_ON_ERR); if (!opts->quiet) { - if (old->path && advice_detached_head) + if (old->path && + advice_detached_head && !opts->force_detach) detach_advice(new->name); describe_detached_head(_("HEAD is now at"), new->commit); } @@@ -706,7 -704,8 +707,7 @@@ static int add_pending_uninteresting_re static void describe_one_orphan(struct strbuf *sb, struct commit *commit) { strbuf_addstr(sb, " "); - strbuf_addstr(sb, - find_unique_abbrev(commit->object.oid.hash, DEFAULT_ABBREV)); + strbuf_add_unique_abbrev(sb, commit->object.oid.hash, DEFAULT_ABBREV); strbuf_addch(sb, ' '); if (!parse_commit(commit)) pp_commit_easy(CMIT_FMT_ONELINE, commit, sb); @@@ -1140,7 -1139,7 +1141,7 @@@ int cmd_checkout(int argc, const char * OPT_STRING('B', NULL, &opts.new_branch_force, N_("branch"), N_("create/reset and checkout a branch")), OPT_BOOL('l', NULL, &opts.new_branch_log, N_("create reflog for new branch")), - OPT_BOOL(0, "detach", &opts.force_detach, N_("detach the HEAD at named commit")), + OPT_BOOL(0, "detach", &opts.force_detach, N_("detach HEAD at named commit")), OPT_SET_INT('t', "track", &opts.track, N_("set upstream info for new branch"), BRANCH_TRACK_EXPLICIT), OPT_STRING(0, "orphan", &opts.new_orphan_branch, N_("new-branch"), N_("new unparented branch")),