tests/test-basic.t
author Pierre-Yves David <pierre-yves.david@ens-lyon.org>
Sat, 15 Apr 2017 02:55:18 +0200
changeset 32009 c6cb21ddf74a
parent 31964 ebaada96aec3
child 32448 f94d7e3e46a0
permissions -rw-r--r--
checkheads: upgrade the obsolescence postprocessing logic (issue4354) The previous logic had many shortcoming (eg: looking at the head only, not handling prune, etc...), the new logic use a more robust approach: For each head, we check if after the push all changesets exclusive to this heads will be obsolete. If they are, the branch considered be "replaced". To check if a changeset will be obsolete, we simply checks: * the changeset phase * the existence of a marker relevant to the "pushed set" that affects the changesets.. This fixes two major issues of the previous algorithm: * branch partially rewritten (eg: head but not root) are no longer detected as replaced, * Prune are now properly handled. (This implementation was introduction in the evolve extension, version 6.0.0.) This new algorithm has an extended number of tests, a basic one is provided in this patch. The others will be introduced in their own changeset for clarity. In addition, we stop trying to process heads unknown locally, we do not have enough data to take an informed decision so we should stop pretending we do. This reflect a test that is now update.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
11742
5dc8b3ee407b tests: unify test-basic
Matt Mackall <mpm@selenic.com>
parents: 3736
diff changeset
     1
Create a repository:
5dc8b3ee407b tests: unify test-basic
Matt Mackall <mpm@selenic.com>
parents: 3736
diff changeset
     2
20608
a3ca1d032926 config: make repo optional again
Matt Mackall <mpm@selenic.com>
parents: 17346
diff changeset
     3
  $ hg config
a3ca1d032926 config: make repo optional again
Matt Mackall <mpm@selenic.com>
parents: 17346
diff changeset
     4
  defaults.backout=-d "0 0"
a3ca1d032926 config: make repo optional again
Matt Mackall <mpm@selenic.com>
parents: 17346
diff changeset
     5
  defaults.commit=-d "0 0"
a3ca1d032926 config: make repo optional again
Matt Mackall <mpm@selenic.com>
parents: 17346
diff changeset
     6
  defaults.shelve=--date "0 0"
a3ca1d032926 config: make repo optional again
Matt Mackall <mpm@selenic.com>
parents: 17346
diff changeset
     7
  defaults.tag=-d "0 0"
25290
8f88f768e24c devel: rename 'all' to 'all-warnings' (BC)
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 24751
diff changeset
     8
  devel.all-warnings=true
23388
42ed0780ec4b run-tests: set a default largefiles usercache in the default hgrc file
Matt Harbison <matt_harbison@yahoo.com>
parents: 23053
diff changeset
     9
  largefiles.usercache=$TESTTMP/.cache/largefiles (glob)
20608
a3ca1d032926 config: make repo optional again
Matt Mackall <mpm@selenic.com>
parents: 17346
diff changeset
    10
  ui.slash=True
a3ca1d032926 config: make repo optional again
Matt Mackall <mpm@selenic.com>
parents: 17346
diff changeset
    11
  ui.interactive=False
21918
10abc3a5c6b2 filemerge: use 'basic' as the default of '[ui] mergemarkers' for safety
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 20608
diff changeset
    12
  ui.mergemarkers=detailed
23053
5ba11ab48fcf ui: separate option to show prompt echo, enabled only in tests (issue4417)
Yuya Nishihara <yuya@tcha.org>
parents: 21918
diff changeset
    13
  ui.promptecho=True
31029
161ab32b44a1 runtests: set web.address to localhost
Jun Wu <quark@fb.com>
parents: 31006
diff changeset
    14
  web.address=localhost
31030
09ec648cd2a9 runtests: always set web.ipv6
Jun Wu <quark@fb.com>
parents: 31029
diff changeset
    15
  web\.ipv6=(?:True|False) (re)
13956
ffb5c09ba822 tests: remove redundant mkdir
Martin Geisler <mg@lazybytes.net>
parents: 13568
diff changeset
    16
  $ hg init t
11742
5dc8b3ee407b tests: unify test-basic
Matt Mackall <mpm@selenic.com>
parents: 3736
diff changeset
    17
  $ cd t
