tests/test-obsolete-changeset-exchange.t
branchstable
changeset 17248 6ffb35b2284c
child 17296 a1f8869f2eee
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/test-obsolete-changeset-exchange.t	Wed Jul 25 19:34:31 2012 +0200
@@ -0,0 +1,48 @@
+Test changesets filtering during exchanges (some tests are still in
+test-obsolete.t)
+
+Push does corrupt remote
+------------------------
+
+Create a DAG where a changeset reuses a revision from a file first used in an
+extinct changeset.
+
+  $ hg init local
+  $ cd local
+  $ echo 'base' > base
+  $ hg commit -Am base
+  adding base
+  $ echo 'A' > A
+  $ hg commit -Am A
+  adding A
+  $ hg up 0
+  0 files updated, 0 files merged, 1 files removed, 0 files unresolved
+  $ hg revert -ar 1
+  adding A
+  $ hg commit -Am "A'"
+  created new head
+  $ hg log -G --template='{desc} {node}'
+  @  A' f89bcc95eba5174b1ccc3e33a82e84c96e8338ee
+  |
+  | o  A 9d73aac1b2ed7d53835eaeec212ed41ea47da53a
+  |/
+  o  base d20a80d4def38df63a4b330b7fb688f3d4cae1e3
+  
+  $ hg debugobsolete 9d73aac1b2ed7d53835eaeec212ed41ea47da53a f89bcc95eba5174b1ccc3e33a82e84c96e8338ee
+
+Push it. The bundle should not refer to the extinct changeset.
+
+  $ hg init ../other
+  $ hg push ../other
+  pushing to ../other
+  searching for changes
+  adding changesets
+  adding manifests
+  adding file changes
+  added 2 changesets with 2 changes to 2 files
+  $ hg -R ../other verify
+  checking changesets
+  checking manifests
+  crosschecking files in changesets and manifests
+  checking files
+  2 files, 2 changesets, 2 total revisions