tests/test-clone-pull-corruption.t
author Sushil khanchi <sushilkhanchi97@gmail.com>
Sun, 03 Mar 2019 20:16:22 +0530
changeset 41982 f8c5225b9054
parent 39489 f1186c292d03
child 49825 2f2682f40ea0
permissions -rw-r--r--
patch: include flag-only file changes in "special" when filtering (issue5864) This patch fix the issue5864 (or maybe issue5865 too) which occurs during split (or I should say at the time of filtering the hunks in interactive mode) where user hits a not ending loop of "no changes to record". And it's not only the case for split it will happen in every interactive case for e.g. `hg commit -i` or `hg uncommit -i` After looking into code I found that when filtering we have some notation called "special" for the file headers which doesn't contain any hunk and just contain the header (for e.g. newly added empty file or deleted file) where the user cannot change the content of operation. And I think we can put this "flag-only" file change in that same bucket of "special". But I doubt a bit about the case when a file have flag change and atleast one hunk then user won't be able to separate the flag change from hunks. Changed test file reflect the fixed behaviour. Differential Revision: https://phab.mercurial-scm.org/D6058
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
34661
eb586ed5d8ce transaction-summary: show the range of new revisions upon pull/unbundle (BC)
Denis Laxalde <denis.laxalde@logilab.fr>
parents: 24838
diff changeset
    40
  new changesets 52998019f625
12412
2dbb9e5e3454 tests: unify test-clone-pull-corruption
Matt Mackall <mpm@selenic.com>
parents: 1785
diff changeset
    41
  (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
    42
12412
2dbb9e5e3454 tests: unify test-clone-pull-corruption
Matt Mackall <mpm@selenic.com>
parents: 1785
diff changeset
    43
see what happened
1785
81ca1a9bd061 Added test cases for repo corruption fixed in 2e0a288ca93e (issue132)
Thomas Arendsen Hein <thomas@intevation.de>
parents:
diff changeset
    44
12412
2dbb9e5e3454 tests: unify test-clone-pull-corruption
Matt Mackall <mpm@selenic.com>
parents: 1785
diff changeset
    45
  $ wait
2dbb9e5e3454 tests: unify test-clone-pull-corruption
Matt Mackall <mpm@selenic.com>
parents: 1785
diff changeset
    46
  $ hg verify
2dbb9e5e3454 tests: unify test-clone-pull-corruption
Matt Mackall <mpm@selenic.com>
parents: 1785
diff changeset
    47
  checking changesets
2dbb9e5e3454 tests: unify test-clone-pull-corruption
Matt Mackall <mpm@selenic.com>
parents: 1785
diff changeset
    48
  checking manifests
2dbb9e5e3454 tests: unify test-clone-pull-corruption
Matt Mackall <mpm@selenic.com>
parents: 1785
diff changeset
    49
  crosschecking files in changesets and manifests
2dbb9e5e3454 tests: unify test-clone-pull-corruption
Matt Mackall <mpm@selenic.com>
parents: 1785
diff changeset
    50
  checking files
39489
f1186c292d03 verify: make output less confusing (issue5924)
Meirambek Omyrzak <meirambek77@gmail.com>
parents: 34661
diff changeset
    51
  checked 2 changesets with 2 changes to 1 files
16913
f2719b387380 tests: add missing trailing 'cd ..'
Mads Kiilerich <mads@kiilerich.com>
parents: 15445
diff changeset
    52
f2719b387380 tests: add missing trailing 'cd ..'
Mads Kiilerich <mads@kiilerich.com>
parents: 15445
diff changeset
    53
  $ cd ..