This commit is contained in:
Joey Hess 2023-01-16 16:12:16 -04:00
parent c172855a7f
commit fdd0b4bae0
No known key found for this signature in database
GPG key ID: DB12DB0FF05F8F38

View file

@ -0,0 +1,29 @@
[[!comment format=mdwn
username="joey"
subject="""comment 1"""
date="2023-01-16T19:56:10Z"
content="""
Could your script be changed to not remove the `d` flag when freezing
the file, but instead when freezing the directory, remove the `d` flag from the
file then? (And restore the file's `d` flag when thawing the directory.)
That seems like it would avoid the problem since as you say,
git-annex freezes the directory after moving the file into it. And freezing
the directory is logically what you are doing really.
But, you would need to convert .git/annex/objects/xx/yy/KEY to
.git/annex/objects/xx/yy/KEY/KEY to get the name of the file,
which is a bit grubbing into git-annex internals I suppose.
git-annex has a good reason to want to prevent modifications to the file
before moving it: It has to hash it before knowing where to move it to, and
it would like to avoid the file getting modified while it is being hashed.
(Though of course it will recover if that does happen.) So I would not want
to skip the permission setting part of the pre-move freeze. What I suppose
it could do is only set the permissions at that point, and defer running
the freeze hook until after moving the file.
(I checked and Comand.Import also has a `freezeContent` that comes
before a file is moved and would need to be changed.
Rest of the calls look ok.)
"""]]