tests/test-update-branches.t
branchstable
changeset 16491 bfe89d65d651
parent 14485 610873cf064a
child 17347 2da47de36b6f
--- a/tests/test-update-branches.t	Mon Apr 23 12:09:54 2012 +0200
+++ b/tests/test-update-branches.t	Mon Apr 23 12:12:04 2012 +0200
@@ -15,6 +15,11 @@
   $ hg init
   $ echo foo > foo
   $ echo zero > a
+  $ hg init sub
+  $ echo suba > sub/suba
+  $ hg --cwd sub ci -Am addsuba
+  adding suba
+  $ echo 'sub = sub' > .hgsub
   $ hg ci -qAm0
   $ echo one > a ; hg ci -m1
   $ echo two > a ; hg ci -m2
@@ -29,44 +34,46 @@
 
   $ hg --config 'extensions.graphlog=' \
   >    glog --template '{rev}:{node|short} {parents} {branches}\n'
-  @  5:e1bb631146ca  b1
+  @  5:ff252e8273df  b1
   |
-  o  4:a4fdb3b883c4 0:b608b9236435  b1
+  o  4:d047485b3896 0:60829823a42a  b1
   |
-  | o  3:4b57d2520816 1:44592833ba9f
+  | o  3:6efa171f091b 1:0786582aa4b1
   | |
-  | | o  2:063f31070f65
+  | | o  2:bd10386d478c
   | |/
-  | o  1:44592833ba9f
+  | o  1:0786582aa4b1
   |/
-  o  0:b608b9236435
+  o  0:60829823a42a
   
 
 Test helper functions:
 
   $ revtest () {
   >     msg=$1
-  >     dirtyflag=$2   # 'clean' or 'dirty'
+  >     dirtyflag=$2   # 'clean', 'dirty' or 'dirtysub'
   >     startrev=$3
   >     targetrev=$4
   >     opt=$5
   >     hg up -qC $startrev
   >     test $dirtyflag = dirty && echo dirty > foo
+  >     test $dirtyflag = dirtysub && echo dirty > sub/suba
   >     hg up $opt $targetrev
   >     hg parent --template 'parent={rev}\n'
-  >     hg stat
+  >     hg stat -S
   > }    
 
   $ norevtest () {
   >     msg=$1
-  >     dirtyflag=$2   # 'clean' or 'dirty'
+  >     dirtyflag=$2   # 'clean', 'dirty' or 'dirtysub'
   >     startrev=$3
   >     opt=$4
   >     hg up -qC $startrev
   >     test $dirtyflag = dirty && echo dirty > foo
+  >     test $dirtyflag = dirtysub && echo dirty > sub/suba
   >     hg up $opt
   >     hg parent --template 'parent={rev}\n'
-  >     hg stat
+  >     hg stat -S
   > }    
 
 Test cases are documented in a table in the update function of merge.py.
@@ -99,16 +106,30 @@
   parent=2
   M foo
 
+  $ revtest 'none dirtysub linear' dirtysub 1 2
+  1 files updated, 0 files merged, 0 files removed, 0 files unresolved
+  parent=2
+  M sub/suba
+
   $ revtest 'none dirty same'   dirty 2 3
   abort: crosses branches (merge branches or use --clean to discard changes)
   parent=2
   M foo
 
+  $ revtest 'none dirtysub same'   dirtysub 2 3
+  abort: crosses branches (merge branches or use --clean to discard changes)
+  parent=2
+  M sub/suba
+
   $ revtest 'none dirty cross'  dirty 3 4
   abort: crosses branches (merge branches or use --clean to discard changes)
   parent=3
   M foo
 
+  $ revtest 'none dirtysub cross'  dirtysub 3 4
+  abort: crosses branches (merge branches or use --clean to discard changes)
+  parent=3
+  M sub/suba
 
   $ revtest '-C dirty linear'   dirty 1 2 -C
   2 files updated, 0 files merged, 0 files removed, 0 files unresolved
@@ -119,6 +140,11 @@
   parent=1
   M foo
 
+  $ revtest '-c dirtysub linear'   dirtysub 1 2 -c
+  abort: uncommitted local changes
+  parent=1
+  M sub/suba
+
   $ norevtest '-c clean same'   clean 2 -c
   1 files updated, 0 files merged, 0 files removed, 0 files unresolved
   parent=3