Johannes Schindelin said the following on 29.02.2008 15:25: > On Fri, 29 Feb 2008, Marius Storm-Olsen wrote: >> I'm actually not sure that it's impossible to make it safe. My >> implementation works by redirecting files into the real repo. >> However, we can also detect when redirection is in effect, and do >> extra 'maintainance' things then, to avoid the bad effects. > > From the perspective of Windows, I guess it is easy to overlook the > fact that permissions can break your idea. > > Even after creating a second working tree for an existing > repository, the permissions of the original repository can change. Sure, but that would break _any_ working tree implementation. Without access to the original data, it whole thing is bust, no matter if you redirect all or part of .git/. Checking if we have access to the redirected .git is trivial in both cases. (partial or whole redirection) > The only way to be on the safe side is to use _the repository_ > twice. IOW not having a second .git/ directory. > > Also, having a single .git is just a very simple, and thus > preferable concept, to having part of this, and part of that > repository. I whole heartedly agree. I'm not proposing to keep it split in the long run. I'm just proposing something that 'works' *now*, and can be improved incrementally; as opposed to, doesn't work now, and needs to be fully implemented before it works for the Windows crowd. PS. The redirection method I propose already alleviates an issue of the current git-new-workdir has, which Shawn has experienced many atime: The deletion of .git/config and .git/packed-refs, making 'git-config' and 'git tag -d' unsafe in a workdir. (Though I'm unsure if that has been fixed already. In any case, since the files are really redirected, there no chance that deleting a file will remove a synlink, only to be recreated as a normal file instead) -- .marius