From: Kaartic Sivaraam <kaarticsivaraam91196@gmail.com>
To: gitster@pobox.com, martin.agren@gmail.com
Cc: git@vger.kernel.org
Subject: [PATCH v4 2/3] builtin/branch: stop supporting the use of --set-upstream option
Date: Thu, 17 Aug 2017 08:24:24 +0530 [thread overview]
Message-ID: <20170817025425.6647-2-kaarticsivaraam91196@gmail.com> (raw)
In-Reply-To: <20170817025425.6647-1-kaarticsivaraam91196@gmail.com>
The '--set-upstream' option of branch was deprecated in,
b347d06bf branch: deprecate --set-upstream and show help if we
detect possible mistaken use (Thu, 30 Aug 2012 19:23:13 +0200)
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.
The option is planned to be removed after this change has been around for a few
years.
The before/after behaviour for a simple case follows,
$ git remote
origin
Before,
$ 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
After,
$ 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
Helped-by: Martin Ågren <martin.agren@gmail.com>, Junio C Hamano <gitster@pobox.com>
Signed-off-by: Kaartic Sivaraam <kaarticsivaraam91196@gmail.com>
---
Changes in v4:
- made a few changes suggested by Martin
- hid the '--set-upstream' option from 'git branch -h' as suggested by Junio
- updated commit message as suggested by Junio
- updated error message (this should have been in v3 but somehow got skipped)
Note: I'm not using the word 'removed' in the error messages or in the documentation as
I feel it counter-intuitive from the end user's perspective because
* 'git branch' still accepts the option in the command line
* The option has not yet been removed from the synopsis of the documentation and I think
we can't remove it from the 'Synopsis' porion of the documentation as it doesn't make
sense (at least to me) to give a description of an option not listed in the synopsis.
Moreover, we have to state the reason for not supporting it in some place.
I guess the phrase 'no longer supported' is equally communicative. Let me know if that was not
a right decision.
Documentation/git-branch.txt | 8 ++++----
builtin/branch.c | 25 +++--------------------
t/t3200-branch.sh | 47 ++------------------------------------------
t/t6040-tracking-info.sh | 20 +++++++------------
4 files changed, 16 insertions(+), 84 deletions(-)
diff --git a/Documentation/git-branch.txt b/Documentation/git-branch.txt
index 81bd0a7b7..948d9c9ef 100644
--- a/Documentation/git-branch.txt
+++ b/Documentation/git-branch.txt
@@ -195,10 +195,10 @@ start-point is either a local or remote-tracking branch.
branch.autoSetupMerge configuration variable is true.
--set-upstream::
- If specified branch does not exist yet or if `--force` has been
- given, acts exactly like `--track`. Otherwise sets up configuration
- like `--track` would when creating the branch, except that where
- branch points to is not changed.
+ As this option had confusing syntax it's no longer supported. Please use
+ --track or --set-upstream-to instead.
++
+Note: This could possibly become an alias of --set-upstream-to in the future.
-u <upstream>::
--set-upstream-to=<upstream>::
diff --git a/builtin/branch.c b/builtin/branch.c
index a3bd2262b..6e3ea5787 100644
--- a/builtin/branch.c
+++ b/builtin/branch.c
@@ -557,8 +557,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")),
@@ -755,8 +755,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"));
@@ -768,28 +766,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);
diff --git a/t/t3200-branch.sh b/t/t3200-branch.sh
index b54b3ebf3..34f556998 100755
--- a/t/t3200-branch.sh
+++ b/t/t3200-branch.sh
@@ -606,38 +606,8 @@ test_expect_success 'test --unset-upstream on a particular branch' '
test_must_fail git config branch.my14.merge
'
-test_expect_success '--set-upstream shows message when creating a new branch that exists as remote-tracking' '
- git update-ref refs/remotes/origin/master HEAD &&
- git branch --set-upstream origin/master 2>actual &&
- test_when_finished git update-ref -d refs/remotes/origin/master &&
- test_when_finished git branch -d origin/master &&
- cat >expected <<EOF &&
-The --set-upstream flag is deprecated and will be removed. Consider using --track or --set-upstream-to
-
-If you wanted to make '"'master'"' track '"'origin/master'"', do this:
-
- git branch -d origin/master
- git branch --set-upstream-to origin/master
-EOF
- test_i18ncmp expected actual
-'
-
-test_expect_success '--set-upstream with two args only shows the deprecation message' '
- git branch --set-upstream master my13 2>actual &&
- test_when_finished git branch --unset-upstream master &&
- cat >expected <<EOF &&
-The --set-upstream flag is deprecated and will be removed. Consider using --track or --set-upstream-to
-EOF
- test_i18ncmp expected actual
-'
-
-test_expect_success '--set-upstream with one arg only shows the deprecation message if the branch existed' '
- git branch --set-upstream my13 2>actual &&
- test_when_finished git branch --unset-upstream my13 &&
- cat >expected <<EOF &&
-The --set-upstream flag is deprecated and will be removed. Consider using --track or --set-upstream-to
-EOF
- test_i18ncmp expected actual
+test_expect_success '--set-upstream fails' '
+ test_must_fail git branch --set-upstream origin/master
'
test_expect_success '--set-upstream-to notices an error to set branch as own upstream' '
@@ -962,19 +932,6 @@ test_expect_success 'attempt to delete a branch merged to its base' '
test_must_fail git branch -d my10
'
-test_expect_success 'use set-upstream on the current branch' '
- git checkout master &&
- git --bare init myupstream.git &&
- git push myupstream.git master:refs/heads/frotz &&
- git remote add origin myupstream.git &&
- git fetch &&
- git branch --set-upstream master origin/frotz &&
-
- test "z$(git config branch.master.remote)" = "zorigin" &&
- test "z$(git config branch.master.merge)" = "zrefs/heads/frotz"
-
-'
-
test_expect_success 'use --edit-description' '
write_script editor <<-\EOF &&
echo "New contents" >"$1"
diff --git a/t/t6040-tracking-info.sh b/t/t6040-tracking-info.sh
index 97a07655a..be78cc4fa 100755
--- a/t/t6040-tracking-info.sh
+++ b/t/t6040-tracking-info.sh
@@ -188,35 +188,29 @@ test_expect_success 'fail to track annotated tags' '
test_must_fail git checkout heavytrack
'
-test_expect_success 'setup tracking with branch --set-upstream on existing branch' '
+test_expect_success '--set-upstream-to does not change branch' '
git branch from-master master &&
- test_must_fail git config branch.from-master.merge > actual &&
- git branch --set-upstream from-master master &&
- git config branch.from-master.merge > actual &&
- grep -q "^refs/heads/master$" actual
-'
-
-test_expect_success '--set-upstream does not change branch' '
+ git branch --set-upstream-to master from-master &&
git branch from-master2 master &&
test_must_fail git config branch.from-master2.merge > actual &&
git rev-list from-master2 &&
git update-ref refs/heads/from-master2 from-master2^ &&
git rev-parse from-master2 >expect2 &&
- git branch --set-upstream from-master2 master &&
+ git branch --set-upstream-to master from-master2 &&
git config branch.from-master.merge > actual &&
git rev-parse from-master2 >actual2 &&
grep -q "^refs/heads/master$" actual &&
cmp expect2 actual2
'
-test_expect_success '--set-upstream @{-1}' '
- git checkout from-master &&
+test_expect_success '--set-upstream-to @{-1}' '
+ git checkout follower &&
git checkout from-master2 &&
git config branch.from-master2.merge > expect2 &&
- git branch --set-upstream @{-1} follower &&
+ git branch --set-upstream-to @{-1} from-master &&
git config branch.from-master.merge > actual &&
git config branch.from-master2.merge > actual2 &&
- git branch --set-upstream from-master follower &&
+ git branch --set-upstream-to follower from-master &&
git config branch.from-master.merge > expect &&
test_cmp expect2 actual2 &&
test_cmp expect actual
--
2.14.0.rc1.434.g6eded367a
next prev parent reply other threads:[~2017-08-17 2:53 UTC|newest]
Thread overview: 127+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-07-24 15:41 [PATCH/RFC] branch: warn user about non-existent branch Kaartic Sivaraam
2017-07-24 19:16 ` Change in output as a result of patch Kaartic Sivaraam
2017-07-24 21:25 ` Junio C Hamano
2017-07-25 18:54 ` Kaartic Sivaraam
2017-07-26 22:29 ` Junio C Hamano
2017-08-07 14:39 ` Can the '--set-upstream' option of branch be removed ? Kaartic Sivaraam
2017-08-07 14:39 ` [PATCH 1/2 / RFC] builtin/branch: remove the deprecated '--set-upstream' option Kaartic Sivaraam
2017-08-07 14:39 ` [PATCH 2/2 / RFC] branch: quote branch/ref names to improve readability Kaartic Sivaraam
2017-08-07 20:59 ` Can the '--set-upstream' option of branch be removed ? Junio C Hamano
2017-08-08 13:00 ` Kaartic Sivaraam
2017-08-08 16:47 ` Junio C Hamano
2017-08-08 17:11 ` [PATCH v2 1/2 / RFC] builtin/branch: stop supporting the use of --set-upstream option Kaartic Sivaraam
2017-08-08 17:11 ` [PATCH v2 2/2 / RFC] branch: quote branch/ref names to improve readability Kaartic Sivaraam
2017-08-08 18:55 ` Stefan Beller
2017-08-08 19:43 ` Junio C Hamano
2017-08-08 20:08 ` Stefan Beller
2017-08-08 18:33 ` [PATCH v2 1/2 / RFC] builtin/branch: stop supporting the use of --set-upstream option Martin Ågren
2017-08-14 8:50 ` Kaartic Sivaraam
2017-08-14 8:54 ` [PATCH v3 " Kaartic Sivaraam
2017-08-14 19:14 ` Martin Ågren
2017-08-15 10:23 ` Kaartic Sivaraam
2017-08-14 20:19 ` Junio C Hamano
2017-08-15 10:56 ` Kaartic Sivaraam
2017-08-15 18:58 ` Junio C Hamano
2017-08-16 18:13 ` Kaartic Sivaraam
2017-08-16 19:09 ` Junio C Hamano
2017-08-17 2:04 ` Kaartic Sivaraam
2017-09-12 6:49 ` Junio C Hamano
2017-09-12 7:00 ` Kaartic Sivaraam
2017-09-12 10:31 ` [PATCH/RFC] branch: strictly don't allow a branch with name 'HEAD' Kaartic Sivaraam
2017-08-17 2:54 ` [PATCH v4 1/3] test: cleanup cruft of a test Kaartic Sivaraam
2017-08-17 2:54 ` Kaartic Sivaraam [this message]
2017-08-17 18:21 ` [PATCH v4 2/3] builtin/branch: stop supporting the use of --set-upstream option Martin Ågren
2017-08-17 19:55 ` Junio C Hamano
2017-08-18 2:41 ` Kaartic Sivaraam
2017-08-18 16:30 ` Junio C Hamano
2017-08-18 16:57 ` Martin Ågren
2017-08-17 19:58 ` Junio C Hamano
2017-08-18 2:39 ` Kaartic Sivaraam
2017-08-18 16:31 ` Junio C Hamano
2017-08-17 2:54 ` [PATCH v4 3/3] branch: quote branch/ref names to improve readability Kaartic Sivaraam
2017-08-07 14:49 ` Change in output as a result of patch Kaartic Sivaraam
2017-09-19 7:15 ` [RFC PATCH 0/5] branch: improve error messages of branch renaming Kaartic Sivaraam
2017-09-19 7:15 ` [RFC PATCH 1/5] builtin/checkout: avoid usage of '!!' Kaartic Sivaraam
2017-09-20 4:00 ` Junio C Hamano
2017-09-20 8:09 ` Kaartic Sivaraam
2017-09-20 11:26 ` Kaartic Sivaraam
2017-09-21 1:31 ` Junio C Hamano
2017-09-23 12:17 ` Kaartic Sivaraam
2017-09-19 7:15 ` [RFC PATCH 2/5] branch: document the usage of certain parameters Kaartic Sivaraam
2017-09-20 4:12 ` Junio C Hamano
2017-09-20 9:01 ` Kaartic Sivaraam
2017-09-21 1:33 ` Junio C Hamano
2017-09-19 7:15 ` [RFC PATCH 3/5] branch: cleanup branch name validation Kaartic Sivaraam
2017-09-20 4:20 ` Junio C Hamano
2017-09-20 12:04 ` Kaartic Sivaraam
2017-09-21 1:37 ` Junio C Hamano
2017-09-23 12:52 ` Kaartic Sivaraam
2017-09-20 14:52 ` Kaartic Sivaraam
2017-09-19 7:15 ` [RFC PATCH 4/5] branch: introduce dont_fail parameter for update validation Kaartic Sivaraam
2017-09-19 7:15 ` [RFC PATCH 5/5] builtin/branch: give more useful error messages when renaming Kaartic Sivaraam
2017-09-19 8:41 ` [RFC SAMPLE] " Kaartic Sivaraam
2017-09-19 9:33 ` Kaartic Sivaraam
2017-09-20 20:57 ` [RFC PATCH 5/5] " Stefan Beller
2017-09-23 10:50 ` Kaartic Sivaraam
2017-09-25 8:20 ` [RFC PATCH v2 0/5] Give more useful error messages when renaming a branch Kaartic Sivaraam
2017-09-25 8:20 ` [RFC PATCH v2 1/5] branch: improve documentation and naming of certain parameters Kaartic Sivaraam
2017-10-20 21:33 ` Stefan Beller
2017-10-20 21:51 ` Eric Sunshine
2017-10-21 2:32 ` Kaartic Sivaraam
2017-10-21 2:31 ` Kaartic Sivaraam
2017-09-25 8:20 ` [RFC PATCH v2 2/5] branch: re-order function arguments to group related arguments Kaartic Sivaraam
2017-10-20 21:50 ` Stefan Beller
2017-10-21 2:56 ` Kaartic Sivaraam
2017-10-23 19:32 ` Stefan Beller
2017-09-25 8:20 ` [RFC PATCH v2 3/5] branch: cleanup branch name validation Kaartic Sivaraam
2017-09-25 8:20 ` [RFC PATCH v2 4/5] branch: introduce dont_fail parameter for create validation Kaartic Sivaraam
2017-09-25 8:20 ` [RFC PATCH v2 5/5] builtin/branch: give more useful error messages when renaming Kaartic Sivaraam
2017-10-23 19:44 ` Stefan Beller
2017-10-24 3:37 ` Kaartic Sivaraam
2017-10-20 7:09 ` [RFC PATCH v2 0/5] Give more useful error messages when renaming a branch Kaartic Sivaraam
2017-10-20 18:58 ` Stefan Beller
2017-11-02 6:54 ` [RFC PATCH v3 0/4] give more useful error messages while renaming branch Kaartic Sivaraam
2017-11-02 6:54 ` [RFC PATCH v3 1/4] branch: improve documentation and naming of 'create_branch()' Kaartic Sivaraam
2017-11-02 6:54 ` [RFC PATCH v3 2/4] branch: re-order function arguments to group related arguments Kaartic Sivaraam
2017-11-06 2:06 ` Junio C Hamano
2017-11-12 13:27 ` Kaartic Sivaraam
2017-11-13 2:32 ` Junio C Hamano
2017-11-13 3:06 ` Kaartic Sivaraam
2017-11-02 6:54 ` [RFC PATCH v3 3/4] branch: introduce dont_fail parameter for branchname validation Kaartic Sivaraam
2017-11-02 8:39 ` Kaartic Sivaraam
2017-11-02 18:42 ` Stefan Beller
2017-11-03 2:58 ` Kaartic Sivaraam
2017-11-06 2:24 ` Junio C Hamano
2017-11-12 13:33 ` Kaartic Sivaraam
2017-11-02 6:54 ` [RFC PATCH v3 4/4] builtin/branch: give more useful error messages when renaming Kaartic Sivaraam
2017-11-02 14:21 ` Eric Sunshine
2017-11-03 2:41 ` Kaartic Sivaraam
2017-11-06 2:30 ` Junio C Hamano
2017-11-12 14:05 ` Kaartic Sivaraam
2017-11-12 18:23 ` Kevin Daudt
2017-11-13 2:31 ` Kaartic Sivaraam
2017-11-13 11:30 ` Kevin Daudt
2017-11-14 5:25 ` Kaartic Sivaraam
2017-11-18 17:26 ` [PATCH 0/4] cleanups surrounding branch Kaartic Sivaraam
2017-11-18 17:26 ` [PATCH 1/4] branch: improve documentation and naming of create_branch() parameters Kaartic Sivaraam
2017-11-18 17:26 ` [PATCH 2/4] branch: group related arguments of create_branch() Kaartic Sivaraam
2017-11-18 17:26 ` [PATCH 3/4] branch: update warning message shown when copying a misnamed branch Kaartic Sivaraam
2017-11-18 17:26 ` [PATCH 4/4] builtin/branch: strip refs/heads/ using skip_prefix Kaartic Sivaraam
2017-11-19 1:04 ` Eric Sunshine
2017-11-19 17:21 ` Kaartic Sivaraam
2017-11-19 18:06 ` Eric Sunshine
2017-11-29 3:46 ` [PATCH v4 " Kaartic Sivaraam
2017-12-01 5:59 ` [PATCH v5 " Kaartic Sivaraam
2017-12-04 4:29 ` SZEDER Gábor
2017-12-07 23:00 ` Junio C Hamano
2017-12-07 23:14 ` Junio C Hamano
2017-12-08 17:39 ` Kaartic Sivaraam
2018-03-10 15:54 ` [PATCH v4 0/3] give more useful error messages while renaming branch (reboot) Kaartic Sivaraam
2018-03-10 15:54 ` [PATCH v4 1/3] branch: introduce dont_fail parameter for branchname validation Kaartic Sivaraam
2018-03-15 20:27 ` Junio C Hamano
2018-03-16 18:12 ` Kaartic Sivaraam
2018-03-10 15:54 ` [PATCH v4 2/3] builtin/branch: give more useful error messages when renaming Kaartic Sivaraam
2018-03-15 20:33 ` Junio C Hamano
2018-03-24 17:09 ` Kaartic Sivaraam
2018-03-10 15:54 ` [PATCH v4 3/3] t/t3200: fix a typo in a test description Kaartic Sivaraam
2018-03-15 20:41 ` Junio C Hamano
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: http://vger.kernel.org/majordomo-info.html
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20170817025425.6647-2-kaarticsivaraam91196@gmail.com \
--to=kaarticsivaraam91196@gmail.com \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
--cc=martin.agren@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this public inbox
https://80x24.org/mirrors/git.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).