--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/test-mq-strip.t Mon Aug 16 10:53:52 2010 +0900
@@ -0,0 +1,382 @@
+ $ echo "[extensions]" >> $HGRCPATH
+ $ echo "mq=" >> $HGRCPATH
+ $ echo "graphlog=" >> $HGRCPATH
+
+ $ restore() {
+ > hg unbundle -q .hg/strip-backup/*
+ > rm .hg/strip-backup/*
+ > }
+ $ teststrip() {
+ > hg up -C $1
+ > echo % before update $1, strip $2
+ > hg parents
+ > hg --traceback strip $2
+ > echo % after update $1, strip $2
+ > hg parents
+ > restore
+ > }
+
+ $ hg init test
+ $ cd test
+
+ $ echo foo > bar
+ $ hg ci -Ama
+ adding bar
+
+ $ echo more >> bar
+ $ hg ci -Amb
+
+ $ echo blah >> bar
+ $ hg ci -Amc
+
+ $ hg up 1
+ 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
+ $ echo blah >> bar
+ $ hg ci -Amd
+ created new head
+
+ $ echo final >> bar
+ $ hg ci -Ame
+
+ $ hg log
+ changeset: 4:443431ffac4f
+ tag: tip
+ user: test
+ date: Thu Jan 01 00:00:00 1970 +0000
+ summary: e
+
+ changeset: 3:65bd5f99a4a3
+ parent: 1:ef3a871183d7
+ user: test
+ date: Thu Jan 01 00:00:00 1970 +0000
+ summary: d
+
+ changeset: 2:264128213d29
+ user: test
+ date: Thu Jan 01 00:00:00 1970 +0000
+ summary: c
+
+ changeset: 1:ef3a871183d7
+ user: test
+ date: Thu Jan 01 00:00:00 1970 +0000
+ summary: b
+
+ changeset: 0:9ab35a2d17cb
+ user: test
+ date: Thu Jan 01 00:00:00 1970 +0000
+ summary: a
+
+
+ $ teststrip 4 4
+ 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
+ % before update 4, strip 4
+ changeset: 4:443431ffac4f
+ tag: tip
+ user: test
+ date: Thu Jan 01 00:00:00 1970 +0000
+ summary: e
+
+ 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
+ saved backup bundle to .*
+ % after update 4, strip 4
+ changeset: 3:65bd5f99a4a3
+ tag: tip
+ parent: 1:ef3a871183d7
+ user: test
+ date: Thu Jan 01 00:00:00 1970 +0000
+ summary: d
+
+ $ teststrip 4 3
+ 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
+ % before update 4, strip 3
+ changeset: 4:443431ffac4f
+ tag: tip
+ user: test
+ date: Thu Jan 01 00:00:00 1970 +0000
+ summary: e
+
+ 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
+ saved backup bundle to .*
+ % after update 4, strip 3
+ changeset: 1:ef3a871183d7
+ user: test
+ date: Thu Jan 01 00:00:00 1970 +0000
+ summary: b
+
+ $ teststrip 1 4
+ 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
+ % before update 1, strip 4
+ changeset: 1:ef3a871183d7
+ user: test
+ date: Thu Jan 01 00:00:00 1970 +0000
+ summary: b
+
+ saved backup bundle to .*
+ % after update 1, strip 4
+ changeset: 1:ef3a871183d7
+ user: test
+ date: Thu Jan 01 00:00:00 1970 +0000
+ summary: b
+
+ $ teststrip 4 2
+ 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
+ % before update 4, strip 2
+ changeset: 4:443431ffac4f
+ tag: tip
+ user: test
+ date: Thu Jan 01 00:00:00 1970 +0000
+ summary: e
+
+ saved backup bundle to .*
+ % after update 4, strip 2
+ changeset: 3:443431ffac4f
+ tag: tip
+ user: test
+ date: Thu Jan 01 00:00:00 1970 +0000
+ summary: e
+
+ $ teststrip 4 1
+ 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
+ % before update 4, strip 1
+ changeset: 4:264128213d29
+ tag: tip
+ parent: 1:ef3a871183d7
+ user: test
+ date: Thu Jan 01 00:00:00 1970 +0000
+ summary: c
+
+ 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
+ saved backup bundle to .*
+ % after update 4, strip 1
+ changeset: 0:9ab35a2d17cb
+ tag: tip
+ user: test
+ date: Thu Jan 01 00:00:00 1970 +0000
+ summary: a
+
+ $ teststrip null 4
+ 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
+ % before update null, strip 4
+ saved backup bundle to .*
+ % after update null, strip 4
+
+ $ hg log
+ changeset: 4:264128213d29
+ tag: tip
+ parent: 1:ef3a871183d7
+ user: test
+ date: Thu Jan 01 00:00:00 1970 +0000
+ summary: c
+
+ changeset: 3:443431ffac4f
+ user: test
+ date: Thu Jan 01 00:00:00 1970 +0000
+ summary: e
+
+ changeset: 2:65bd5f99a4a3
+ user: test
+ date: Thu Jan 01 00:00:00 1970 +0000
+ summary: d
+
+ changeset: 1:ef3a871183d7
+ user: test
+ date: Thu Jan 01 00:00:00 1970 +0000
+ summary: b
+
+ changeset: 0:9ab35a2d17cb
+ user: test
+ date: Thu Jan 01 00:00:00 1970 +0000
+ summary: a
+
+
+ $ hg up -C 2
+ 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
+ $ hg merge 4
+ 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
+ (branch merge, don't forget to commit)
+
+before strip of merge parent
+
+ $ hg parents
+ changeset: 2:65bd5f99a4a3
+ user: test
+ date: Thu Jan 01 00:00:00 1970 +0000
+ summary: d
+
+ changeset: 4:264128213d29
+ tag: tip
+ parent: 1:ef3a871183d7
+ user: test
+ date: Thu Jan 01 00:00:00 1970 +0000
+ summary: c
+
+ $ hg strip 4
+ 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
+ saved backup bundle to .*
+
+after strip of merge parent
+
+ $ hg parents
+ changeset: 1:ef3a871183d7
+ user: test
+ date: Thu Jan 01 00:00:00 1970 +0000
+ summary: b
+
+ $ restore
+
+ $ hg up
+ 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
+ $ hg glog
+ @ changeset: 4:264128213d29
+ | tag: tip
+ | parent: 1:ef3a871183d7
+ | user: test
+ | date: Thu Jan 01 00:00:00 1970 +0000
+ | summary: c
+ |
+ | o changeset: 3:443431ffac4f
+ | | user: test
+ | | date: Thu Jan 01 00:00:00 1970 +0000
+ | | summary: e
+ | |
+ | o changeset: 2:65bd5f99a4a3
+ |/ user: test
+ | date: Thu Jan 01 00:00:00 1970 +0000
+ | summary: d
+ |
+ o changeset: 1:ef3a871183d7
+ | user: test
+ | date: Thu Jan 01 00:00:00 1970 +0000
+ | summary: b
+ |
+ o changeset: 0:9ab35a2d17cb
+ user: test
+ date: Thu Jan 01 00:00:00 1970 +0000
+ summary: a
+
+
+2 is parent of 3, only one strip should happen
+
+ $ hg strip 2 3
+ saved backup bundle to .*
+ $ hg glog
+ @ changeset: 2:264128213d29
+ | tag: tip
+ | user: test
+ | date: Thu Jan 01 00:00:00 1970 +0000
+ | summary: c
+ |
+ o changeset: 1:ef3a871183d7
+ | user: test
+ | date: Thu Jan 01 00:00:00 1970 +0000
+ | summary: b
+ |
+ o changeset: 0:9ab35a2d17cb
+ user: test
+ date: Thu Jan 01 00:00:00 1970 +0000
+ summary: a
+
+ $ restore
+ $ hg glog
+ o changeset: 4:443431ffac4f
+ | tag: tip
+ | user: test
+ | date: Thu Jan 01 00:00:00 1970 +0000
+ | summary: e
+ |
+ o changeset: 3:65bd5f99a4a3
+ | parent: 1:ef3a871183d7
+ | user: test
+ | date: Thu Jan 01 00:00:00 1970 +0000
+ | summary: d
+ |
+ | @ changeset: 2:264128213d29
+ |/ user: test
+ | date: Thu Jan 01 00:00:00 1970 +0000
+ | summary: c
+ |
+ o changeset: 1:ef3a871183d7
+ | user: test
+ | date: Thu Jan 01 00:00:00 1970 +0000
+ | summary: b
+ |
+ o changeset: 0:9ab35a2d17cb
+ user: test
+ date: Thu Jan 01 00:00:00 1970 +0000
+ summary: a
+
+
+2 different branches: 2 strips
+
+ $ hg strip 2 4
+ 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
+ saved backup bundle to .*
+ saved backup bundle to .*
+ $ hg glog
+ @ changeset: 2:65bd5f99a4a3
+ | tag: tip
+ | user: test
+ | date: Thu Jan 01 00:00:00 1970 +0000
+ | summary: d
+ |
+ o changeset: 1:ef3a871183d7
+ | user: test
+ | date: Thu Jan 01 00:00:00 1970 +0000
+ | summary: b
+ |
+ o changeset: 0:9ab35a2d17cb
+ user: test
+ date: Thu Jan 01 00:00:00 1970 +0000
+ summary: a
+
+ $ restore
+
+2 different branches and a common ancestor: 1 strip
+
+ $ hg strip 1 2 4
+ 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
+ saved backup bundle to .*
+ $ restore
+
+
+remove branchy history for qimport tests
+
+ $ hg strip 3
+ saved backup bundle to .*
+
+
+strip of applied mq should cleanup status file
+
+ $ hg up -C 3
+ 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
+ $ echo fooagain >> bar
+ $ hg ci -mf
+ $ hg qimport -r tip:2
+
+applied patches before strip
+
+ $ hg qapplied
+ 2.diff
+ 3.diff
+ 4.diff
+
+stripping revision in queue
+
+ $ hg strip 3
+ 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
+ saved backup bundle to .*
+
+applied patches after stripping rev in queue
+
+ $ hg qapplied
+ 2.diff
+
+stripping ancestor of queue
+
+ $ hg strip 1
+ 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
+ saved backup bundle to .*
+
+applied patches after stripping ancestor of queue
+
+ $ hg qapplied