tests/test-merge10.t
author Georges Racinet <georges.racinet@octobus.net>
Thu, 05 Dec 2019 20:41:23 +0100
changeset 43847 49fa0b31ee1d
parent 41510 faa49a5914bb
permissions -rw-r--r--
cext-revlog: fixed __delitem__ for uninitialized nodetree This is a bug in a code path that's seldom used, because in practice (at least in the whole test suite), calls to `del index[i:j]` currently just don't happen before the nodetree has been initialized. However, in our current work to replace the nodetree by a Rust implementation, this is of course systematic. In `index_slice_del()`, if the slice start is smaller than `self->length`, the whole of `self->added` has to be cleared. Before this change, the clearing was done only by the call to `index_invalidate_added(self, 0)`, that happens only for initialized nodetrees. Hence the removal was effective only from `start` to `self->length`. The consequence is index corruption, with bogus results in subsequent calls, and in particular errors such as `ValueError("parent out of range")`, due to the fact that parents of entries in `self->added` are now just invalid. This is detected by the rebase tests, under conditions that the nodetree of revlog.c is never initialized. The provided specific test is more direct. Differential Revision: https://phab.mercurial-scm.org/D7603
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
11983
27649cf258e3 tests: unify test-merge10
Pradeepkumar Gayam <in3xes@gmail.com>
parents: 8168
diff changeset
     1
Test for changeset 9fe267f77f56ff127cf7e65dc15dd9de71ce8ceb
27649cf258e3 tests: unify test-merge10
Pradeepkumar Gayam <in3xes@gmail.com>
parents: 8168
diff changeset
     2
(merge correctly when all the files in a directory are moved
27649cf258e3 tests: unify test-merge10
Pradeepkumar Gayam <in3xes@gmail.com>
parents: 8168
diff changeset
     3
but then local changes are added in the same directory)
4696
59b8f9361545 tests: add merge test for changeset 9fe267f77f56
Giorgos Keramidas <keramida@ceid.upatras.gr>
parents:
diff changeset
     4
11983
27649cf258e3 tests: unify test-merge10
Pradeepkumar Gayam <in3xes@gmail.com>
parents: 8168
diff changeset
     5
  $ hg init a
27649cf258e3 tests: unify test-merge10
Pradeepkumar Gayam <in3xes@gmail.com>
parents: 8168
diff changeset
     6
  $ cd a
27649cf258e3 tests: unify test-merge10
Pradeepkumar Gayam <in3xes@gmail.com>
parents: 8168
diff changeset
     7
  $ mkdir -p testdir
27649cf258e3 tests: unify test-merge10
Pradeepkumar Gayam <in3xes@gmail.com>
parents: 8168
diff changeset
     8
  $ echo a > testdir/a
27649cf258e3 tests: unify test-merge10
Pradeepkumar Gayam <in3xes@gmail.com>
parents: 8168
diff changeset
     9
  $ hg add testdir/a
12156
4c94b6d0fb1c tests: remove unneeded -d flags
Martin Geisler <mg@lazybytes.net>
parents: 11983
diff changeset
    10
  $ hg commit -m a
11983
27649cf258e3 tests: unify test-merge10
Pradeepkumar Gayam <in3xes@gmail.com>
parents: 8168
diff changeset
    11
  $ cd ..
27649cf258e3 tests: unify test-merge10
Pradeepkumar Gayam <in3xes@gmail.com>
parents: 8168
diff changeset
    12
27649cf258e3 tests: unify test-merge10
Pradeepkumar Gayam <in3xes@gmail.com>
parents: 8168
diff changeset
    13
  $ hg clone a b
27649cf258e3 tests: unify test-merge10
Pradeepkumar Gayam <in3xes@gmail.com>
parents: 8168
diff changeset
    14
  updating to branch default
