Mercurial > hg-stable
view tests/test-narrow-copies.t @ 40847:77173267878b
narrow: don't resurrect old commits when narrowing (don't strip obsmarkers)
If you have an old obsolescence-chain of commits that has been pruned
and you narrow your repo so that some of those commits get stripped
(because they affected the removed paths), then we would currently
resurrect the commit that came before (along the obsmarker chain) the
last stripped commit. That happens by the usual rules for
obsmarker-stripping. However, it's quite surprising when it happens
when you narrow your repo. This patch makes narrowing not strip
obsmarkers.
Differential Revision: https://phab.mercurial-scm.org/D5364
author | Martin von Zweigbergk <martinvonz@google.com> |
---|---|
date | Mon, 03 Dec 2018 16:56:09 -0800 |
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