5dc8b3ee407b tests: unify test-basic
Matt Mackall <mpm@selenic.com>
parents: 3736
diff changeset
    18
31964
ebaada96aec3 stdio: add Linux-specific tests for error checking
Bryan O'Sullivan <bryano@fb.com>
parents: 31030
diff changeset
    19
Prepare a changeset:
11742
5dc8b3ee407b tests: unify test-basic
Matt Mackall <mpm@selenic.com>
parents: 3736
diff changeset
    20
5dc8b3ee407b tests: unify test-basic
Matt Mackall <mpm@selenic.com>
parents: 3736
diff changeset
    21
  $ echo a > a
5dc8b3ee407b tests: unify test-basic
Matt Mackall <mpm@selenic.com>
parents: 3736
diff changeset
    22
  $ hg add a
31964
ebaada96aec3 stdio: add Linux-specific tests for error checking
Bryan O'Sullivan <bryano@fb.com>
parents: 31030
diff changeset
    23
ebaada96aec3 stdio: add Linux-specific tests for error checking
Bryan O'Sullivan <bryano@fb.com>
parents: 31030
diff changeset
    24
  $ hg status
ebaada96aec3 stdio: add Linux-specific tests for error checking
Bryan O'Sullivan <bryano@fb.com>
parents: 31030
diff changeset
    25
  A a
ebaada96aec3 stdio: add Linux-specific tests for error checking
Bryan O'Sullivan <bryano@fb.com>
parents: 31030
diff changeset
    26
ebaada96aec3 stdio: add Linux-specific tests for error checking
Bryan O'Sullivan <bryano@fb.com>
parents: 31030
diff changeset
    27
Writes to stdio succeed and fail appropriately
ebaada96aec3 stdio: add Linux-specific tests for error checking
Bryan O'Sullivan <bryano@fb.com>
parents: 31030
diff changeset
    28
ebaada96aec3 stdio: add Linux-specific tests for error checking
Bryan O'Sullivan <bryano@fb.com>
parents: 31030
diff changeset
    29
#if devfull
ebaada96aec3 stdio: add Linux-specific tests for error checking
Bryan O'Sullivan <bryano@fb.com>
parents: 31030
diff changeset
    30
  $ hg status 2>/dev/full
ebaada96aec3 stdio: add Linux-specific tests for error checking
Bryan O'Sullivan <bryano@fb.com>
parents: 31030
diff changeset
    31
  A a
ebaada96aec3 stdio: add Linux-specific tests for error checking
Bryan O'Sullivan <bryano@fb.com>
parents: 31030
diff changeset
    32
ebaada96aec3 stdio: add Linux-specific tests for error checking
Bryan O'Sullivan <bryano@fb.com>
parents: 31030
diff changeset
    33
  $ hg status >/dev/full
ebaada96aec3 stdio: add Linux-specific tests for error checking
Bryan O'Sullivan <bryano@fb.com>
parents: 31030
diff changeset
    34
  abort: No space left on device
ebaada96aec3 stdio: add Linux-specific tests for error checking
Bryan O'Sullivan <bryano@fb.com>
parents: 31030
diff changeset
    35
  [255]
ebaada96aec3 stdio: add Linux-specific tests for error checking
Bryan O'Sullivan <bryano@fb.com>
parents: 31030
diff changeset
    36
ebaada96aec3 stdio: add Linux-specific tests for error checking
Bryan O'Sullivan <bryano@fb.com>
parents: 31030
diff changeset
    37
  $ hg status >/dev/full 2>&1
ebaada96aec3 stdio: add Linux-specific tests for error checking
Bryan O'Sullivan <bryano@fb.com>
parents: 31030
diff changeset
    38
  [1]
ebaada96aec3 stdio: add Linux-specific tests for error checking
Bryan O'Sullivan <bryano@fb.com>
parents: 31030
diff changeset
    39
ebaada96aec3 stdio: add Linux-specific tests for error checking
Bryan O'Sullivan <bryano@fb.com>
parents: 31030
diff changeset
    40
  $ hg status ENOENT 2>/dev/full
ebaada96aec3 stdio: add Linux-specific tests for error checking
Bryan O'Sullivan <bryano@fb.com>
parents: 31030
diff changeset
    41
  [1]
