tests/test-clone-pull-corruption.t
author Martin von Zweigbergk <martinvonz@google.com>
Tue, 19 Jan 2016 15:32:32 -0800
branchstable
changeset 27929 3b2ac2115464
parent 24838 b2c1ff96c1e1
child 34661 eb586ed5d8ce
permissions -rw-r--r--
changegroup: introduce safeversion() In a few places (at least repair.py and shelve.py), we want to find the best changegroup version that we can assume users of the repo will understand. For example, we choose version 01 by default, but if it's a generaldelta repo, we expect clients to support version 02 anyway, so we choose that for new bundles (for e.g. "hg strip"). Let's create a helper for this functionality in changegroup, so we can reuse it elsewhere later.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
12412
2dbb9e5e3454 tests: unify test-clone-pull-corruption
Matt Mackall <mpm@selenic.com>
parents: 1785
diff changeset
     1
Corrupt an hg repo with a pull started during an aborted commit
2dbb9e5e3454 tests: unify test-clone-pull-corruption
Matt Mackall <mpm@selenic.com>
parents: 1785
diff changeset
     2
Create two repos, so that one of them can pull from the other one.
1785
81ca1a9bd061 Added test cases for repo corruption fixed in 2e0a288ca93e (issue132)
Thomas Arendsen Hein <thomas@intevation.de>
parents:
diff changeset
     3
12412
2dbb9e5e3454 tests: unify test-clone-pull-corruption
Matt Mackall <mpm@selenic.com>
parents: 1785
diff changeset
     4
  $ hg init source
2dbb9e5e3454 tests: unify test-clone-pull-corruption
Matt Mackall <mpm@selenic.com>
parents: 1785
diff changeset
     5
  $ cd source
2dbb9e5e3454 tests: unify test-clone-pull-corruption
Matt Mackall <mpm@selenic.com>
parents: 1785
diff changeset
     6
  $ touch foo
2dbb9e5e3454 tests: unify test-clone-pull-corruption
Matt Mackall <mpm@selenic.com>
parents: 1785
diff changeset
     7
  $ hg add foo
2dbb9e5e3454 tests: unify test-clone-pull-corruption
Matt Mackall <mpm@selenic.com>
parents: 1785
diff changeset
     8
  $ hg ci -m 'add foo'
2dbb9e5e3454 tests: unify test-clone-pull-corruption
Matt Mackall <mpm@selenic.com>
parents: 1785
diff changeset
     9
  $ hg clone . ../corrupted
2dbb9e5e3454 tests: unify test-clone-pull-corruption
Matt Mackall <mpm@selenic.com>
parents: 1785
diff changeset
    10
  updating to branch default
2dbb9e5e3454 tests: unify test-clone-pull-corruption
Matt Mackall <mpm@selenic.com>
parents: 1785
diff changeset
    11
  1 files updated, 0 files merged, 0 files removed, 0 files unresolved
2dbb9e5e3454 tests: unify test-clone-pull-corruption
Matt Mackall <mpm@selenic.com>
parents: 1785
diff changeset
    12
  $ echo >> foo
2dbb9e5e3454 tests: unify test-clone-pull-corruption
Matt Mackall <mpm@selenic.com>
parents: 1785
diff changeset
    13
  $ hg ci -m 'change foo'
2dbb9e5e3454 tests: unify test-clone-pull-corruption
Matt Mackall <mpm@selenic.com>
parents: 1785
diff changeset
    14
2dbb9e5e3454 tests: unify test-clone-pull-corruption
Matt Mackall <mpm@selenic.com>
parents: 1785
diff changeset
    15
Add a hook to wait 5 seconds and then abort the commit
2dbb9e5e3454 tests: unify test-clone-pull-corruption
Matt Mackall <mpm@selenic.com>
parents: 1785
diff changeset
    16
2dbb9e5e3454 tests: unify test-clone-pull-corruption
Matt Mackall <mpm@selenic.com>
parents: 1785
diff changeset
    17
  $ cd ../corrupted
16962
d2fe9aaedcaf test-clone-pull-corruption: adapt for Windows
Adrian Buehlmann <adrian@cadifra.com>
parents: 16913
diff changeset
    18
  $ echo "[hooks]" >> .hg/hgrc
24838
b2c1ff96c1e1 tests: use double quote to quote arguments in hook for portability
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 16962
diff changeset
    19
  $ echo 'pretxncommit = sh -c "sleep 5; exit 1"' >> .hg/hgrc
12412
2dbb9e5e3454 tests: unify test-clone-pull-corruption
Matt Mackall <mpm@selenic.com>
parents: 1785
diff changeset
    20
2dbb9e5e3454 tests: unify test-clone-pull-corruption
Matt Mackall <mpm@selenic.com>
parents: 1785
diff changeset
    21
start a commit...
1785
81ca1a9bd061 Added test cases for repo corruption fixed in 2e0a288ca93e (issue132)
Thomas Arendsen Hein <thomas@intevation.de>
parents:
diff changeset
    22
12412
2dbb9e5e3454 tests: unify test-clone-pull-corruption
Matt Mackall <mpm@selenic.com>
parents: 1785
diff changeset
    23
  $ touch bar
2dbb9e5e3454 tests: unify test-clone-pull-corruption
Matt Mackall <mpm@selenic.com>
parents: 1785
diff changeset
    24
  $ hg add bar
