From: Pierre Habouzit <madcoder@debian.org>
To: Junio C Hamano <gitster@pobox.com>, git@vger.kernel.org
Subject: Re: $ git checkout and symlinks
Date: Thu, 5 Jul 2007 00:23:51 +0200 [thread overview]
Message-ID: <20070704222351.GC13286@artemis.corp> (raw)
In-Reply-To: <20070704210559.GB13286@artemis.corp>
[-- Attachment #1: Type: text/plain, Size: 1813 bytes --]
On Wed, Jul 04, 2007 at 11:05:59PM +0200, Pierre Habouzit wrote:
> On Wed, Jul 04, 2007 at 01:52:32PM -0700, Junio C Hamano wrote:
> > Pierre Habouzit <madcoder@debian.org> writes:
> >
> > > if in a branch $ you track the file: dir1/file1.c
> > > and in the branch $ you track elsewhere/file1.c and dir1 be
> > > symlink on elsewhere, then it's not possible to checkout the branch
> > > $. You have to manually
> > > remove the symlink `dir1` else git complains that checkouting branch1
> > > would overwrite dir1/file1.c.
> > >
> > > I'm not sure how to fix this, and it's quite painful actually :)
> >
> > Yeah, I think our handling of symlinks in both read-tree and
> > merge-recursive codepath are Ok for symlinks at the leaf level
> > but not for intermediate levels. I think we have some patches
> > in the recent git (post 1.5.1) to fix (perhaps some of) the
> > issues, though.
>
> that was with the git in debian unstable, 1.5.2.3 actually. I'll try
> again with HEAD to see if that's fixed.
HEADS does not fixes it either.
Here is how to reproduce the problem step by step:
$ git init-db # init a repo
$ mkdir dir
$ echo wibble > dir/a
$ git add a
$ git commit -a -m'add a' # have dir/a live in master
$ git checkout -b break
$ git mv dir new # rename dir into new
$ ln -s new dir # symlink dir to new
$ git add dir # add the symlink
$ git commit -a -m 'break things' # commit
$ git checkout master
fatal: Untracked working tree file 'dir/a' would be overwritten by merge.
The same is true for current git.git HEAD, or git 1.5.2.x
Cheers,
--
·O· Pierre Habouzit
··O madcoder@debian.org
OOO http://www.madism.org
[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]
next prev parent reply other threads:[~2007-07-04 22:23 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-07-04 20:35 [BUG (or misfeature?)] git checkout and symlinks Pierre Habouzit
2007-07-04 20:52 ` Junio C Hamano
2007-07-04 21:05 ` Pierre Habouzit
2007-07-04 22:23 ` Pierre Habouzit [this message]
2007-07-12 8:04 ` Teach read-tree 2-way merge to ignore intermediate symlinks Junio C Hamano
2007-07-12 8:31 ` git-log --follow? Junio C Hamano
2007-07-12 10:44 ` Johannes Schindelin
2007-07-12 17:49 ` Linus Torvalds
2007-07-12 18:45 ` Junio C Hamano
2007-07-12 19:01 ` Linus Torvalds
2007-07-12 12:40 ` Teach read-tree 2-way merge to ignore intermediate symlinks Pierre Habouzit
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=20070704222351.GC13286@artemis.corp \
--to=madcoder@debian.org \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.