ebaada96aec3 stdio: add Linux-specific tests for error checking
Bryan O'Sullivan <bryano@fb.com>
parents: 31030
diff changeset
    42
#endif
ebaada96aec3 stdio: add Linux-specific tests for error checking
Bryan O'Sullivan <bryano@fb.com>
parents: 31030
diff changeset
    43
12156
4c94b6d0fb1c tests: remove unneeded -d flags
Martin Geisler <mg@lazybytes.net>
parents: 11742
diff changeset
    44
  $ hg commit -m test
11742
5dc8b3ee407b tests: unify test-basic
Matt Mackall <mpm@selenic.com>
parents: 3736
diff changeset
    45
5dc8b3ee407b tests: unify test-basic
Matt Mackall <mpm@selenic.com>
parents: 3736
diff changeset
    46
This command is ancient:
331
55f63f3b6a54 Add a simple testing framework
mpm@selenic.com
parents:
diff changeset
    47
11742
5dc8b3ee407b tests: unify test-basic
Matt Mackall <mpm@selenic.com>
parents: 3736
diff changeset
    48
  $ hg history
12156
4c94b6d0fb1c tests: remove unneeded -d flags
Martin Geisler <mg@lazybytes.net>
parents: 11742
diff changeset
    49
  changeset:   0:acb14030fe0a
11742
5dc8b3ee407b tests: unify test-basic
Matt Mackall <mpm@selenic.com>
parents: 3736
diff changeset
    50
  tag:         tip
5dc8b3ee407b tests: unify test-basic
Matt Mackall <mpm@selenic.com>
parents: 3736
diff changeset
    51
  user:        test
12156
4c94b6d0fb1c tests: remove unneeded -d flags
Martin Geisler <mg@lazybytes.net>
parents: 11742
diff changeset
    52
  date:        Thu Jan 01 00:00:00 1970 +0000
11742
5dc8b3ee407b tests: unify test-basic
Matt Mackall <mpm@selenic.com>
parents: 3736
diff changeset
    53
  summary:     test
5dc8b3ee407b tests: unify test-basic
Matt Mackall <mpm@selenic.com>
parents: 3736
diff changeset
    54
  
5dc8b3ee407b tests: unify test-basic
Matt Mackall <mpm@selenic.com>
parents: 3736
diff changeset
    55
13568
0b79cf616e65 commands.update() now works properly with a revision of 0
Mark Drago <markdrago@gmail.com>
parents: 12156
diff changeset
    56
Verify that updating to revision 0 via commands.update() works properly
0b79cf616e65 commands.update() now works properly with a revision of 0
Mark Drago <markdrago@gmail.com>
parents: 12156
diff changeset
    57
0b79cf616e65 commands.update() now works properly with a revision of 0
Mark Drago <markdrago@gmail.com>
parents: 12156
diff changeset
    58
  $ cat <<EOF > update_to_rev0.py
0b79cf616e65 commands.update() now works properly with a revision of 0
Mark Drago <markdrago@gmail.com>
parents: 12156
diff changeset
    59
  > from mercurial import ui, hg, commands
30564
d83ca854fa21 ui: factor out ui.load() to create a ui without loading configs (API)
Yuya Nishihara <yuya@tcha.org>
parents: 30522
diff changeset
    60
  > myui = ui.ui.load()
13568
0b79cf616e65 commands.update() now works properly with a revision of 0
Mark Drago <markdrago@gmail.com>
parents: 12156
diff changeset
    61
  > repo = hg.repository(myui, path='.')
0b79cf616e65 commands.update() now works properly with a revision of 0
Mark Drago <markdrago@gmail.com>
parents: 12156
diff changeset
    62
  > commands.update(myui, repo, rev=0)
0b79cf616e65 commands.update() now works properly with a revision of 0
Mark Drago <markdrago@gmail.com>
parents: 12156
diff changeset
    63
  > EOF
0b79cf616e65 commands.update() now works properly with a revision of 0
Mark Drago <markdrago@gmail.com>
parents: 12156
diff changeset
    64
  $ hg up null
0b79cf616e65 commands.update() now works properly with a revision of 0
Mark Drago <markdrago@gmail.com>
parents: 12156
diff changeset
    65
  0 files updated, 0 files merged, 1 files removed, 0 files unresolved
