From: "Harald Nordgren via GitGitGadget" <gitgitgadget@gmail.com>
To: git@vger.kernel.org
Cc: Phillip Wood <phillip.wood123@gmail.com>,
Chris Torek <chris.torek@gmail.com>, Jeff King <peff@peff.net>,
Harald Nordgren <haraldnordgren@gmail.com>
Subject: [PATCH v16 0/5] checkout: 'autostash' for branch switching
Date: Tue, 28 Apr 2026 18:39:07 +0000 [thread overview]
Message-ID: <pull.2234.v16.git.git.1777401552.gitgitgadget@gmail.com> (raw)
In-Reply-To: <pull.2234.v15.git.git.1777065012.gitgitgadget@gmail.com>
* Updated the git checkout and git switch docs to show the actual output
when using -m to carry local changes across a branch switch, and changed
"would carry" to "will carry".
* Rewrote the merge-conflict example in both docs to match the new, more
concise message printed on autostash conflicts.
* Replaced the show_unpack_errors flag and old_commit parameter in
merge_working_tree()/init_topts() with a plain quiet boolean, so the
caller decides directly whether to suppress unpack errors.
* Tightened the 'checkout -m with dirty tree' test by replacing a printf
with a heredoc.
* Made the 'checkout -m creates a recoverable stash on conflict' test also
assert the reflog subject of the new stash entry.
* Replaced two test_grep calls in the 'checkout -m which would overwrite
untracked file' test with a single test_cmp, which also catches a
regression where the "would be overwritten" message could end up printed
twice.
Harald Nordgren (5):
stash: add --label-ours, --label-theirs, --label-base for apply
sequencer: allow create_autostash to run silently
sequencer: teach autostash apply to take optional conflict marker
labels
checkout: rollback lock on early returns in merge_working_tree
checkout -m: autostash when switching branches
Documentation/git-checkout.adoc | 55 +++++------
Documentation/git-stash.adoc | 11 ++-
Documentation/git-switch.adoc | 36 ++++---
builtin/checkout.c | 166 +++++++++++++++-----------------
builtin/commit.c | 3 +-
builtin/merge.c | 15 ++-
builtin/stash.c | 28 ++++--
sequencer.c | 69 +++++++++----
sequencer.h | 7 +-
t/t3420-rebase-autostash.sh | 16 +--
t/t3903-stash.sh | 24 +++++
t/t7201-co.sh | 71 +++++++++++++-
t/t7600-merge.sh | 3 +-
xdiff-interface.c | 12 +++
xdiff-interface.h | 1 +
xdiff/xmerge.c | 6 +-
16 files changed, 343 insertions(+), 180 deletions(-)
base-commit: 94f057755b7941b321fd11fec1b2e3ca5313a4e0
Published-As: https://github.com/gitgitgadget/git/releases/tag/pr-git-2234%2FHaraldNordgren%2Fcheckout_autostash-v16
Fetch-It-Via: git fetch https://github.com/gitgitgadget/git pr-git-2234/HaraldNordgren/checkout_autostash-v16
Pull-Request: https://github.com/git/git/pull/2234
Range-diff vs v15:
1: aba8e6a9dc = 1: aba8e6a9dc stash: add --label-ours, --label-theirs, --label-base for apply
2: 89e0bfa803 = 2: 89e0bfa803 sequencer: allow create_autostash to run silently
3: a428ce7328 = 3: a428ce7328 sequencer: teach autostash apply to take optional conflict marker labels
4: f358424085 = 4: f358424085 checkout: rollback lock on early returns in merge_working_tree
5: 96b14db827 ! 5: 07d25fda91 checkout -m: autostash when switching branches
@@ Documentation/git-checkout.adoc: $ git checkout mytopic
-You can give the `-m` flag to the command, which would try a
-three-way merge:
-+You can give the `-m` flag to the command, which would carry your local
++You can give the `-m` flag to the command, which will carry your local
+changes to the new branch:
------------
$ git checkout -m mytopic
-Auto-merging frotz
++Applied autostash.
+Switched to branch 'mytopic'
++The following paths have local changes:
++M frotz
------------
-After this three-way merge, the local modifications are _not_
@@ Documentation/git-checkout.adoc: $ git checkout mytopic
-When a merge conflict happens during switching branches with
-the `-m` option, you would see something like this:
-+When the `--merge` (`-m`) option is in effect and the locally
-+modified files overlap with files that need to be updated by the
-+branch switch, the changes are stashed and reapplied after the
-+switch. If this process results in conflicts, a stash entry is saved
-+and made available in `git stash list`:
++When the `--merge` (`-m`) option is given and the local changes
++overlap with the changes in the branch we're switching to, the
++changes are stashed and reapplied after the switch. If this
++process results in conflicts, the stash entry is saved and a
++message is printed:
------------
$ git checkout -m mytopic
@@ Documentation/git-checkout.adoc: $ git checkout mytopic
-ERROR: Merge conflict in frotz
-fatal: merge program failed
-------------
-+Your local changes are stashed, however, applying it to carry
-+forward your local changes resulted in conflicts:
-
+-
-At this point, `git diff` shows the changes cleanly merged as in
-the previous example, as well as the changes in the conflicted
-files. Edit and resolve the conflict and mark it resolved with
-`git add` as usual:
-+ - You can try resolving them now. If you resolved them
-+ successfully, discard the stash entry with "git stash drop".
-
-+ - Alternatively you can "git reset --hard" if you do not want
-+ to deal with them right now, and later "git stash pop" to
-+ recover your local changes.
- ------------
+-
+-------------
-$ edit frotz
-$ git add frotz
--------------
-+
-+You can try resolving the conflicts now. Edit the conflicting files
-+and mark them resolved with `git add` as usual, then run `git stash
-+drop` to discard the stash entry. Alternatively, you can clear the
-+working tree with `git reset --hard` and recover your local changes
-+later with `git stash pop`.
++Your local changes are stashed, however applying them
++resulted in conflicts. You can either resolve the conflicts
++and then discard the stash with "git stash drop", or, if you
++do not want to resolve them now, run "git reset --hard" and
++apply the local changes later by running "git stash pop".
+ ------------
CONFIGURATION
- -------------
## Documentation/git-switch.adoc ##
@@ Documentation/git-switch.adoc: variable.
@@ Documentation/git-switch.adoc: $ git switch mytopic
-You can give the `-m` flag to the command, which would try a three-way
-merge:
-+You can give the `-m` flag to the command, which would carry your local
++You can give the `-m` flag to the command, which will carry your local
+changes to the new branch:
------------
$ git switch -m mytopic
-Auto-merging frotz
++Applied autostash.
+Switched to branch 'mytopic'
++The following paths have local changes:
++M frotz
------------
-After this three-way merge, the local modifications are _not_
@@ builtin/checkout.c: struct checkout_opts {
char *name; /* The short name used */
char *path; /* The full name of a real branch */
@@ builtin/checkout.c: static void setup_branch_path(struct branch_info *branch)
+ branch->path = strbuf_detach(&buf, NULL);
+ }
- static void init_topts(struct unpack_trees_options *topts, int merge,
+-static void init_topts(struct unpack_trees_options *topts, int merge,
++static void init_topts(struct unpack_trees_options *topts,
int show_progress, int overwrite_ignore,
- struct commit *old_commit)
-+ struct commit *old_commit, bool show_unpack_errors)
++ bool quiet)
{
memset(topts, 0, sizeof(*topts));
topts->head_idx = -1;
@@ builtin/checkout.c: static void init_topts(struct unpack_trees_options *topts, i
topts->update = 1;
topts->merge = 1;
- topts->quiet = merge && old_commit;
-+ topts->quiet = merge && old_commit && !show_unpack_errors;
++ topts->quiet = quiet;
topts->verbose_update = show_progress;
topts->fn = twoway_merge;
topts->preserve_ignored = !overwrite_ignore;
@@ builtin/checkout.c: static void init_topts(struct unpack_trees_options *topts, i
static int merge_working_tree(const struct checkout_opts *opts,
struct branch_info *old_branch_info,
struct branch_info *new_branch_info,
-- int *writeout_error)
-+ int *writeout_error,
-+ bool show_unpack_errors)
++ bool quiet,
+ int *writeout_error)
{
int ret;
- struct lock_file lock_file = LOCK_INIT;
@@ builtin/checkout.c: static int merge_working_tree(const struct checkout_opts *opts,
+ }
/* 2-way merge to the new branch */
- init_topts(&topts, opts->merge, opts->show_progress,
+- init_topts(&topts, opts->merge, opts->show_progress,
- opts->overwrite_ignore, old_branch_info->commit);
-+ opts->overwrite_ignore, old_branch_info->commit,
-+ show_unpack_errors);
++ init_topts(&topts, opts->show_progress,
++ opts->overwrite_ignore, quiet);
init_checkout_metadata(&topts.meta, new_branch_info->refname,
new_branch_info->commit ?
&new_branch_info->commit->object.oid :
@@ builtin/checkout.c: static int switch_branches(const struct checkout_opts *opts,
if (do_merge) {
- ret = merge_working_tree(opts, &old_branch_info, new_branch_info, &writeout_error);
+ ret = merge_working_tree(opts, &old_branch_info, new_branch_info,
-+ &writeout_error, false);
++ opts->merge, &writeout_error);
+ if (ret == MERGE_WORKING_TREE_UNPACK_FAILED && opts->merge) {
+ strbuf_addf(&autostash_msg,
+ "autostash while switching to '%s'",
@@ builtin/checkout.c: static int switch_branches(const struct checkout_opts *opts,
+ autostash_msg.buf, true);
+ created_autostash = 1;
+ ret = merge_working_tree(opts, &old_branch_info, new_branch_info,
-+ &writeout_error, true);
++ false, &writeout_error);
+ }
+ if (created_autostash) {
+ if (opts->conflict_style >= 0) {
@@ t/t7201-co.sh: test_expect_success 'checkout -m with dirty tree' '
test "$(git symbolic-ref HEAD)" = "refs/heads/side" &&
- printf "M\t%s\n" one >expect.messages &&
-+ printf "The following paths have local changes:\nM\t%s\n" one >expect.messages &&
++ cat >expect.messages <<-\EOF &&
++ The following paths have local changes:
++ M one
++ EOF
test_cmp expect.messages messages &&
fill "M one" "A three" "D two" >expect.main &&
@@ t/t7201-co.sh: test_expect_success 'checkout --merge --conflict=diff3 <branch>'
+ test_grep "git stash drop" actual &&
+ test_grep "git stash pop" actual &&
+ test_grep "The following paths have local changes" actual &&
-+ git show --format=%B --diff-merges=1 refs/stash >actual &&
++ git log -p -1 --format="%gs%n%B" -g --diff-merges=1 refs/stash >actual &&
+ sed /^index/d actual >actual.trimmed &&
+ cat >expect <<-EOF &&
++ autostash while switching to ${SQ}side${SQ}
+ On main: autostash while switching to ${SQ}side${SQ}
+
+ diff --git a/one b/one
@@ t/t7201-co.sh: test_expect_success 'checkout --merge --conflict=diff3 <branch>'
+ >another-file.t &&
+ fill 1 2 3 4 5 >one &&
+ test_must_fail git checkout -m @{-1} 2>err &&
-+ test_grep "would be overwritten by checkout" err &&
-+ test_grep "another-file.t" err
++ q_to_tab >expect <<-\EOF &&
++ error: The following untracked working tree files would be overwritten by checkout:
++ Qanother-file.t
++ Please move or remove them before you switch branches.
++ Aborting
++ Applied autostash.
++ EOF
++ test_cmp expect err
+'
+
test_expect_success 'switch to another branch while carrying a deletion' '
--
gitgitgadget
next prev parent reply other threads:[~2026-04-28 18:39 UTC|newest]
Thread overview: 164+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-03-12 13:26 [PATCH] checkout: add --autostash option for branch switching Harald Nordgren via GitGitGadget
2026-03-12 14:40 ` Junio C Hamano
2026-03-12 19:33 ` [PATCH v31 0/2] status: add status.compareBranches config for multiple branch comparisons Harald Nordgren
2026-03-13 14:29 ` [PATCH] checkout: add --autostash option for branch switching Phillip Wood
2026-03-14 17:17 ` Junio C Hamano
2026-03-16 16:36 ` Phillip Wood
2026-03-16 20:04 ` Junio C Hamano
2026-03-17 9:47 ` Harald Nordgren
2026-03-19 8:25 ` Harald Nordgren
2026-03-19 16:48 ` Junio C Hamano
2026-03-31 12:16 ` Harald Nordgren
2026-04-09 11:50 ` Harald Nordgren
2026-04-09 12:06 ` Harald Nordgren
2026-04-09 18:35 ` Junio C Hamano
2026-04-09 21:29 ` Harald Nordgren
2026-04-09 12:12 ` Harald Nordgren
2026-03-12 19:33 ` [PATCH v2] " Harald Nordgren via GitGitGadget
2026-03-12 19:50 ` Junio C Hamano
2026-03-13 9:22 ` [PATCH] " Harald Nordgren
2026-03-13 9:23 ` [PATCH v3] " Harald Nordgren via GitGitGadget
2026-03-13 17:16 ` Junio C Hamano
2026-03-13 19:33 ` [PATCH] " Harald Nordgren
2026-03-13 20:30 ` Junio C Hamano
2026-03-14 9:59 ` [PATCH v4] checkout: -m (--merge) uses autostash when switching branches Harald Nordgren via GitGitGadget
2026-03-15 2:25 ` Junio C Hamano
2026-03-15 11:19 ` [PATCH v5 0/4] checkout: 'autostash' for branch switching Harald Nordgren via GitGitGadget
2026-03-15 11:19 ` [PATCH v5 1/4] stash: add --ours-label, --theirs-label, --base-label for apply Harald Nordgren via GitGitGadget
2026-03-15 11:19 ` [PATCH v5 2/4] sequencer: allow create_autostash to run silently Harald Nordgren via GitGitGadget
2026-03-15 11:19 ` [PATCH v5 3/4] sequencer: teach autostash apply to take optional conflict marker labels Harald Nordgren via GitGitGadget
2026-03-15 11:19 ` [PATCH v5 4/4] checkout: -m (--merge) uses autostash when switching branches Harald Nordgren via GitGitGadget
2026-03-17 9:35 ` [PATCH v6 0/4] checkout: 'autostash' for branch switching Harald Nordgren via GitGitGadget
2026-03-17 9:35 ` [PATCH v6 1/4] stash: add --ours-label, --theirs-label, --base-label for apply Harald Nordgren via GitGitGadget
2026-03-17 9:35 ` [PATCH v6 2/4] sequencer: allow create_autostash to run silently Harald Nordgren via GitGitGadget
2026-03-17 9:35 ` [PATCH v6 3/4] sequencer: teach autostash apply to take optional conflict marker labels Harald Nordgren via GitGitGadget
2026-03-17 9:35 ` [PATCH v6 4/4] checkout: -m (--merge) uses autostash when switching branches Harald Nordgren via GitGitGadget
2026-04-09 13:27 ` [PATCH v7 0/4] checkout: 'autostash' for branch switching Harald Nordgren via GitGitGadget
2026-04-09 13:27 ` [PATCH v7 1/4] stash: add --ours-label, --theirs-label, --base-label for apply Harald Nordgren via GitGitGadget
2026-04-09 17:25 ` Junio C Hamano
2026-04-09 20:31 ` [PATCH] checkout: add --autostash option for branch switching Harald Nordgren
2026-04-09 13:27 ` [PATCH v7 2/4] sequencer: allow create_autostash to run silently Harald Nordgren via GitGitGadget
2026-04-09 13:27 ` [PATCH v7 3/4] sequencer: teach autostash apply to take optional conflict marker labels Harald Nordgren via GitGitGadget
2026-04-09 17:32 ` Junio C Hamano
2026-04-09 21:20 ` [PATCH] checkout: add --autostash option for branch switching Harald Nordgren
2026-04-09 13:27 ` [PATCH v7 4/4] checkout: -m (--merge) uses autostash when switching branches Harald Nordgren via GitGitGadget
2026-04-09 17:55 ` Junio C Hamano
2026-04-09 20:32 ` [PATCH] checkout: add --autostash option for branch switching Harald Nordgren
2026-04-09 17:00 ` [PATCH v7 0/4] checkout: 'autostash' " Junio C Hamano
2026-04-09 21:23 ` [PATCH] checkout: add --autostash option " Harald Nordgren
2026-04-09 19:17 ` [PATCH v8 0/4] checkout: 'autostash' " Harald Nordgren via GitGitGadget
2026-04-09 19:17 ` [PATCH v8 1/4] stash: add --ours-label, --theirs-label, --base-label for apply Harald Nordgren via GitGitGadget
2026-04-10 15:39 ` Phillip Wood
2026-04-10 16:15 ` Junio C Hamano
2026-04-10 19:18 ` [PATCH] checkout: add --autostash option for branch switching Harald Nordgren
2026-04-09 19:17 ` [PATCH v8 2/4] sequencer: allow create_autostash to run silently Harald Nordgren via GitGitGadget
2026-04-10 15:39 ` Phillip Wood
2026-04-10 16:16 ` Junio C Hamano
2026-04-10 18:53 ` [PATCH] checkout: add --autostash option for branch switching Harald Nordgren
2026-04-09 19:17 ` [PATCH v8 3/4] sequencer: teach autostash apply to take optional conflict marker labels Harald Nordgren via GitGitGadget
2026-04-10 15:39 ` Phillip Wood
2026-04-10 16:34 ` Junio C Hamano
2026-04-10 18:48 ` [PATCH] checkout: add --autostash option for branch switching Harald Nordgren
2026-04-09 19:17 ` [PATCH v8 4/4] checkout: -m (--merge) uses autostash when switching branches Harald Nordgren via GitGitGadget
2026-04-09 23:49 ` Chris Torek
2026-04-10 14:38 ` [PATCH] checkout: add --autostash option for branch switching Harald Nordgren
2026-04-10 21:01 ` [PATCH v9 0/4] checkout: 'autostash' " Harald Nordgren via GitGitGadget
2026-04-10 21:01 ` [PATCH v9 1/4] stash: add --label-ours, --label-theirs, --label-base for apply Harald Nordgren via GitGitGadget
2026-04-10 21:01 ` [PATCH v9 2/4] sequencer: allow create_autostash to run silently Harald Nordgren via GitGitGadget
2026-04-10 21:01 ` [PATCH v9 3/4] sequencer: teach autostash apply to take optional conflict marker labels Harald Nordgren via GitGitGadget
2026-04-10 21:01 ` [PATCH v9 4/4] checkout: -m (--merge) uses autostash when switching branches Harald Nordgren via GitGitGadget
2026-04-11 18:38 ` Jeff King
2026-04-11 18:51 ` [PATCH] checkout: add --autostash option for branch switching Harald Nordgren
2026-04-11 19:11 ` Jeff King
2026-04-11 19:07 ` [PATCH v9 4/4] checkout: -m (--merge) uses autostash when switching branches Jeff King
2026-04-10 21:53 ` [PATCH v9 0/4] checkout: 'autostash' for branch switching Junio C Hamano
2026-04-12 11:51 ` [PATCH v10 " Harald Nordgren via GitGitGadget
2026-04-12 11:51 ` [PATCH v10 1/4] stash: add --label-ours, --label-theirs, --label-base for apply Harald Nordgren via GitGitGadget
2026-04-12 11:51 ` [PATCH v10 2/4] sequencer: allow create_autostash to run silently Harald Nordgren via GitGitGadget
2026-04-12 11:51 ` [PATCH v10 3/4] sequencer: teach autostash apply to take optional conflict marker labels Harald Nordgren via GitGitGadget
2026-04-12 11:51 ` [PATCH v10 4/4] checkout: -m (--merge) uses autostash when switching branches Harald Nordgren via GitGitGadget
2026-04-12 20:01 ` [PATCH v10 0/4] checkout: 'autostash' for branch switching Jeff King
2026-04-13 22:45 ` Junio C Hamano
2026-04-14 7:29 ` [PATCH] checkout: add --autostash option " Harald Nordgren
2026-04-14 13:29 ` Junio C Hamano
2026-04-14 14:14 ` Junio C Hamano
2026-04-14 17:42 ` Junio C Hamano
2026-04-14 10:50 ` [PATCH v11 0/4] checkout: 'autostash' " Harald Nordgren via GitGitGadget
2026-04-14 10:50 ` [PATCH v11 1/4] stash: add --label-ours, --label-theirs, --label-base for apply Harald Nordgren via GitGitGadget
2026-04-14 10:50 ` [PATCH v11 2/4] sequencer: allow create_autostash to run silently Harald Nordgren via GitGitGadget
2026-04-14 10:50 ` [PATCH v11 3/4] sequencer: teach autostash apply to take optional conflict marker labels Harald Nordgren via GitGitGadget
2026-04-14 10:50 ` [PATCH v11 4/4] checkout: -m (--merge) uses autostash when switching branches Harald Nordgren via GitGitGadget
2026-04-14 12:59 ` [PATCH v12 0/4] checkout: 'autostash' for branch switching Harald Nordgren via GitGitGadget
2026-04-14 12:59 ` [PATCH v12 1/4] stash: add --label-ours, --label-theirs, --label-base for apply Harald Nordgren via GitGitGadget
2026-04-14 14:05 ` Phillip Wood
2026-04-14 16:23 ` Junio C Hamano
2026-04-14 18:56 ` [PATCH] checkout: add --autostash option for branch switching Harald Nordgren
2026-04-14 20:08 ` Harald Nordgren
2026-04-15 9:34 ` Phillip Wood
2026-04-15 15:34 ` Harald Nordgren
2026-04-14 12:59 ` [PATCH v12 2/4] sequencer: allow create_autostash to run silently Harald Nordgren via GitGitGadget
2026-04-14 14:06 ` Phillip Wood
2026-04-14 18:35 ` [PATCH] checkout: add --autostash option for branch switching Harald Nordgren
2026-04-14 12:59 ` [PATCH v12 3/4] sequencer: teach autostash apply to take optional conflict marker labels Harald Nordgren via GitGitGadget
2026-04-14 14:06 ` Phillip Wood
2026-04-14 18:44 ` [PATCH] checkout: add --autostash option for branch switching Harald Nordgren
2026-04-14 12:59 ` [PATCH v12 4/4] checkout: -m (--merge) uses autostash when switching branches Harald Nordgren via GitGitGadget
2026-04-14 14:07 ` Phillip Wood
2026-04-14 16:39 ` Junio C Hamano
2026-04-14 20:06 ` [PATCH] checkout: add --autostash option for branch switching Harald Nordgren
2026-04-15 9:35 ` Phillip Wood
2026-04-14 20:13 ` Harald Nordgren
2026-04-15 8:19 ` Harald Nordgren
2026-04-15 9:34 ` Phillip Wood
2026-04-15 8:16 ` Harald Nordgren
2026-04-15 9:36 ` Phillip Wood
2026-04-14 15:56 ` [PATCH v12 0/4] checkout: 'autostash' " Junio C Hamano
2026-04-14 20:16 ` [PATCH] checkout: add --autostash option " Harald Nordgren
2026-04-14 20:56 ` Junio C Hamano
2026-04-16 10:05 ` Harald Nordgren
2026-04-16 14:45 ` Junio C Hamano
2026-04-16 17:53 ` Harald Nordgren
2026-04-15 11:11 ` [PATCH v13 0/5] checkout: 'autostash' " Harald Nordgren via GitGitGadget
2026-04-15 11:11 ` [PATCH v13 1/5] stash: add --label-ours, --label-theirs, --label-base for apply Harald Nordgren via GitGitGadget
2026-04-15 11:11 ` [PATCH v13 2/5] sequencer: allow create_autostash to run silently Harald Nordgren via GitGitGadget
2026-04-15 11:11 ` [PATCH v13 3/5] sequencer: teach autostash apply to take optional conflict marker labels Harald Nordgren via GitGitGadget
2026-04-15 11:11 ` [PATCH v13 4/5] checkout: rollback lock on early returns in merge_working_tree Harald Nordgren via GitGitGadget
2026-04-15 11:11 ` [PATCH v13 5/5] checkout -m: autostash when switching branches Harald Nordgren via GitGitGadget
2026-04-15 16:24 ` [PATCH v14 0/5] checkout: 'autostash' for branch switching Harald Nordgren via GitGitGadget
2026-04-15 16:24 ` [PATCH v14 1/5] stash: add --label-ours, --label-theirs, --label-base for apply Harald Nordgren via GitGitGadget
2026-04-15 16:24 ` [PATCH v14 2/5] sequencer: allow create_autostash to run silently Harald Nordgren via GitGitGadget
2026-04-15 16:24 ` [PATCH v14 3/5] sequencer: teach autostash apply to take optional conflict marker labels Harald Nordgren via GitGitGadget
2026-04-15 16:24 ` [PATCH v14 4/5] checkout: rollback lock on early returns in merge_working_tree Harald Nordgren via GitGitGadget
2026-04-15 16:24 ` [PATCH v14 5/5] checkout -m: autostash when switching branches Harald Nordgren via GitGitGadget
2026-04-24 15:47 ` Phillip Wood
2026-04-24 20:52 ` Comments on Phillip's review Harald Nordgren
2026-04-21 7:53 ` [PATCH] checkout: add --autostash option for branch switching Harald Nordgren
2026-04-21 9:34 ` Phillip Wood
2026-04-22 17:58 ` Harald Nordgren
2026-04-24 15:52 ` [PATCH v14 0/5] checkout: 'autostash' " Phillip Wood
2026-04-24 21:10 ` [PATCH v15 " Harald Nordgren via GitGitGadget
2026-04-24 21:10 ` [PATCH v15 1/5] stash: add --label-ours, --label-theirs, --label-base for apply Harald Nordgren via GitGitGadget
2026-04-28 9:32 ` Phillip Wood
2026-04-28 15:16 ` [PATCH] checkout: add --autostash option for branch switching Harald Nordgren
2026-04-24 21:10 ` [PATCH v15 2/5] sequencer: allow create_autostash to run silently Harald Nordgren via GitGitGadget
2026-04-28 9:32 ` Phillip Wood
2026-04-24 21:10 ` [PATCH v15 3/5] sequencer: teach autostash apply to take optional conflict marker labels Harald Nordgren via GitGitGadget
2026-04-28 9:33 ` Phillip Wood
2026-04-28 15:21 ` [PATCH] checkout: add --autostash option for branch switching Harald Nordgren
2026-04-24 21:10 ` [PATCH v15 4/5] checkout: rollback lock on early returns in merge_working_tree Harald Nordgren via GitGitGadget
2026-04-28 9:33 ` Phillip Wood
2026-04-24 21:10 ` [PATCH v15 5/5] checkout -m: autostash when switching branches Harald Nordgren via GitGitGadget
2026-04-28 9:35 ` Phillip Wood
2026-04-28 18:08 ` [PATCH] checkout: add --autostash option for branch switching Harald Nordgren
2026-04-28 9:35 ` [PATCH v15 0/5] checkout: 'autostash' " Phillip Wood
2026-04-28 18:39 ` Harald Nordgren via GitGitGadget [this message]
2026-04-28 18:39 ` [PATCH v16 1/5] stash: add --label-ours, --label-theirs, --label-base for apply Harald Nordgren via GitGitGadget
2026-04-28 18:39 ` [PATCH v16 2/5] sequencer: allow create_autostash to run silently Harald Nordgren via GitGitGadget
2026-04-28 18:39 ` [PATCH v16 3/5] sequencer: teach autostash apply to take optional conflict marker labels Harald Nordgren via GitGitGadget
2026-04-28 18:39 ` [PATCH v16 4/5] checkout: rollback lock on early returns in merge_working_tree Harald Nordgren via GitGitGadget
2026-04-28 18:39 ` [PATCH v16 5/5] checkout -m: autostash when switching branches Harald Nordgren via GitGitGadget
2026-04-29 10:02 ` Phillip Wood
2026-04-29 10:02 ` [PATCH v16 0/5] checkout: 'autostash' for branch switching Phillip Wood
2026-04-29 11:11 ` [PATCH] checkout: add --autostash option " Harald Nordgren
2026-05-07 20:11 ` [PATCH v16 0/5] checkout: 'autostash' " Harald Nordgren
2026-05-08 13:02 ` Phillip Wood
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.2234.v16.git.git.1777401552.gitgitgadget@gmail.com \
--to=gitgitgadget@gmail.com \
--cc=chris.torek@gmail.com \
--cc=git@vger.kernel.org \
--cc=haraldnordgren@gmail.com \
--cc=peff@peff.net \
--cc=phillip.wood123@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.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox