Git development
 help / color / mirror / Atom feed
From: "Harald Nordgren via GitGitGadget" <gitgitgadget@gmail.com>
To: git@vger.kernel.org
Cc: Phillip Wood <phillip.wood123@gmail.com>,
	Harald Nordgren <haraldnordgren@gmail.com>
Subject: [PATCH v8 0/4] checkout: 'autostash' for branch switching
Date: Thu, 09 Apr 2026 19:17:11 +0000	[thread overview]
Message-ID: <pull.2234.v8.git.git.1775762235.gitgitgadget@gmail.com> (raw)
In-Reply-To: <pull.2234.v7.git.git.1775741265.gitgitgadget@gmail.com>

Harald Nordgren (4):
  stash: add --ours-label, --theirs-label, --base-label for apply
  sequencer: allow create_autostash to run silently
  sequencer: teach autostash apply to take optional conflict marker
    labels
  checkout: -m (--merge) uses autostash when switching branches

 Documentation/git-checkout.adoc |  58 +++++-----
 Documentation/git-stash.adoc    |  11 +-
 Documentation/git-switch.adoc   |  33 +++---
 builtin/checkout.c              | 138 ++++++++++------------
 builtin/stash.c                 |  32 ++++--
 sequencer.c                     |  67 ++++++++---
 sequencer.h                     |   4 +
 t/t3420-rebase-autostash.sh     |  24 +++-
 t/t3903-stash.sh                |  37 ++++++
 t/t7201-co.sh                   | 195 ++++++++++++++++++++++++++++++++
 t/t7600-merge.sh                |   2 +-
 xdiff-interface.c               |  12 ++
 xdiff-interface.h               |   1 +
 xdiff/xmerge.c                  |   6 +-
 14 files changed, 463 insertions(+), 157 deletions(-)


base-commit: b15384c06f77bc2d34d0d3623a8a58218313a561
Published-As: https://github.com/gitgitgadget/git/releases/tag/pr-git-2234%2FHaraldNordgren%2Fcheckout_autostash-v8
Fetch-It-Via: git fetch https://github.com/gitgitgadget/git pr-git-2234/HaraldNordgren/checkout_autostash-v8
Pull-Request: https://github.com/git/git/pull/2234

