view tests/test-narrow-update.t @ 37256:3c7c13e75663

status: use context-returning revpair() Differential Revision: https://phab.mercurial-scm.org/D3010
author Martin von Zweigbergk <martinvonz@google.com>
date Sat, 31 Mar 2018 23:31:28 -0700
parents 6767e7ce2c31
children 009d0283de5f
line wrap: on
line source


  $ . "$TESTDIR/narrow-library.sh"

create full repo

  $ hg init master
  $ cd master
  $ echo init > init
  $ hg ci -Aqm 'initial'

  $ mkdir inside
  $ echo inside > inside/f1
  $ mkdir outside
  $ echo outside > outside/f1
  $ hg ci -Aqm 'add inside and outside'

  $ echo modified > inside/f1
  $ hg ci -qm 'modify inside'

  $ echo modified > outside/f1
  $ hg ci -qm 'modify outside'

  $ cd ..

  $ hg clone --narrow ssh://user@dummy/master narrow --include inside
  requesting all changes
  adding changesets
  adding manifests
  adding file changes
  added 4 changesets with 2 changes to 1 files
  new changesets *:* (glob)
  updating to branch default
  1 files updated, 0 files merged, 0 files removed, 0 files unresolved
  $ cd narrow
  $ hg debugindex -c
     rev    offset  length   base linkrev nodeid       p1           p2
       0         0      64      0       0 9958b1af2add 000000000000 000000000000
       1        64      81      1       1 2db4ce2a3bfe 9958b1af2add 000000000000
       2       145      75      2       2 0980ee31a742 2db4ce2a3bfe 000000000000
       3       220      (76|77)      3       3 4410145019b7 0980ee31a742 000000000000 (re)

  $ hg update -q 0

Can update to revision with changes inside

  $ hg update -q 'desc("add inside and outside")'
  $ hg update -q 'desc("modify inside")'
  $ find *
  inside
  inside/f1
  $ cat inside/f1
  modified

Can update to revision with changes outside

  $ hg update -q 'desc("modify outside")'
  $ find *
  inside
  inside/f1
  $ cat inside/f1
  modified

Can update with a deleted file inside

  $ hg rm inside/f1
  $ hg update -q 'desc("modify inside")'
  $ hg update -q 'desc("modify outside")'
  $ hg update -q 'desc("initial")'
  $ hg update -q 'desc("modify inside")'

Can update with a moved file inside

  $ hg mv inside/f1 inside/f2
  $ hg update -q 'desc("modify outside")'
  $ hg update -q 'desc("initial")'
  $ hg update -q 'desc("modify inside")'