view tests/test-narrow-update.t @ 48682:ddd5eecc6d0d

test: simpler requirements matching in test-sidedata.t We focus on the requirements relevant for this tests. Differential Revision: https://phab.mercurial-scm.org/D11988
author Pierre-Yves David <pierre-yves.david@octobus.net>
date Mon, 10 Jan 2022 12:06:42 +0100
parents 351cbda889db
children ccd76e292be5
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 linkrev nodeid       p1           p2
       0       0 9958b1af2add 000000000000 000000000000
       1       1 2db4ce2a3bfe 9958b1af2add 000000000000
       2       2 0980ee31a742 2db4ce2a3bfe 000000000000
       3       3 4410145019b7 0980ee31a742 000000000000

  $ 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("add inside and outside")'
  $ hg update -q 'desc("modify inside")'