2dbb9e5e3454 tests: unify test-clone-pull-corruption
Matt Mackall <mpm@selenic.com>
parents: 1785
diff changeset
    25
  $ hg ci -m 'add bar' &
2dbb9e5e3454 tests: unify test-clone-pull-corruption
Matt Mackall <mpm@selenic.com>
parents: 1785
diff changeset
    26
2dbb9e5e3454 tests: unify test-clone-pull-corruption
Matt Mackall <mpm@selenic.com>
parents: 1785
diff changeset
    27
... and start a pull while the commit is still running
1785
81ca1a9bd061 Added test cases for repo corruption fixed in 2e0a288ca93e (issue132)
Thomas Arendsen Hein <thomas@intevation.de>
parents:
diff changeset
    28
12412
2dbb9e5e3454 tests: unify test-clone-pull-corruption
Matt Mackall <mpm@selenic.com>
parents: 1785
diff changeset
    29
  $ sleep 1
2dbb9e5e3454 tests: unify test-clone-pull-corruption
Matt Mackall <mpm@selenic.com>
parents: 1785
diff changeset
    30
  $ hg pull ../source 2>/dev/null
2dbb9e5e3454 tests: unify test-clone-pull-corruption
Matt Mackall <mpm@selenic.com>
parents: 1785
diff changeset
    31
  pulling from ../source
2dbb9e5e3454 tests: unify test-clone-pull-corruption
Matt Mackall <mpm@selenic.com>
parents: 1785
diff changeset
    32
  transaction abort!
2dbb9e5e3454 tests: unify test-clone-pull-corruption
Matt Mackall <mpm@selenic.com>
parents: 1785
diff changeset
    33
  rollback completed
2dbb9e5e3454 tests: unify test-clone-pull-corruption
Matt Mackall <mpm@selenic.com>
parents: 1785
diff changeset
    34
  abort: pretxncommit hook exited with status 1
2dbb9e5e3454 tests: unify test-clone-pull-corruption
Matt Mackall <mpm@selenic.com>
parents: 1785
diff changeset
    35
  searching for changes
2dbb9e5e3454 tests: unify test-clone-pull-corruption
Matt Mackall <mpm@selenic.com>
parents: 1785
diff changeset
    36
  adding changesets
2dbb9e5e3454 tests: unify test-clone-pull-corruption
Matt Mackall <mpm@selenic.com>
parents: 1785
diff changeset
    37
  adding manifests
2dbb9e5e3454 tests: unify test-clone-pull-corruption
Matt Mackall <mpm@selenic.com>
parents: 1785
diff changeset
    38
  adding file changes
2dbb9e5e3454 tests: unify test-clone-pull-corruption
Matt Mackall <mpm@selenic.com>
parents: 1785
diff changeset
    39
  added 1 changesets with 1 changes to 1 files
2dbb9e5e3454 tests: unify test-clone-pull-corruption
Matt Mackall <mpm@selenic.com>
parents: 1785
diff changeset
    40
  (run 'hg update' to get a working copy)
1785
81ca1a9bd061 Added test cases for repo corruption fixed in 2e0a288ca93e (issue132)
Thomas Arendsen Hein <thomas@intevation.de>
parents:
diff changeset
    41
12412
2dbb9e5e3454 tests: unify test-clone-pull-corruption
Matt Mackall <mpm@selenic.com>
parents: 1785
diff changeset
    42
see what happened
1785
81ca1a9bd061 Added test cases for repo corruption fixed in 2e0a288ca93e (issue132)
Thomas Arendsen Hein <thomas@intevation.de>
parents:
diff changeset
    43
12412
2dbb9e5e3454 tests: unify test-clone-pull-corruption
Matt Mackall <mpm@selenic.com>
parents: 1785
diff changeset
    44
  $ wait
2dbb9e5e3454 tests: unify test-clone-pull-corruption
Matt Mackall <mpm@selenic.com>
parents: 1785
diff changeset
    45
  $ hg verify
2dbb9e5e3454 tests: unify test-clone-pull-corruption
Matt Mackall <mpm@selenic.com>
parents: 1785
diff changeset
    46
  checking changesets
2dbb9e5e3454 tests: unify test-clone-pull-corruption
Matt Mackall <mpm@selenic.com>
parents: 1785
diff changeset
    47
  checking manifests
2dbb9e5e3454 tests: unify test-clone-pull-corruption
Matt Mackall <mpm@selenic.com>
parents: 1785
diff changeset
    48
  crosschecking files in changesets and manifests
2dbb9e5e3454 tests: unify test-clone-pull-corruption
Matt Mackall <mpm@selenic.com>
parents: 1785
diff changeset
    49
  checking files
2dbb9e5e3454 tests: unify test-clone-pull-corruption
Matt Mackall <mpm@selenic.com>
parents: 1785
diff changeset
    50
  1 files, 2 changesets, 2 total revisions
16913
f2719b387380 tests: add missing trailing 'cd ..'
Mads Kiilerich <mads@kiilerich.com>
parents: 15445
diff changeset
    51
f2719b387380 tests: add missing trailing 'cd ..'
Mads Kiilerich <mads@kiilerich.com>
parents: 15445
diff changeset
    52
  $ cd ..