Thread (4 messages) 4 messages, 2 authors, 2016-06-15

Re: [BUG/PATCH] t9350-fast-export: Add failing test for symlink-to-directory

From: Jeff King <hidden>
Date: 2016-06-15 23:06:16

On Fri, Aug 21, 2015 at 12:47:30PM -0400, Anders Kaseorg wrote:
On Fri, 21 Aug 2015, Jeff King wrote:
quoted
  - we may still have the opposite problem with renames. That is, a
    rename is _also_ a deletion, but will go to the end. So I would
    expect renaming the symlink "foo" to "bar" and then adding
    "foo/world" would end up with:

       M 100644 :3 foo/world
       R foo bar

    (because we push renames to the end in our sort). And indeed,
    importing that does seem to get it wrong (we end up with "bar/world"
    and no symlink).

We can't fix the ordering in the second case without breaking the first
case. So I'm not sure it's fixable on the fast-export end.
Hmm, renames have a more fundamental ordering problem: swapping two 
(normal) files and using fast-export -C -B results in

  R foo bar
  R bar foo

which cannot be reimported correctly without fast-import fixes.
Yeah, you're right. Fast-export's view of the world comes from diff,
which is that the "source" side is immutable. Whereas fast-import seems
to mutate the tree in-place as it reads the set of operations. I wonder
what would break if we simply fixed that. I.e., is anybody else
depending on:

  R foo bar
  M bar ...

to modify "foo" and not "bar". I kind of wonder if it is insane to turn
on renames at all in fast-export.

-Peff
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help