From: "Shawn O. Pearce" <spearce@spearce.org>
To: Elijah Newren <newren@gmail.com>
Cc: git@vger.kernel.org, gitster@pobox.com, agladysh@gmail.com
Subject: Re: [PATCHv2 5/5] fast-import: Fix minor data-loss issue with directories becoming symlinks
Date: Tue, 6 Jul 2010 13:19:35 -0700 [thread overview]
Message-ID: <20100706201935.GB19476@spearce.org> (raw)
In-Reply-To: <AANLkTimrD1LOZBb0YyzlrKgTc7bGWTxdf05cpwPR6WSw@mail.gmail.com>
Elijah Newren <newren@gmail.com> wrote:
> On Tue, Jul 6, 2010 at 1:34 PM, Shawn O. Pearce <spearce@spearce.org> wrote:
> > newren@gmail.com wrote:
> >> From: Elijah Newren <newren@gmail.com>
> >>
> >> When fast-export runs across a directory changing to a symlink, it will
> >> output the changes in the form
> >> ?? M 120000 :239821 dir-changing-to-symlink
> >> ?? D dir-changing-to-symlink/filename1
> >> When fast-import sees the first line, it deletes the directory named
> >> dir-changing-to-symlink (and any files below it) and creates a symlink in
> >> its place. ??When fast-import came across the second line, it was previously
> >> trying to remove the file and relevant leading directories in
> >> tree_content_remove(), and as a side effect it would delete the symlink
> >> that was just created. ??This resulted in the symlink silently missing from
> >> the resulting repository.
> >
> > Ugh.
> >
> > I'm not against making the input parser more robust, but this is
> > a violation of the stream format from fast-export. ??The stream is
> > incremental, a command like 'M' takes place immediately. ??It is
> > wrong for a frontend to output 'M foo', then 'D foo/bar'.
> >
> > IMHO, if fast-export is doing what you say above, the bug lies in
> > fast-export, and therefore the fix should too.
>
> Okay, I'll fix up fast-export. Do you want me to drop this
> fast-import patch, or does it still make sense as an extra robustness
> check?
It probably makes sense to still do this in fast-import, deleting
something that doesn't exist is probably OK, its still going to
be deleted in the end anyway.
--
Shawn.
prev parent reply other threads:[~2010-07-06 20:19 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-07-06 18:51 [PATCHv2 0/5] D/F conflict fixes newren
2010-07-06 18:51 ` [PATCHv2 1/5] Add additional testcases for D/F conflicts newren
2010-07-06 18:51 ` [PATCHv2 2/5] Add a rename + D/F conflict testcase newren
2010-07-06 18:51 ` [PATCHv2 3/5] merge-recursive: Fix D/F conflicts newren
2010-07-06 18:51 ` [PATCHv2 4/5] merge_recursive: Fix renames across paths below " newren
2010-07-06 18:51 ` [PATCHv2 5/5] fast-import: Fix minor data-loss issue with directories becoming symlinks newren
2010-07-06 19:34 ` Shawn O. Pearce
2010-07-06 19:48 ` Elijah Newren
2010-07-06 20:19 ` Shawn O. Pearce [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=20100706201935.GB19476@spearce.org \
--to=spearce@spearce.org \
--cc=agladysh@gmail.com \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
--cc=newren@gmail.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.