From: Phillip Wood <phillip.wood123@gmail.com>
To: Derrick Stolee via GitGitGadget <gitgitgadget@gmail.com>,
git@vger.kernel.org
Cc: gitster@pobox.com, johannes.schindelin@gmx.de, me@ttaylorr.com,
"Jeff Hostetler" <git@jeffhostetler.com>,
"Elijah Newren" <newren@gmail.com>,
"Ævar Arnfjörð Bjarmason" <avarab@gmail.com>,
"Derrick Stolee" <derrickstolee@github.com>
Subject: Re: [PATCH v2 0/5] Create branch_checked_out() helper
Date: Sun, 19 Jun 2022 14:58:28 +0100 [thread overview]
Message-ID: <e562bd1b-8be6-db70-923a-cfa27c3edb36@gmail.com> (raw)
In-Reply-To: <pull.1254.v2.git.1655234853.gitgitgadget@gmail.com>
Hi Stolee
On 14/06/2022 20:27, Derrick Stolee via GitGitGadget wrote:
> 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.
> 5. Be careful when constructing the strmap to free old values, even though
> this should only happen in error scenarios. Add tests that verify this
> behavior.
>
>
> Updates in v2
> =============
>
> * branch_checked_out() has a new prototype where it returns a 'const char
> *' instead of copying the path.
> * The test script is marked with TEST_PASSES_SANITIZE_LEAK and test are
> careful to avoid using 'git rebase' or 'git bisect' when possible.
> * Tests that cannot avoid memory-loss from 'git fetch' are marked with the
> "!SANITIZE_LEAK" prereq.
> * A previous replacement of 'wt->current' with 'path' is removed. This
> changes an error message, but it is a very rare scenario where this error
> would be output.
The changes look good to me (modulo Peff's fixup), thanks for working on
this
Best Wishes
Phillip
prev parent reply other threads:[~2022-06-19 13:58 UTC|newest]
Thread overview: 28+ messages / expand[flat|nested] mbox.gz Atom feed top
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 ` Phillip Wood [this message]
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=e562bd1b-8be6-db70-923a-cfa27c3edb36@gmail.com \
--to=phillip.wood123@gmail.com \
--cc=avarab@gmail.com \
--cc=derrickstolee@github.com \
--cc=git@jeffhostetler.com \
--cc=git@vger.kernel.org \
--cc=gitgitgadget@gmail.com \
--cc=gitster@pobox.com \
--cc=johannes.schindelin@gmx.de \
--cc=me@ttaylorr.com \
--cc=newren@gmail.com \
--cc=phillip.wood@dunelm.org.uk \
/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).