[[!comment format=mdwn
 username="joey"
 subject="""comment 2"""
 date="2022-05-02T17:08:15Z"
 content="""
Here is the bug in action:

	-r--r--r-- 1 joey joey 30 May  2 12:42 .git/annex/objects/Gj/8J/SHA256E-s30--3d65cafd9435fde3867a527d75ff8aea05a3632cb60574d45e0fc277f06c8a64/SHA256E-s30--3d65cafd9435fde3867a527d75ff8aea05a3632cb60574d45e0fc277f06c8a64
	joey@darkstar:/tmp/x>git-annex copy --to foo
	copy x (to foo...) 
	ok
	joey@darkstar:/tmp/x>ls -l .git/annex/objects/Gj/8J/SHA256E-s30--3d65cafd9435fde3867a527d75ff8aea05a3632cb60574d45e0fc277f06c8a64/SHA256E-s30--3d65cafd9435fde3867a527d75ff8aea05a3632cb60574d45e0fc277f06c8a64
	-rwxr--r-- 1 joey joey 30 May  2 12:42 .git/annex/objects/Gj/8J/SHA256E-s30--3d65cafd9435fde3867a527d75ff8aea05a3632cb60574d45e0fc277f06c8a64/SHA256E-s30--3d65cafd9435fde3867a527d75ff8aea05a3632cb60574d45e0fc277f06c8a64*

At first I thought this was rsync modifying the permissions of the source file.

But no... [[!commit 17b20a24502aee3bfc5683146c3899a233295aea]]
changed how temp directories get cleaned up. removePathForcibly
is actually changing the permissions of the object file hard link
in the rsynctmp directory when deleting that directory. Which also 
changes the permissions of the object file.

Filed a bug on removePathForcibly. <https://github.com/haskell/directory/issues/135>

I think this makes removePathForcibly unsuitable for general purpose
use in git-annex, because there are just too many ways for a hard link
to enter the picture. (Eg annex.thin, or even a user making their own
hard link that git-annex does not know about.) 

So, I've reverted that commit, and put in a more
targeted fix for the problem it was addressing.
"""]]
