Re: [PATCH] git-new-workdir: add windows compatibility
- From
Michael J Gruber <git@drmicha.warpmail.net>
- Date
- May 29, 2015, 09:53 UTC
- Message-ID
- <55683700.3010201@drmicha.warpmail.net>
- In-Reply-To
- <1fb8315dfaffb91ec4925bcc458e12a2@www.dscho.org>
Johannes Schindelin venit, vidit, dixit 26.05.2015 14:35:
Show 36 quoted lines
> Hi Paul, > > On 2015-05-26 14:20, Paul Smith wrote: >> On Tue, 2015-05-26 at 11:53 +0200, Johannes Schindelin wrote: >>> The biggest problem with `mklink` is that it is only supported on >>> Windows Vista and later, while I really like to keep Windows XP >>> support in Git for Windows. >> >> No, the biggest problem with mklink is that you have to have >> administrative privileges to use it... from wikipedia: >> >> http://en.wikipedia.org/wiki/NTFS_symbolic_link > > It is even worse than that, as you pointed out below: administrators *can* permit non-administrators to create and use of symbolic links. > > However, from a maintainer's perspective (which is my role in this thread), the compatibility problem is an even worse problem than the permissions. > >>> The default security settings in Windows Vista/Windows 7 disallow >>> non-elevated administrators and all non-administrators from creating >>> symbolic links. This behavior can be changed running "secpol.msc" the >>> Local Security Policy management console (under: Security Settings >>> \Local Policies\User Rights Assignment\Create symbolic links). It can >>> be worked around by starting cmd.exe with Run as administrator option >>> or the runas command. >> >> Except even that is not so simple, as various StackOverflow questions >> and answers will show (I have to run so I can't look them up now). I >> did try to get this to work a year or so ago, and although I'm in no way >> a Windows person (so maybe someone else would have better luck) I >> couldn't get it to work. > > For what it is worth, I tried my hand a couple of years ago at the project to move git-new-workdir to use the `.git` *file* and alternates mechanisms, but that does not work because you really need a separate `.git/HEAD`. > > Ciao, > Johannes >
Isn't that basically the approach that "git checkout --to" is taking? Is that one "Windows proof"? I've lost track of its status, though.
Michael