builtin/branch: stop supporting the "--set-upstream" option
The '--set-upstream' option of branch was deprecated in b347d06b
("branch: deprecate --set-upstream and show help if we detect
possible mistaken use", 2012-08-30) and has been planned for removal
ever since.
In order to prevent "--set-upstream" on a command line from being taken as
an abbreviated form of "--set-upstream-to", explicitly catch "--set-upstream"
option and die, instead of just removing it from the list of options.
Before this change, an attempt to use "--set-upstream" resulted in:
$ git branch
* master
$ git branch --set-upstream origin/master
The --set-upstream flag is deprecated and will be removed. Consider using --track or --set-upstream-to
Branch origin/master set up to track local branch master.
$ echo $?
0
$ git branch
* master
origin/master
With this change, the behaviour becomes like this:
$ git branch
* master
$ git branch --set-upstream origin/master
fatal: the '--set-upstream' option is no longer supported. Please use '--track' or '--set-upstream-to' instead.
$ echo $?
128
$ git branch
* master
Signed-off-by: Kaartic Sivaraam <kaarticsivaraam91196@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:

committed by
Junio C Hamano

parent
93a6b3f234
commit
52668846ea
@ -561,8 +561,8 @@ int cmd_branch(int argc, const char **argv, const char *prefix)
|
||||
OPT__QUIET(&quiet, N_("suppress informational messages")),
|
||||
OPT_SET_INT('t', "track", &track, N_("set up tracking mode (see git-pull(1))"),
|
||||
BRANCH_TRACK_EXPLICIT),
|
||||
OPT_SET_INT( 0, "set-upstream", &track, N_("change upstream info"),
|
||||
BRANCH_TRACK_OVERRIDE),
|
||||
{ OPTION_SET_INT, 0, "set-upstream", &track, NULL, N_("do not use"),
|
||||
PARSE_OPT_NOARG | PARSE_OPT_HIDDEN, NULL, BRANCH_TRACK_OVERRIDE },
|
||||
OPT_STRING('u', "set-upstream-to", &new_upstream, N_("upstream"), N_("change the upstream info")),
|
||||
OPT_BOOL(0, "unset-upstream", &unset_upstream, N_("Unset the upstream info")),
|
||||
OPT__COLOR(&branch_use_color, N_("use colored output")),
|
||||
@ -759,8 +759,6 @@ int cmd_branch(int argc, const char **argv, const char *prefix)
|
||||
strbuf_release(&buf);
|
||||
} else if (argc > 0 && argc <= 2) {
|
||||
struct branch *branch = branch_get(argv[0]);
|
||||
int branch_existed = 0, remote_tracking = 0;
|
||||
struct strbuf buf = STRBUF_INIT;
|
||||
|
||||
if (!strcmp(argv[0], "HEAD"))
|
||||
die(_("it does not make sense to create 'HEAD' manually"));
|
||||
@ -772,28 +770,11 @@ int cmd_branch(int argc, const char **argv, const char *prefix)
|
||||
die(_("-a and -r options to 'git branch' do not make sense with a branch name"));
|
||||
|
||||
if (track == BRANCH_TRACK_OVERRIDE)
|
||||
fprintf(stderr, _("The --set-upstream flag is deprecated and will be removed. Consider using --track or --set-upstream-to\n"));
|
||||
die(_("the '--set-upstream' option is no longer supported. Please use '--track' or '--set-upstream-to' instead."));
|
||||
|
||||
strbuf_addf(&buf, "refs/remotes/%s", branch->name);
|
||||
remote_tracking = ref_exists(buf.buf);
|
||||
strbuf_release(&buf);
|
||||
|
||||
branch_existed = ref_exists(branch->refname);
|
||||
create_branch(argv[0], (argc == 2) ? argv[1] : head,
|
||||
force, reflog, 0, quiet, track);
|
||||
|
||||
/*
|
||||
* We only show the instructions if the user gave us
|
||||
* one branch which doesn't exist locally, but is the
|
||||
* name of a remote-tracking branch.
|
||||
*/
|
||||
if (argc == 1 && track == BRANCH_TRACK_OVERRIDE &&
|
||||
!branch_existed && remote_tracking) {
|
||||
fprintf(stderr, _("\nIf you wanted to make '%s' track '%s', do this:\n\n"), head, branch->name);
|
||||
fprintf(stderr, " git branch -d %s\n", branch->name);
|
||||
fprintf(stderr, " git branch --set-upstream-to %s\n", branch->name);
|
||||
}
|
||||
|
||||
} else
|
||||
usage_with_options(builtin_branch_usage, options);
|
||||
|
||||
|
Reference in New Issue
Block a user