view tests/test-narrow-patch.t @ 42154:f2fe7cf4ebb6

tests: split out separate test for issue5020 The test was added to the existing setup in 41f6af50c0d8 (merge: fix crash on criss cross merge with dir move and delete (issue5020), 2017-01-31). I'm about to make a change that affects that test and it's much easier to follow if the test case for issue5020 is a separate test case. The separate test case is based on what mpm provided in comment 12 on the issue. `hg diff -r 41f6af50c0d8^ tests/test-merge-criss-cross.t` after this patch is pretty small (besides the added test). It's probably easier for reviewers to look at that than to try to understand the diff itself (I don't understand it). Differential Revision: https://phab.mercurial-scm.org/D6243
author Martin von Zweigbergk <martinvonz@google.com>
date Sat, 13 Apr 2019 23:18:56 -0700
parents dc01484606da
children
line wrap: on
line source

#testcases flat tree

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

#if tree
  $ cat << EOF >> $HGRCPATH
  > [experimental]
  > treemanifest = 1
  > EOF
#endif

create full repo

  $ hg init master
  $ cd master

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

  $ 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 3 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

Can show patch touching paths outside

  $ hg log -p
  changeset:   2:* (glob)
  tag:         tip
  user:        test
  date:        Thu Jan 01 00:00:00 1970 +0000
  summary:     modify outside
  
  
  changeset:   1:* (glob)
  user:        test
  date:        Thu Jan 01 00:00:00 1970 +0000
  summary:     modify inside
  
  diff -r * -r * inside/f1 (glob)
  --- a/inside/f1	Thu Jan 01 00:00:00 1970 +0000
  +++ b/inside/f1	Thu Jan 01 00:00:00 1970 +0000
  @@ -1,1 +1,1 @@
  -inside
  +modified
  
  changeset:   0:* (glob)
  user:        test
  date:        Thu Jan 01 00:00:00 1970 +0000
  summary:     initial
  
  diff -r 000000000000 -r * inside/f1 (glob)
  --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
  +++ b/inside/f1	Thu Jan 01 00:00:00 1970 +0000
  @@ -0,0 +1,1 @@
  +inside
  

  $ hg status --rev 1 --rev 2

Can show copies inside the narrow clone

  $ hg cp inside/f1 inside/f2
  $ hg diff --git
  diff --git a/inside/f1 b/inside/f2
  copy from inside/f1
  copy to inside/f2