27649cf258e3 tests: unify test-merge10
Pradeepkumar Gayam <in3xes@gmail.com>
parents: 8168
diff changeset
    15
  1 files updated, 0 files merged, 0 files removed, 0 files unresolved
27649cf258e3 tests: unify test-merge10
Pradeepkumar Gayam <in3xes@gmail.com>
parents: 8168
diff changeset
    16
  $ cd a
27649cf258e3 tests: unify test-merge10
Pradeepkumar Gayam <in3xes@gmail.com>
parents: 8168
diff changeset
    17
  $ echo alpha > testdir/a
12156
4c94b6d0fb1c tests: remove unneeded -d flags
Martin Geisler <mg@lazybytes.net>
parents: 11983
diff changeset
    18
  $ hg commit -m remote-change
11983
27649cf258e3 tests: unify test-merge10
Pradeepkumar Gayam <in3xes@gmail.com>
parents: 8168
diff changeset
    19
  $ cd ..
4696
59b8f9361545 tests: add merge test for changeset 9fe267f77f56
Giorgos Keramidas <keramida@ceid.upatras.gr>
parents:
diff changeset
    20
11983
27649cf258e3 tests: unify test-merge10
Pradeepkumar Gayam <in3xes@gmail.com>
parents: 8168
diff changeset
    21
  $ cd b
27649cf258e3 tests: unify test-merge10
Pradeepkumar Gayam <in3xes@gmail.com>
parents: 8168
diff changeset
    22
  $ mkdir testdir/subdir
27649cf258e3 tests: unify test-merge10
Pradeepkumar Gayam <in3xes@gmail.com>
parents: 8168
diff changeset
    23
  $ hg mv testdir/a testdir/subdir/a
12156
4c94b6d0fb1c tests: remove unneeded -d flags
Martin Geisler <mg@lazybytes.net>
parents: 11983
diff changeset
    24
  $ hg commit -m move
11983
27649cf258e3 tests: unify test-merge10
Pradeepkumar Gayam <in3xes@gmail.com>
parents: 8168
diff changeset
    25
  $ mkdir newdir
27649cf258e3 tests: unify test-merge10
Pradeepkumar Gayam <in3xes@gmail.com>
parents: 8168
diff changeset
    26
  $ echo beta > newdir/beta
27649cf258e3 tests: unify test-merge10
Pradeepkumar Gayam <in3xes@gmail.com>
parents: 8168
diff changeset
    27
  $ hg add newdir/beta
12156
4c94b6d0fb1c tests: remove unneeded -d flags
Martin Geisler <mg@lazybytes.net>
parents: 11983
diff changeset
    28
  $ hg commit -m local-addition
11983
27649cf258e3 tests: unify test-merge10
Pradeepkumar Gayam <in3xes@gmail.com>
parents: 8168
diff changeset
    29
  $ hg pull ../a
27649cf258e3 tests: unify test-merge10
Pradeepkumar Gayam <in3xes@gmail.com>
parents: 8168
diff changeset
    30
  pulling from ../a
27649cf258e3 tests: unify test-merge10
Pradeepkumar Gayam <in3xes@gmail.com>
parents: 8168
diff changeset
    31
  searching for changes
27649cf258e3 tests: unify test-merge10
Pradeepkumar Gayam <in3xes@gmail.com>
parents: 8168
diff changeset
    32
  adding changesets
27649cf258e3 tests: unify test-merge10
Pradeepkumar Gayam <in3xes@gmail.com>
parents: 8168
diff changeset
    33
  adding manifests
27649cf258e3 tests: unify test-merge10
Pradeepkumar Gayam <in3xes@gmail.com>
parents: 8168
diff changeset
    34
  adding file changes
27649cf258e3 tests: unify test-merge10
Pradeepkumar Gayam <in3xes@gmail.com>
parents: 8168
diff changeset
    35
  added 1 changesets with 1 changes to 1 files (+1 heads)
