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

Re: [PATCH] refs: fix migration of reflogs respecting "core.logAllRefUpdates"

From
Junio C Hamano <gitster@pobox.com>
Date
Jan 22, 2025, 18:02 UTC
Message-ID
<xmqqjzamwwva.fsf@gitster.g>
In-Reply-To
<20250122-b4-pks-reflog-migration-fix-stash-v1-1-27dbae4602f7@pks.im>
Patrick Steinhardt <ps@pks.im> writes:
Show 20 quoted lines
> In 246cebe320 (refs: add support for migrating reflogs, 2024-12-16) we
> have added support to git-refs(1) to migrate reflogs between reference
> backends. It was reported [1] though that not we don't migrate reflogs
> for a subset of references, most importantly "refs/stash".
>
> This issue is caused by us still honoring "core.logAllRefUpdates" when
> trying to migrate reflogs: we do queue the updates, but depending on the
> value of that config we may decide to just skip writing the reflog entry
> altogether. And given that:
>
>   - The default for "core.logAllRefUpdates" is to only create reflogs
>     for branches, remotes, note refs and "HEAD"
>
>   - "refs/stash" is neither of these ref types.
>
> We end up skipping the reflog creation for that particular reference.
>
> Fix the bug by setting `REF_FORCE_CREATE_REFLOG`, which instructs the
> ref backends to create the reflog entry regardless of the config or any
> preexisting state.

Thanks for a clear problem analysis description. The appraoch makes perfect sense.

Will queue.
Show 23 quoted lines
> +		test_expect_success "$from_format -> $to_format: stash is retained" '
> +			test_when_finished "rm -rf repo" &&
> +			git init --ref-format=$from_format repo &&
> +			(
> +				cd repo &&
> +				test_commit initial A &&
> +				echo foo >A &&
> +				git stash push &&
> +				echo bar >A &&
> +				git stash push &&
> +				git stash list >expect.reflog &&
> +				test_migration . "$to_format" &&
> +				git stash list >actual.reflog &&
> +				test_cmp expect.reflog actual.reflog
> +			)
> +		'
>  	done
>  done
>  
>
> ---
> base-commit: f93ff170b93a1782659637824b25923245ac9dd1
> change-id: 20250122-b4-pks-reflog-migration-fix-stash-d1fe7380f84a
Previous: Patrick Steinhardt
Message 2 of 2 in “refs: fix migration of reflogs respecting "core.logAllRefUpdates"”
  1. refs: fix migration of reflogs respecting "core.logAllRefUpdates"Patrick Steinhardt, Jan 22, 2025
  2. Junio C HamanoJan 22, 2025

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.