Mercurial > hg
view tests/test-narrow-copies.t @ 42926:34ed651ba7e4
cleanup: fix leakage of dirstate._map to client code
We already had proper accessors for most of the behavior of
dirstate._map that callers cared about exposed in the actual dirstate
class as public methods. Sigh.
There are two remaining privacy violations in the codebase after this change:
1) In the perf extension, which I suspect has to stick around because
it's really testing the dirstate implementation directly
2) In largefiles, where we deal with standins and mutating status. Looking at
this, I _strongly_ suspect a formal dirstate interface would allow
this to work via composition instead of inheritance and
monkeypatching. Fortunately, such wins are a part of my motivation
for this work. I anticipate we'll come back to this in due time.
Differential Revision: https://phab.mercurial-scm.org/D6837
author | Augie Fackler <augie@google.com> |
---|---|
date | Tue, 10 Sep 2019 09:41:58 -0400 |
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