2007/10/11, Pekka Pessi <[EMAIL PROTECTED]>:
> Looks like rolling back two depending patches does not work as expected.

I tried to figure out what is happening there. Run rollback-bug
script, then toy around in repos:

hamsa /tmp/demo/A $ darcs changes --reverse -v
Thu Oct 11 13:10:44 EEST 2007  Pekka Pessi <[EMAIL PROTECTED]>
  * p1

    addfile ./content
    hunk ./content 1
    +1
    +12
    +123
    +1234
    +123
    +12
    +1

Thu Oct 11 13:10:44 EEST 2007  Pekka Pessi <[EMAIL PROTECTED]>
  * p2

    hunk ./content 4
    +1234
    +12345

Thu Oct 11 13:10:44 EEST 2007  Pekka Pessi <[EMAIL PROTECTED]>
  * p3

    hunk ./content 4
    -1234
    -12345
    -1234
    +01234
    +012345
    +01234

Thu Oct 11 13:10:44 EEST 2007  Pekka Pessi <[EMAIL PROTECTED]>
  UNDO: p3

    hunk ./content 4
    -01234
    -012345
    -01234
    +1234
    +12345
    +1234

Thu Oct 11 13:10:44 EEST 2007  Pekka Pessi <[EMAIL PROTECTED]>
  UNDO: p2

    merger 0.0 (
    hunk ./content 4
    -01234
    -012345
    -01234
    +1234
    +12345
    +1234
    merger 0.0 (
    hunk ./content 4
    -1234
    -12345
    -1234
    +01234
    +012345
    +01234
    hunk ./content 4
    -1234
    -12345
    )
    )

I think this indicates that applying -p2 results in merger (-p3, (p3,
-p2)) - quite correctly I think. So we have hunks from p1, p2, -p2.

But the darcs does not use the resulting hunk as expected. Actually,
it is not doing *anything* with last patch:

hamsa /tmp/demo/A $ darcs diff --last 1
Thu Oct 11 13:10:44 EEST 2007  Pekka Pessi <[EMAIL PROTECTED]>
  UNDO: p2
hamsa /tmp/demo/A $

So let's try to see what is happening if we apply p3 and -p3 to B:

hamsa /tmp/demo/A $ darcs push ../B
Pushing to "../B"...

Thu Oct 11 13:10:44 EEST 2007  Pekka Pessi <[EMAIL PROTECTED]>
  * p3
Shall I push this patch? (1/2)  [ynWvpxqadjk], or ? for help: y


Thu Oct 11 13:10:44 EEST 2007  Pekka Pessi <[EMAIL PROTECTED]>
  UNDO: p3
Shall I push this patch? (2/2)  [ynWvpxqadjk], or ? for help: y

Finished applying...

hamsa /tmp/demo/A $ darcs changes --reverse -v --repo ../B
Thu Oct 11 13:10:44 EEST 2007  Pekka Pessi <[EMAIL PROTECTED]>
  * p1

    addfile ./content
    hunk ./content 1
    +1
    +12
    +123
    +1234
    +123
    +12
    +1

Thu Oct 11 13:10:44 EEST 2007  Pekka Pessi <[EMAIL PROTECTED]>
  * p2

    hunk ./content 4
    +1234
    +12345

Thu Oct 11 13:10:44 EEST 2007  Pekka Pessi <[EMAIL PROTECTED]>
  UNDO: p2

    hunk ./content 4
    -1234
    -12345

Thu Oct 11 13:10:44 EEST 2007  Pekka Pessi <[EMAIL PROTECTED]>
  * p3

    merger 0.0 (
    hunk ./content 4
    -1234
    -12345
    hunk ./content 4
    -1234
    -12345
    -1234
    +01234
    +012345
    +01234
    )

Thu Oct 11 13:10:44 EEST 2007  Pekka Pessi <[EMAIL PROTECTED]>
  UNDO: p3

    merger 0.0 (
    merger 0.0 (
    hunk ./content 4
    -1234
    -12345
    -1234
    +01234
    +012345
    +01234
    hunk ./content 4
    -1234
    -12345
    )
    hunk ./content 4
    -01234
    -012345
    -01234
    +1234
    +12345
    +1234
    )

So when the last patch is applied, we get merger ((p3, -p2), -p3) =>
-p3. Darcs seems to be applying the hunks shown in changes -v
correctly.

At least end result is same in A and B:

hamsa /tmp/demo/A $ diff content ../B/content
hamsa /tmp/demo/A $ diff content f2

-- 
Pekka.Pessi mail at nokia.com
_______________________________________________
darcs-devel mailing list
[email protected]
http://lists.osuosl.org/mailman/listinfo/darcs-devel

Reply via email to