git@vger.kernel.org mailing list mirror (one of many)
 help / color / mirror / code / Atom feed
* [PATCH 0/4] Create branch_checked_out() helper
@ 2022-06-08 20:08 Derrick Stolee via GitGitGadget
  2022-06-08 20:08 ` [PATCH 1/4] branch: add " Derrick Stolee via GitGitGadget
                   ` (5 more replies)
  0 siblings, 6 replies; 28+ messages in thread
From: Derrick Stolee via GitGitGadget @ 2022-06-08 20:08 UTC (permalink / raw)
  To: git
  Cc: gitster, johannes.schindelin, me, Jeff Hostetler, Phillip Wood,
	Elijah Newren, Derrick Stolee

This is a replacement for some patches from v2 of my 'git rebase
--update-refs' topic [1]. After some feedback from Philip, I've decided to
pull that topic while I rework how I track the refs to rewrite [2]. This
series moves forward with the branch_checked_out() helper that was a bit
more complicated than expected at first glance. This series is a culmination
of the discussion started by Junio at [3].

[1]
https://lore.kernel.org/git/pull.1247.v2.git.1654634569.gitgitgadget@gmail.com
[2]
https://lore.kernel.org/git/34264915-8a37-62db-f954-0b5297639b34@github.com/
[3] https://lore.kernel.org/git/xmqqr140t9am.fsf@gitster.g/

Here is the patch outline:

 1. Add a basic form of branch_checked_out() that only looks at the HEAD of
    each worktree. Since this doesn't look at BISECT_HEAD or REBASE_HEAD,
    the helper isn't linked to any consumer in this patch. A test script is
    added that verifies the current behavior checks that are implemented,
    even if they are not connected yet.
 2. Make branch_checked_out() actually look at BISECT_HEAD and REBASE_HEAD.
    Add tests for those cases, which was previously untested in the Git test
    suite. Use branch_checked_out() in 'git branch -f' to demonstrate this
    helper works as expected.
 3. Use branch_checked_out() in 'git fetch' when checking refs that would be
    updated by the refspec. Add tests for that scenario, too.
 4. Use branch_checked_out() in 'git branch -D' to prevent deleting refs
    from under an existing checkout. The commit message here describes some
    barriers to removing other uses of find_shared_symref() that could be
    good investigations for later.

Thanks, -Stolee

Derrick Stolee (4):
  branch: add branch_checked_out() helper
  branch: check for bisects and rebases
  fetch: use new branch_checked_out() and add tests
  branch: use branch_checked_out() when deleting refs

 branch.c                  | 77 +++++++++++++++++++++++++++++++++----
 branch.h                  |  8 ++++
 builtin/branch.c          |  8 ++--
 builtin/fetch.c           | 25 ++++++------
 t/t2407-worktree-heads.sh | 81 +++++++++++++++++++++++++++++++++++++++
 5 files changed, 173 insertions(+), 26 deletions(-)
 create mode 100755 t/t2407-worktree-heads.sh


base-commit: 2668e3608e47494f2f10ef2b6e69f08a84816bcb
Published-As: https://github.com/gitgitgadget/git/releases/tag/pr-1254%2Fderrickstolee%2Fbranch-checked-out-v1
Fetch-It-Via: git fetch https://github.com/gitgitgadget/git pr-1254/derrickstolee/branch-checked-out-v1
Pull-Request: https://github.com/gitgitgadget/git/pull/1254
-- 
gitgitgadget

^ permalink raw reply	[flat|nested] 28+ messages in thread

end of thread, other threads:[~2022-06-19 13:58 UTC | newest]

Thread overview: 28+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-06-08 20:08 [PATCH 0/4] Create branch_checked_out() helper Derrick Stolee via GitGitGadget
2022-06-08 20:08 ` [PATCH 1/4] branch: add " Derrick Stolee via GitGitGadget
2022-06-09 23:47   ` Junio C Hamano
2022-06-13 23:59   ` Ævar Arnfjörð Bjarmason
2022-06-14 13:32     ` Derrick Stolee
2022-06-14 15:24       ` Ævar Arnfjörð Bjarmason
2022-06-14 10:09   ` Phillip Wood
2022-06-14 11:22     ` Phillip Wood
2022-06-14 13:48     ` Derrick Stolee
2022-06-08 20:09 ` [PATCH 2/4] branch: check for bisects and rebases Derrick Stolee via GitGitGadget
2022-06-08 22:03   ` Junio C Hamano
2022-06-08 20:09 ` [PATCH 3/4] fetch: use new branch_checked_out() and add tests Derrick Stolee via GitGitGadget
2022-06-14  0:05   ` Ævar Arnfjörð Bjarmason
2022-06-14 10:10   ` Phillip Wood
2022-06-14 14:06     ` Derrick Stolee
2022-06-08 20:09 ` [PATCH 4/4] branch: use branch_checked_out() when deleting refs Derrick Stolee via GitGitGadget
2022-06-13 14:59 ` [PATCH 5/5] branch: fix branch_checked_out() leaks Derrick Stolee
2022-06-13 23:03   ` Junio C Hamano
2022-06-14  0:33   ` Ævar Arnfjörð Bjarmason
2022-06-14 15:37     ` Derrick Stolee
2022-06-14 16:43       ` Ævar Arnfjörð Bjarmason
2022-06-14 19:27 ` [PATCH v2 0/5] Create branch_checked_out() helper Derrick Stolee via GitGitGadget
2022-06-14 19:27   ` [PATCH v2 1/5] branch: add " Derrick Stolee via GitGitGadget
2022-06-14 19:27   ` [PATCH v2 2/5] branch: check for bisects and rebases Derrick Stolee via GitGitGadget
2022-06-14 19:27   ` [PATCH v2 3/5] fetch: use new branch_checked_out() and add tests Derrick Stolee via GitGitGadget
2022-06-14 19:27   ` [PATCH v2 4/5] branch: use branch_checked_out() when deleting refs Derrick Stolee via GitGitGadget
2022-06-14 19:27   ` [PATCH v2 5/5] branch: fix branch_checked_out() leaks Derrick Stolee via GitGitGadget
2022-06-19 13:58   ` [PATCH v2 0/5] Create branch_checked_out() helper Phillip Wood

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).