Subject: Re: [PATCH] apply: don't use core.sharedRepository to create working tree files

From: Achim Gratz <[email-masked]>
Date: Sat, 19 Dec 2020 22:01:16 +0100

Adam Dinwoodie writes:
> Having done a bit more digging, you're (unsurprisingly) right that
> this seems to be about permissions rather than mount points per se. I
> see the same failure with a build in
> /cygdrive/c/Users/Adam/Documents/git, though, where that directory was
> created solely using Git commands with the installed version of Cygwin
> Git (v2.29.2-1).

Windows is "protecting" various directories and that can get in the way
as well.

> I'm using a test VM here that was created from
> scratch solely to run these tests, and where there has only ever been
> a single login user account, so the permissions setup should be about
> as straightforward as they possibly could be.

You haven't shown what these are in detail, though.  Use getfacl to see
what Cygwin thinks the permissions are and icacls to get the Windows
view.  Once you know what the ACL look like it usually becomes clear
what you need to do to get what you want.  In your particular case I'd
try to recursively do a 'setfacl -kb' to remove all ACL and inheritable
defaults.  Again, it's possible that your user has insufficient
permisions to do that (which will then result in some ACL still present,
i.e. a '+' sign after the permission bits in 'ls -l' output).

Keep in mind that running things as a member of the Administrator group
usually confers some extra permissions on top of that, like
Backup/Restore privileges.

> This seems like a scenario that Cygwin should be able to handle, but I
> don't have a clear enough grasp of how Windows ACLs work in normal
> circumstances, let alone when Cygwin is handling them in its
> non-standard ways, to know what an appropriate solution here is. "Only
> ever build things within the Cygwin home directory" seems like a
> decidedly suboptimal workaround, though.

I have a dedicated build directory outside anything that Windows cares
about and mount that under /mnt/share from Cygwin.  I usually remove all
inheritable and default ACL on the toplevel directory before populating
it.

Regards,
Achim.
-- 
+<[Q+ Matrix-12 WAVE#46+305 Neuron microQkb Andromeda XTk Blofeld]>+

Factory and User Sound Singles for Waldorf Blofeld:
http://Synth.Stromeko.net/Downloads.html#WaldorfSounds