Mercurial > hg
view tests/test-narrow-copies.t @ 41932:7694b685bb10
copies: handle a case when both merging csets are not descendant of merge base
This patch fix the behaviour of fullcopytracing algorithm in the case
when both the merging csets are not the descendant of merge base.
Although it seems to be the rare case when both the csets are not
descendant of merge base. But it can be seen in most of cases of
content-divergence in evolve extension, where merge base is the common
predecessor.
Previous patch added a test where this algorithm can fail to continue
because of an assumption that only one of the two csets can be dirty.
This patch fix that error.
For refrence I suggest you to look into the previous discussion held
on a patch sent by Pulkit: https://phab.mercurial-scm.org/D3896
Differential Revision: https://phab.mercurial-scm.org/D5963
author | Sushil khanchi <sushilkhanchi97@gmail.com> |
---|---|
date | Wed, 13 Feb 2019 15:50:14 +0530 |
parents | 07a66c1387d1 |
children | f90a5c211251 |
line wrap: on
line source
$ . "$TESTDIR/narrow-library.sh" create full repo $ hg init master $ cd master $ mkdir inside $ echo inside > inside/f1 $ mkdir outside $ echo outside > outside/f2 $ hg ci -Aqm 'initial' $ hg mv outside/f2 inside/f2 $ hg ci -qm 'move f2 from outside' $ echo modified > inside/f2 $ hg ci -qm 'modify inside/f2' $ mkdir outside $ echo new > outside/f3 $ hg ci -Aqm 'add outside/f3' $ cd .. $ hg clone --narrow ssh://user@dummy/master narrow --include inside -r 2 adding changesets adding manifests adding file changes added 3 changesets with 3 changes to 2 files new changesets *:* (glob) updating to branch default 2 files updated, 0 files merged, 0 files removed, 0 files unresolved $ cd narrow $ hg co 'desc("move f2")' 1 files updated, 0 files merged, 0 files removed, 0 files unresolved $ hg status $ hg diff $ hg diff --change . --git diff --git a/inside/f2 b/inside/f2 new file mode 100644 --- /dev/null +++ b/inside/f2 @@ -0,0 +1,1 @@ +outside $ hg log --follow inside/f2 -r tip changeset: 2:bcfb756e0ca9 tag: tip user: test date: Thu Jan 01 00:00:00 1970 +0000 summary: modify inside/f2 changeset: 1:5a016133b2bb user: test date: Thu Jan 01 00:00:00 1970 +0000 summary: move f2 from outside $ echo new > inside/f4 $ hg ci -Aqm 'add inside/f4' $ hg pull -q $ hg --config extensions.rebase= rebase -d tip rebasing 3:4f84b666728c "add inside/f4" saved backup bundle to $TESTTMP/narrow/.hg/strip-backup/4f84b666728c-4269b76e-rebase.hg $ hg co -q 0 $ echo modified > inside/f1 $ hg ci -qm 'modify inside/f1' $ echo new > inside/f5 $ hg ci -Aqm 'add inside/f5' $ hg --config extensions.rebase= rebase -d 'public()' -r . rebasing 6:610b60178c28 "add inside/f5" (tip) saved backup bundle to $TESTTMP/narrow/.hg/strip-backup/610b60178c28-65716a78-rebase.hg