From: "Glen Choo via GitGitGadget" <gitgitgadget@gmail.com>
To: git@vger.kernel.org
Cc: "Ævar Arnfjörð Bjarmason" <avarab@gmail.com>,
"Jonathan Tan" <jonathantanmy@google.com>,
"Junio C Hamano" <gitster@pobox.com>,
"Glen Choo" <chooglen@google.com>
Subject: [PATCH v2 0/4] branch --recurse-submodules: Bug fixes and clean ups
Date: Thu, 31 Mar 2022 18:49:57 +0000 [thread overview]
Message-ID: <pull.1190.v2.git.1648752601.gitgitgadget@gmail.com> (raw)
In-Reply-To: <pull.1190.git.1648584079.gitgitgadget@gmail.com>
Thanks for the feedback, all. This version incorporates most of the
suggestions (which were pretty small anyway).
== Patch organization
Patches 1-2 are bugfixes, 3-4 are clean ups.
Patch 1 fixes a bug where "git branch --recurse-submodules" would not
propagate the "--track" option if its value was "--no-track" or
"--track=inherit".
Patch 2 fixes a bug where "git branch --recurse-submodules" would give
advice before telling the user what the problem is (instead of the other way
around).
Patch 3 fixes some old inconsistencies when "git branch --set-upstream-to"
gives advice and when it doesn't.
Patch 4 replaces exit(-1) with exit(1).
== Changes
Since v1:
* Patch 1: reword the --track comments to be prescriptive
* Patch 3: remove a now-unnecessary die(). I didn't include a suggestion to
inline the advice string to save reviewers the trouble of proofreading
(and the format string has no placeholders anyway, so I don't think we'd
get much benefit out of typechecking). We can inline it in another
series.
Glen Choo (4):
branch: support more tracking modes when recursing
branch: give submodule updating advice before exit
branch --set-upstream-to: be consistent when advising
branch: remove negative exit code
branch.c | 47 +++++++++++++++++++++++++++----------
builtin/submodule--helper.c | 7 +++---
t/t3207-branch-submodule.sh | 38 +++++++++++++++++++++++++++++-
3 files changed, 76 insertions(+), 16 deletions(-)
base-commit: abf474a5dd901f28013c52155411a48fd4c09922
Published-As: https://github.com/gitgitgadget/git/releases/tag/pr-1190%2Fchooglen%2Fbranch%2Frecursive-fixes-v2
Fetch-It-Via: git fetch https://github.com/gitgitgadget/git pr-1190/chooglen/branch/recursive-fixes-v2
Pull-Request: https://github.com/gitgitgadget/git/pull/1190
Range-diff vs v1:
1: 0b682c173c8 ! 1: 5e96a09199f branch: support more tracking modes when recursing
@@ branch.c: static int submodule_create_branch(struct repository *r,
+ strvec_push(&child.args, "--track=inherit");
+ break;
+ case BRANCH_TRACK_UNSPECIFIED:
-+ /* Default for "git checkout". No need to pass --track. */
++ /* Default for "git checkout". Do not pass --track. */
+ case BRANCH_TRACK_REMOTE:
-+ /* Default for "git branch". No need to pass --track. */
++ /* Default for "git branch". Do not pass --track. */
+ break;
+ }
2: f21d283e5ad = 2: 74b839bfc4e branch: give submodule updating advice before exit
3: 8e6ea3478b3 ! 3: 64d9b8e0f44 branch --set-upstream-to: be consistent when advising
@@ Commit message
[1] https://lore.kernel.org/git/211210.86ee6ldwlc.gmgdl@evledraar.gmail.com
+ Helped-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
Signed-off-by: Glen Choo <chooglen@google.com>
## branch.c ##
@@ branch.c: static void dwim_branch_start(struct repository *r, const char *start_name,
+ real_ref = NULL;
if (get_oid_mb(start_name, &oid)) {
if (explicit_tracking) {
- if (advice_enabled(ADVICE_SET_UPSTREAM_FAILURE)) {
+- if (advice_enabled(ADVICE_SET_UPSTREAM_FAILURE)) {
- error(_(upstream_missing), start_name);
-+ int code = die_message(_(upstream_missing),
-+ start_name);
- advise(_(upstream_advice));
+- advise(_(upstream_advice));
- exit(1);
-+ exit(code);
- }
- die(_(upstream_missing), start_name);
+- }
+- die(_(upstream_missing), start_name);
++ int code = die_message(_(upstream_missing), start_name);
++ advise_if_enabled(ADVICE_SET_UPSTREAM_FAILURE,
++ _(upstream_advice));
++ exit(code);
}
+ die(_("not a valid object name: '%s'"), start_name);
+ }
4: fb2b472d9ae = 4: 306858373cc branch: remove negative exit code
--
gitgitgadget
next prev parent reply other threads:[~2022-03-31 18:50 UTC|newest]
Thread overview: 21+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-03-29 20:01 [PATCH 0/4] branch --recurse-submodules: Bug fixes and clean ups Glen Choo via GitGitGadget
2022-03-29 20:01 ` [PATCH 1/4] branch: support more tracking modes when recursing Glen Choo via GitGitGadget
2022-03-30 21:13 ` Junio C Hamano
2022-03-30 23:29 ` Glen Choo
2022-03-29 20:01 ` [PATCH 2/4] branch: give submodule updating advice before exit Glen Choo via GitGitGadget
2022-03-30 21:15 ` Junio C Hamano
2022-03-29 20:01 ` [PATCH 3/4] branch --set-upstream-to: be consistent when advising Glen Choo via GitGitGadget
2022-03-30 22:28 ` Ævar Arnfjörð Bjarmason
2022-03-31 16:52 ` Glen Choo
2022-03-29 20:01 ` [PATCH 4/4] branch: remove negative exit code Glen Choo via GitGitGadget
2022-03-31 18:49 ` Glen Choo via GitGitGadget [this message]
2022-03-31 18:49 ` [PATCH v2 1/4] branch: support more tracking modes when recursing Glen Choo via GitGitGadget
2022-03-31 18:49 ` [PATCH v2 2/4] branch: give submodule updating advice before exit Glen Choo via GitGitGadget
2022-03-31 18:50 ` [PATCH v2 3/4] branch --set-upstream-to: be consistent when advising Glen Choo via GitGitGadget
2022-03-31 18:50 ` [PATCH v2 4/4] branch: remove negative exit code Glen Choo via GitGitGadget
2022-03-31 22:39 ` [PATCH v2 0/4] branch --recurse-submodules: Bug fixes and clean ups Junio C Hamano
2022-03-31 22:41 ` [PATCH 1/2] branch: rework comments for future developers Junio C Hamano
2022-03-31 22:41 ` [PATCH 2/2] branch.c: simplify advice-and-die sequence Junio C Hamano
2022-04-01 10:03 ` Ævar Arnfjörð Bjarmason
2022-04-01 16:59 ` [PATCH v2 0/4] branch --recurse-submodules: Bug fixes and clean ups Glen Choo
2022-04-01 20:14 ` 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
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=pull.1190.v2.git.1648752601.gitgitgadget@gmail.com \
--to=gitgitgadget@gmail.com \
--cc=avarab@gmail.com \
--cc=chooglen@google.com \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
--cc=jonathantanmy@google.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.
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 NNTP newsgroup(s).