git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [PATCH RESEND] branch: allow deleting dangling branches with --force

From
René Scharfe <l.s.r@web.de>
Date
Aug 26, 2021, 18:19 UTC
Message-ID
<611b4216-7650-f4c2-ba46-0ddd98d5d7e5@web.de>
In-Reply-To
<87h7fdcdc7.fsf@evledraar.gmail.com>
Am 26.08.21 um 01:28 schrieb Ævar Arnfjörð Bjarmason:
Show 38 quoted lines
>
> On Wed, Aug 25 2021, Junio C Hamano wrote:
>
>> René Scharfe <l.s.r@web.de> writes:
>>
>>> git branch only allows deleting branches that point to valid commits.
>>> Skip that check if --force is given, as the caller is indicating with
>>> it that they know what they are doing and accept the consequences.
>>> This allows deleting dangling branches, which previously had to be
>>> reset to a valid start-point using --force first.
>>>
>>> Signed-off-by: René Scharfe <l.s.r@web.de>
>>> ---
>>> Original submission:
>>> http://public-inbox.org/git/52847a99-db7c-9634-b3b1-fd9b1342bc32@web.de/
>>
>> Thanks.
>>
>>> +test_expect_success 'branch --delete --force removes dangling branch' '
>>> +	test_when_finished "rm -f .git/refs/heads/dangling" &&
>>> +	echo $ZERO_OID >.git/refs/heads/dangling &&
>>> +	git branch --delete --force dangling &&
>>> +	test_path_is_missing .git/refs/heads/dangling
>>> +'
>>
>> This goes against the spirit of the series merged at c9780bb2 (Merge
>> branch 'hn/prep-tests-for-reftable', 2021-07-13).
>>
>> Can we creat the dangling ref and test the lack of "dangling" ref in
>> the end in a less transparent way?
>>
>> An escape hatch is to make this test depend on the REFFILES
>> prerequisite, just like dc474899 (t4202: mark bogus head hash test
>> with REFFILES, 2021-05-31) did, which may be more appropriate.
>
> I'm not sure, but this may also be a good example of the sort of thing
> that we should probably go beyond REFFILES with, i.e. is it even
> possible under reftable to run into this sort of situation?

Probably yes: A commit can disappear when its object file or pack or alternate object database gets lost somehow, and a ref store could only compensate for that loss if it kept a copy of the ref target, which seems impractical.

René
Previous: Ævar Arnfjörð BjarmasonNext: Han-Wen Nienhuys
Message 4 of 17 in “branch: allow deleting dangling branches with --force”
  1. branch: allow deleting dangling branches with --forceRené Scharfe, Aug 25, 2021
  2. Junio C HamanoAug 25, 2021
  3. Ævar Arnfjörð BjarmasonAug 25, 2021
  4. René ScharfeAug 26, 2021
  5. Han-Wen NienhuysAug 26, 2021
  6. Junio C HamanoAug 26, 2021
  7. Junio C HamanoAug 26, 2021
  8. Antw: [EXT] Re: [PATCH RESEND] branch: allow deleting dangling branches with ‑‑forceUlrich Windl, Aug 27, 2021
  9. Ævar Arnfjörð BjarmasonAug 27, 2021
  10. René ScharfeAug 26, 2021
  11. Ævar Arnfjörð BjarmasonAug 25, 2021
  12. René ScharfeAug 26, 2021
  13. branch: allow deleting dangling branches with --forceRené Scharfe, Aug 26, 2021
  14. Junio C HamanoAug 26, 2021
  15. René ScharfeAug 26, 2021
  16. Ævar Arnfjörð BjarmasonAug 26, 2021
  17. branch: allow deleting dangling branches with --forceRené Scharfe, Aug 27, 2021

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.