Subject: Re: [PATCH] cg-pull to stop treating "master" specially, fix fetch_local for .git/HEAD

From: Pavel Roskin <[email-masked]>
Date: Thu, 10 Nov 2005 15:11:47 -0500

Hi, Petr!

On Thu, 2005-11-10 at 20:24 +0100, Petr Baudis wrote:
>   can you still remember why did you introduce this? In GNU cp
> documentation, I can see just
> 
>        -b, --backup
>               Make backups of files that are about to be overwritten or removed.
> 
> which doesn't make sense to me - -L dereferences symlinks.

You are right, it must be my error.  Anyway, it was so long ago that I
would need to review and retest it.

While at that, let's stop using symlinks.  git doesn't use symlinks on
Cygwin.  I think git should use that code on all OSes, since the
benefits of using symlinks are minimal (I think the only benefits are
their atomicity and resolving the reference in the kernel rather than in
userspace).  Having more uniform code for all platforms would simplify
development and testing.  It could also reduce requirements for the
transport protocols.  Finally, symlinks could be still used by the users
(if they know what they are doing) - git and cogito would simply become
symlink agnostic.

When files are copied around, symlinks are pain to deal with.  They
require special handling to be preserved both for remote operation and
dereferenced for local operation (that's what my patch was intended to
do).  I'm not even considering what would happen when cloning from Linux
to Windows or vice versa.

Sure, it can wait until git 1.0, but it would be great to keep this goal
in mind.

Disclaimer - I'm not reading the git mailing list, so if it was
discussed, I'm sorry, I don't intend to restart that discussion - just
give me the pointer and I'll read it.

-- 
Regards,
Pavel Roskin