From: Robin Rosenberg <robin.rosenberg.lists@dewire.com>
To: Patrick.Higgins@cexp.com
Cc: git@vger.kernel.org
Subject: Re: Windows symlinks
Date: Wed, 25 Jun 2008 01:29:56 +0200 [thread overview]
Message-ID: <200806250129.56271.robin.rosenberg.lists@dewire.com> (raw)
In-Reply-To: <911589C97062424796D53B625CEC0025E4618F@USCOBRMFA-SE-70.northamerica.cexp.com>
onsdagen den 25 juni 2008 00.42.49 skrev Patrick.Higgins@cexp.com:
> It looks like one of the bigger (biggest?) hurdles for git adoption at my company is going to be handling symlinks on Windows. We may be able to sidestep the issue entirely by having developers run Linux in a virtual machine (or better yet, Windows in a VM) because we deploy to Linux and thus can make a very strong argument that developers should develop on Linux, too. That run into an image problem where people might start blaming git for needing to have an extra operating system around just for revision control.
Right, they could use only Linux and not have an extra OS for email..
>
> We currently use Clearcase snapshot views on Windows and it has some kind of magic to be able to deal with symlinks. I haven't actually used the Windows version of Clearcase so I don't know how it does it, but my understanding is that it handles them with copies, and I guess it somehow knows to update all the copies when a change is made.
It is one of the few sane things clearcase does. msysgit's approach is just unusable. I've not come up with the patches yet. Clearcase makes copies
instead of the symlinks and updates them on checkout/checkin and update.
Git could do one step better by updating copies when index is updated, avoiding an unnecessary commit (which is pretty annoying in CC).
Invalid symlinks, i.e. pointing at non-existent objects or outside then VOB (repository in Git parlance, don't show up at all in snapshot views. Git could do the same thereby making the workdir usable
when it contains and depends on symlinks.
> Has anyone thought about a way for git to handle symlinks? Vista seems to have added native symlinks, but you need have elevated privilege to create
> them. NTFS junction points seem helpful for older versions of Windows, but don't work for anything except directories, and seem to be dangerous to use with tools that do recursive deletes. Neither junction points nor native symlinks sound like great options.
Obviously one could make this a switchable feature and enable it when the
file system supports it. As for junction points i'd say no too. What little testing I did on symlinks in vista they seem capable of most sane uses.
> Cygwin's clever symlink trick seems to work pretty well in practice. I'm not exactly sure what it's doing, but it seems to create a shortcut that it's own programs understand. Some other non-Cygwin programs seem to understand them, too, but Java does not which is a big problem for me.
>
> I just don't see any good solutions here. Does anyone have any better ideas?
No, copies. If you have a patch I can test it and then implement it for jgit, which doesn't have symlinks either.
-- robin
prev parent reply other threads:[~2008-06-24 23:34 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-06-24 22:42 Windows symlinks Patrick.Higgins
2008-06-24 23:18 ` Avery Pennarun
2008-06-26 3:50 ` Jay Soffian
2008-06-24 23:28 ` Jakub Narebski
2008-06-24 23:42 ` Patrick.Higgins
2008-06-25 0:04 ` Avery Pennarun
2008-06-25 17:50 ` Patrick.Higgins
2008-06-26 6:33 ` Andreas Ericsson
2008-06-24 23:29 ` Robin Rosenberg [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=200806250129.56271.robin.rosenberg.lists@dewire.com \
--to=robin.rosenberg.lists@dewire.com \
--cc=Patrick.Higgins@cexp.com \
--cc=git@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).