0b79cf616e65 commands.update() now works properly with a revision of 0
Mark Drago <markdrago@gmail.com>
parents: 12156
diff changeset
    66
  $ python ./update_to_rev0.py
0b79cf616e65 commands.update() now works properly with a revision of 0
Mark Drago <markdrago@gmail.com>
parents: 12156
diff changeset
    67
  1 files updated, 0 files merged, 0 files removed, 0 files unresolved
0b79cf616e65 commands.update() now works properly with a revision of 0
Mark Drago <markdrago@gmail.com>
parents: 12156
diff changeset
    68
  $ hg identify -n
0b79cf616e65 commands.update() now works properly with a revision of 0
Mark Drago <markdrago@gmail.com>
parents: 12156
diff changeset
    69
  0
17346
2944a6d35158 check-code: fix check for trailing whitespace on empty lines
Mads Kiilerich <mads@kiilerich.com>
parents: 16913
diff changeset
    70
13568
0b79cf616e65 commands.update() now works properly with a revision of 0
Mark Drago <markdrago@gmail.com>
parents: 12156
diff changeset
    71
11742
5dc8b3ee407b tests: unify test-basic
Matt Mackall <mpm@selenic.com>
parents: 3736
diff changeset
    72
Poke around at hashes:
5dc8b3ee407b tests: unify test-basic
Matt Mackall <mpm@selenic.com>
parents: 3736
diff changeset
    73
5dc8b3ee407b tests: unify test-basic
Matt Mackall <mpm@selenic.com>
parents: 3736
diff changeset
    74
  $ hg manifest --debug
5dc8b3ee407b tests: unify test-basic
Matt Mackall <mpm@selenic.com>
parents: 3736
diff changeset
    75
  b789fdd96dc2f3bd229c1dd8eedf0fc60e2b68e3 644   a
5dc8b3ee407b tests: unify test-basic
Matt Mackall <mpm@selenic.com>
parents: 3736
diff changeset
    76
5dc8b3ee407b tests: unify test-basic
Matt Mackall <mpm@selenic.com>
parents: 3736
diff changeset
    77
  $ hg cat a
5dc8b3ee407b tests: unify test-basic
Matt Mackall <mpm@selenic.com>
parents: 3736
diff changeset
    78
  a
5dc8b3ee407b tests: unify test-basic
Matt Mackall <mpm@selenic.com>
parents: 3736
diff changeset
    79
5dc8b3ee407b tests: unify test-basic
Matt Mackall <mpm@selenic.com>
parents: 3736
diff changeset
    80
Verify should succeed:
5dc8b3ee407b tests: unify test-basic
Matt Mackall <mpm@selenic.com>
parents: 3736
diff changeset
    81
5dc8b3ee407b tests: unify test-basic
Matt Mackall <mpm@selenic.com>
parents: 3736
diff changeset
    82
  $ hg verify
5dc8b3ee407b tests: unify test-basic
Matt Mackall <mpm@selenic.com>
parents: 3736
diff changeset
    83
  checking changesets
5dc8b3ee407b tests: unify test-basic
Matt Mackall <mpm@selenic.com>
parents: 3736
diff changeset
    84
  checking manifests
5dc8b3ee407b tests: unify test-basic
Matt Mackall <mpm@selenic.com>
parents: 3736
diff changeset
    85
  crosschecking files in changesets and manifests
5dc8b3ee407b tests: unify test-basic
Matt Mackall <mpm@selenic.com>
parents: 3736
diff changeset
    86
  checking files
5dc8b3ee407b tests: unify test-basic
Matt Mackall <mpm@selenic.com>
parents: 3736
diff changeset
    87
  1 files, 1 changesets, 1 total revisions
5dc8b3ee407b tests: unify test-basic
Matt Mackall <mpm@selenic.com>
parents: 3736
diff changeset
    88
5dc8b3ee407b tests: unify test-basic
Matt Mackall <mpm@selenic.com>
parents: 3736
diff changeset
    89
At the end...
16913
f2719b387380 tests: add missing trailing 'cd ..'
Mads Kiilerich <mads@kiilerich.com>
parents: 13956
diff changeset
    90
f2719b387380 tests: add missing trailing 'cd ..'
Mads Kiilerich <mads@kiilerich.com>
parents: 13956
diff changeset
    91
  $ cd ..