34661
eb586ed5d8ce transaction-summary: show the range of new revisions upon pull/unbundle (BC)
Denis Laxalde <denis.laxalde@logilab.fr>
parents: 16913
diff changeset
    36
  new changesets cc7000b01af9
11983
27649cf258e3 tests: unify test-merge10
Pradeepkumar Gayam <in3xes@gmail.com>
parents: 8168
diff changeset
    37
  (run 'hg heads' to see heads, 'hg merge' to merge)
27649cf258e3 tests: unify test-merge10
Pradeepkumar Gayam <in3xes@gmail.com>
parents: 8168
diff changeset
    38
  $ hg up -C 2
27649cf258e3 tests: unify test-merge10
Pradeepkumar Gayam <in3xes@gmail.com>
parents: 8168
diff changeset
    39
  0 files updated, 0 files merged, 0 files removed, 0 files unresolved
41510
faa49a5914bb merge: respect ui.relative-paths
Martin von Zweigbergk <martinvonz@google.com>
parents: 34661
diff changeset
    40
Abuse this test for also testing that merge respects ui.relative-paths
faa49a5914bb merge: respect ui.relative-paths
Martin von Zweigbergk <martinvonz@google.com>
parents: 34661
diff changeset
    41
  $ hg --cwd testdir merge --config ui.relative-paths=yes
faa49a5914bb merge: respect ui.relative-paths
Martin von Zweigbergk <martinvonz@google.com>
parents: 34661
diff changeset
    42
  merging subdir/a and a to subdir/a
11983
27649cf258e3 tests: unify test-merge10
Pradeepkumar Gayam <in3xes@gmail.com>
parents: 8168
diff changeset
    43
  0 files updated, 1 files merged, 0 files removed, 0 files unresolved
27649cf258e3 tests: unify test-merge10
Pradeepkumar Gayam <in3xes@gmail.com>
parents: 8168
diff changeset
    44
  (branch merge, don't forget to commit)
27649cf258e3 tests: unify test-merge10
Pradeepkumar Gayam <in3xes@gmail.com>
parents: 8168
diff changeset
    45
  $ hg stat
27649cf258e3 tests: unify test-merge10
Pradeepkumar Gayam <in3xes@gmail.com>
parents: 8168
diff changeset
    46
  M testdir/subdir/a
27649cf258e3 tests: unify test-merge10
Pradeepkumar Gayam <in3xes@gmail.com>
parents: 8168
diff changeset
    47
  $ hg diff --nodates
12156
4c94b6d0fb1c tests: remove unneeded -d flags
Martin Geisler <mg@lazybytes.net>
parents: 11983
diff changeset
    48
  diff -r bc21c9773bfa testdir/subdir/a
11983
27649cf258e3 tests: unify test-merge10
Pradeepkumar Gayam <in3xes@gmail.com>
parents: 8168
diff changeset
    49
  --- a/testdir/subdir/a
27649cf258e3 tests: unify test-merge10
Pradeepkumar Gayam <in3xes@gmail.com>
parents: 8168
diff changeset
    50
  +++ b/testdir/subdir/a
27649cf258e3 tests: unify test-merge10
Pradeepkumar Gayam <in3xes@gmail.com>
parents: 8168
diff changeset
    51
  @@ -1,1 +1,1 @@
27649cf258e3 tests: unify test-merge10
Pradeepkumar Gayam <in3xes@gmail.com>
parents: 8168
diff changeset
    52
  -a
27649cf258e3 tests: unify test-merge10
Pradeepkumar Gayam <in3xes@gmail.com>
parents: 8168
diff changeset
    53
  +alpha
16913
f2719b387380 tests: add missing trailing 'cd ..'
Mads Kiilerich <mads@kiilerich.com>
parents: 12156
diff changeset
    54
f2719b387380 tests: add missing trailing 'cd ..'
Mads Kiilerich <mads@kiilerich.com>
parents: 12156
diff changeset
    55
  $ cd ..