Range-diff vs v7:

 1:  284075600a ! 1:  8fcf377820 stash: add --ours-label, --theirs-label, --base-label for apply
     @@ t/t3903-stash.sh: test_expect_success 'restore untracked files even when we hit
      +		echo upstream >file &&
      +		git add file &&
      +		git commit -m upstream &&
     -+		test_must_fail git stash apply --ours-label=UP --theirs-label=STASH &&
     -+		grep "^<<<<<<< UP" file &&
     -+		grep "^>>>>>>> STASH" file
     ++		test_must_fail git -c merge.conflictStyle=diff3 stash apply --ours-label=UP --theirs-label=STASH &&
     ++		test_grep "^<<<<<<< UP" file &&
     ++		test_grep "^||||||| Stash base" file &&
     ++		test_grep "^>>>>>>> STASH" file
     ++	)
     ++'
     ++
     ++test_expect_success 'apply with empty conflict labels' '
     ++	git init empty_labels &&
     ++	(
     ++		cd empty_labels &&
     ++		echo base >file &&
     ++		git add file &&
     ++		git commit -m base &&
     ++		echo stashed >file &&
     ++		git stash push -m "stashed" &&
     ++		echo upstream >file &&
     ++		git add file &&
     ++		git commit -m upstream &&
     ++		test_must_fail git stash apply --ours-label= --theirs-label= &&
     ++		test_grep "^<<<<<<<$" file &&
     ++		test_grep "^>>>>>>>$" file
      +	)
      +'
      +
       test_expect_success 'stash create reports a locked index' '
       	test_when_finished "rm -rf repo" &&
       	git init repo &&
     +
     + ## xdiff/xmerge.c ##
     +@@ xdiff/xmerge.c: static int fill_conflict_hunk(xdfenv_t *xe1, const char *name1,
     + 			      int size, int i, int style,
     + 			      xdmerge_t *m, char *dest, int marker_size)
     + {
     +-	int marker1_size = (name1 ? strlen(name1) + 1 : 0);
     +-	int marker2_size = (name2 ? strlen(name2) + 1 : 0);
     +-	int marker3_size = (name3 ? strlen(name3) + 1 : 0);
     ++	int marker1_size = (name1 && *name1 ? strlen(name1) + 1 : 0);
     ++	int marker2_size = (name2 && *name2 ? strlen(name2) + 1 : 0);
     ++	int marker3_size = (name3 && *name3 ? strlen(name3) + 1 : 0);
     + 	int needs_cr = is_cr_needed(xe1, xe2, m);
     + 
     + 	if (marker_size <= 0)
 2:  64261e3cb6 = 2:  86cf68d024 sequencer: allow create_autostash to run silently
 3:  c0d6b4b4c0 ! 3:  78300e0e9a sequencer: teach autostash apply to take optional conflict marker labels
     @@ sequencer.c: void create_autostash_ref_silent(struct repository *r, const char *
       
      -static int apply_save_autostash_oid(const char *stash_oid, int attempt_apply)
      +static int apply_save_autostash_oid(const char *stash_oid, int attempt_apply,
     -+				    const char *label1, const char *label2,
     -+				    const char *label_ancestor)
     ++				    const char *label_ours, const char *label_theirs,
     ++				    const char *label_base)
       {
       	struct child_process child = CHILD_PROCESS_INIT;
       	int ret = 0;
     @@ sequencer.c: static int apply_save_autostash_oid(const char *stash_oid, int atte
       		child.no_stderr = 1;
       		strvec_push(&child.args, "stash");
       		strvec_push(&child.args, "apply");
     -+		if (label1)
     -+			strvec_pushf(&child.args, "--ours-label=%s", label1);
     -+		if (label2)
     -+			strvec_pushf(&child.args, "--theirs-label=%s", label2);
     -+		if (label_ancestor)
     -+			strvec_pushf(&child.args, "--base-label=%s", label_ancestor);
     ++		if (label_ours)
     ++			strvec_pushf(&child.args, "--ours-label=%s", label_ours);
     ++		if (label_theirs)
     ++			strvec_pushf(&child.args, "--theirs-label=%s", label_theirs);
     ++		if (label_base)
     ++			strvec_pushf(&child.args, "--base-label=%s", label_base);
       		strvec_push(&child.args, stash_oid);
       		ret = run_command(&child);
       	}
     @@ sequencer.c: int apply_autostash(const char *path)
       static int apply_save_autostash_ref(struct repository *r, const char *refname,
      -				    int attempt_apply)
      +				    int attempt_apply,
     -+				    const char *label1, const char *label2,
     -+				    const char *label_ancestor)
     ++				    const char *label_ours, const char *label_theirs,
     ++				    const char *label_base)
       {
       	struct object_id stash_oid;
       	char stash_oid_hex[GIT_MAX_HEXSZ + 1];
     @@ sequencer.c: static int apply_save_autostash_ref(struct repository *r, const cha
       	oid_to_hex_r(stash_oid_hex, &stash_oid);
      -	ret = apply_save_autostash_oid(stash_oid_hex, attempt_apply);
      +	ret = apply_save_autostash_oid(stash_oid_hex, attempt_apply,
     -+				       label1, label2, label_ancestor);
     ++				       label_ours, label_theirs, label_base);
       
       	refs_delete_ref(get_main_ref_store(r), "", refname,
       			&stash_oid, REF_NO_DEREF);
     @@ sequencer.c: static int apply_save_autostash_ref(struct repository *r, const cha
      +}
      +
      +int apply_autostash_ref_with_labels(struct repository *r, const char *refname,
     -+				    const char *label1, const char *label2,
     -+				    const char *label_ancestor)
     ++				    const char *label_ours, const char *label_theirs,
     ++				    const char *label_base)
      +{
      +	return apply_save_autostash_ref(r, refname, 1,
     -+					label1, label2, label_ancestor);
     ++					label_ours, label_theirs, label_base);
       }
       
       static int checkout_onto(struct repository *r, struct replay_opts *opts,
     @@ sequencer.h: int save_autostash_ref(struct repository *r, const char *refname);
       int apply_autostash_oid(const char *stash_oid);
       int apply_autostash_ref(struct repository *r, const char *refname);
      +int apply_autostash_ref_with_labels(struct repository *r, const char *refname,
     -+				    const char *label1, const char *label2,
     -+				    const char *label_ancestor);
     ++				    const char *label_ours, const char *label_theirs,
     ++				    const char *label_base);
       
       #define SUMMARY_INITIAL_COMMIT   (1 << 0)
       #define SUMMARY_SHOW_AUTHOR_DATE (1 << 1)
 4:  1c29e19971 ! 4:  aa18313362 checkout: -m (--merge) uses autostash when switching branches
     @@ Documentation/git-checkout.adoc: $ git checkout mytopic
      +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 the stash application results in conflicts, they are not
     -+resolved and the stash is saved to the stash list:
     ++switch.  If this process results in conflicts, a stash entry is saved
     ++and made available in `git stash list`:
       
       ------------
       $ git checkout -m mytopic
     @@ Documentation/git-checkout.adoc: $ git checkout mytopic
      
       ## Documentation/git-switch.adoc ##
      @@ Documentation/git-switch.adoc: variable.
     - 	If you have local modifications to one or more files that are
     - 	different between the current branch and the branch to which
     - 	you are switching, the command refuses to switch branches in
     + 
     + `-m`::
     + `--merge`::
     +-	If you have local modifications to one or more files that are
     +-	different between the current branch and the branch to which
     +-	you are switching, the command refuses to switch branches in
      -	order to preserve your modifications in context.  However,
      -	with this option, a three-way merge between the current
      -	branch, your working tree contents, and the new branch is
     @@ Documentation/git-switch.adoc: variable.
      -paths are left unmerged, and you need to resolve the conflicts
      -and mark the resolved paths with `git add` (or `git rm` if the merge
      -should result in deletion of the path).
     -+	order to preserve your modifications in context.  With this
     -+	option, the conflicting local changes are automatically
     -+	stashed before the switch and reapplied afterwards.  If the
     -+	local changes do not overlap with the differences between
     -+	branches, the switch proceeds without stashing.  If
     -+	reapplying the stash results in conflicts, the entry is
     -+	saved to the stash list.  Resolve the conflicts and run
     -+	`git stash drop` when done, or clear the working tree
     -+	(e.g. with `git reset --hard`) before running `git stash pop`
     -+	later to re-apply your changes.
     ++	If you have local modifications to one or more files that
     ++	are different between the current branch and the branch to
     ++	which you are switching, the command normally refuses to
     ++	switch branches in order to preserve your modifications in
     ++	context.  However, with this option, the conflicting local
     ++	changes are automatically stashed before the switch and
     ++	reapplied afterwards.  If the local changes do not overlap
     ++	with the differences between branches, the switch proceeds
     ++	without stashing.  If reapplying the stash results in
     ++	conflicts, the entry is saved to the stash list.  Resolve
     ++	the conflicts and run `git stash drop` when done, or clear
     ++	the working tree (e.g. with `git reset --hard`) before
     ++	running `git stash pop` later to re-apply your changes.
       
       `--conflict=<style>`::
       	The same as `--merge` option above, but changes the way the
     @@ t/t7201-co.sh: test_expect_success 'checkout --merge --conflict=diff3 <branch>'
      +	git clean -f &&
      +
      +	fill 0 x y z >same &&
     ++	git stash list >stash-before &&
      +	git checkout -m side >actual 2>&1 &&
      +	test_grep ! "Created autostash" actual &&
     ++	git stash list >stash-after &&
     ++	test_cmp stash-before stash-after &&
      +	fill 0 x y z >expect &&
      +	test_cmp expect same
      +'
     @@ t/t7201-co.sh: test_expect_success 'checkout --merge --conflict=diff3 <branch>'
      +
      +	fill DIRTY a b c INSERTED d >file &&
      +
     ++	git stash list >stash-before &&
      +	git checkout -m nonoverlap_base 2>stderr &&
      +	test_grep "Applied autostash" stderr &&
      +	test_grep ! "resulted in conflicts" stderr &&
      +
     ++	git stash list >stash-after &&
     ++	test_cmp stash-before stash-after &&
     ++
      +	fill DIRTY a b c d >expect &&
      +	test_cmp expect file &&
      +

-- 
gitgitgadget

  parent reply	other threads:[~2026-04-09 19:17 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             ` Harald Nordgren via GitGitGadget [this message]
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                             ` [PATCH v16 " Harald Nordgren via GitGitGadget
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.v8.git.git.1775762235.gitgitgadget@gmail.com \
    --to=gitgitgadget@gmail.com \
    --cc=git@vger.kernel.org \
    --cc=haraldnordgren@gmail.com \
    --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