Thread (6 messages) 6 messages, 4 authors, 2024-01-23

Re: [PATCH 2/5] refs: make `is_pseudoref_syntax()` stricter

From: Junio C Hamano <hidden>
Date: 2024-01-22 20:22:52

Phillip Wood [off-list ref] writes:
I'm concerned that this change is a regression. is_pseudoref_syntax()
is used by is_current_worktree_ref() and so scripts that create
pseudorefs that do not conform to your new rules will break as git
will no-longer consider the pseudorefs they create to be worktree
specific.
Ideally, when the exception list in the function becomes more
complete, those "pseudorefs" created by those scripts shouldn't
probably be created either as common or worktree specific thing
if they are not "pseudoref".
The list of hard coded exceptions also looks quite short, I
can see MERGE_AUTOSTASH and BISECT_START are missing and there are
probably others I've not thought of.
I agree that it is something we need to fix.
The commit message would be a good place to discuss why you're making
this change, the implications of the change and any alternative
approaches that you considered. As I understand it you're tying to get
round the problem that the files backend stores pseudorefs mixed up
with other non-ref files in $GIT_DIR.
Yup.  The rationale may want to be explained better.
Another approach would be to
read all the files whose name matches the pseudoref syntax and see if
its contents looks like a valid ref skipping names like COMMIT_EDITMSG
that we know are not pseudorefs.
In the longer term, I'd prefer to see a simpler rule, like "all-caps
or underscore string, ending with _HEAD and nothing else are the
pseudorefs but we have these small number of exceptions that are
grandfathered".

Thanks.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help