tests/test-merge5.t
author Siddharth Agarwal <sid0@fb.com>
Wed, 25 Nov 2015 14:25:33 -0800
changeset 27137 25e4b2f000c5
parent 23026 fe80fdf68ba7
child 28029 72072cfc7e91
permissions -rw-r--r--
merge: move almost all change/delete conflicts to resolve phase (BC) (API) We have finally laid all the groundwork to make this happen. The only change/delete conflicts that haven't been moved are .hgsubstate conflicts. Those are trickier to deal with and well outside the scope of this series. We add comprehensive testing not just for the initial selections but also for re-resolves and all possible dirstate transitions caused by merge tools. That testing managed to shake out several bugs in the way we were handling dirstate transitions. The other test changes are because we now treat change/delete conflicts as proper merges, and increment the 'merged' counter rather than the 'updated' counter. I believe this is the right approach here. For third-party extensions, if they're interacting with filemerge code they might have to deal with an absentfilectx rather than a regular filectx. Still to come: - add a 'leave unresolved' option to merges - change the default for non-interactive change/delete conflicts to be 'leave unresolved' - add debug output to go alongside debug outputs for binary and symlink file merges
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
11978
ef4a1ffbf519 tests: unify test-merge5
Pradeepkumar Gayam <in3xes@gmail.com>
parents: 6350
diff changeset
     1
  $ hg init
ef4a1ffbf519 tests: unify test-merge5
Pradeepkumar Gayam <in3xes@gmail.com>
parents: 6350
diff changeset
     2
  $ echo This is file a1 > a
ef4a1ffbf519 tests: unify test-merge5
Pradeepkumar Gayam <in3xes@gmail.com>
parents: 6350
diff changeset
     3
  $ echo This is file b1 > b
ef4a1ffbf519 tests: unify test-merge5
Pradeepkumar Gayam <in3xes@gmail.com>
parents: 6350
diff changeset
     4
  $ hg add a b
12155
94ad12aa0530 test-merge5: removed unnecessary parts of test
Martin Geisler <mg@lazybytes.net>
parents: 12154
diff changeset
     5
  $ hg commit -m "commit #0"
11978
ef4a1ffbf519 tests: unify test-merge5
Pradeepkumar Gayam <in3xes@gmail.com>
parents: 6350
diff changeset
     6
  $ echo This is file b22 > b
12155
94ad12aa0530 test-merge5: removed unnecessary parts of test
Martin Geisler <mg@lazybytes.net>
parents: 12154
diff changeset
     7
  $ hg commit -m "comment #1"
11978
ef4a1ffbf519 tests: unify test-merge5
Pradeepkumar Gayam <in3xes@gmail.com>
parents: 6350
diff changeset
     8
  $ hg update 0
ef4a1ffbf519 tests: unify test-merge5
Pradeepkumar Gayam <in3xes@gmail.com>
parents: 6350
diff changeset
     9
  1 files updated, 0 files merged, 0 files removed, 0 files unresolved
ef4a1ffbf519 tests: unify test-merge5
Pradeepkumar Gayam <in3xes@gmail.com>
parents: 6350
diff changeset
    10
  $ rm b
12155
94ad12aa0530 test-merge5: removed unnecessary parts of test
Martin Geisler <mg@lazybytes.net>
parents: 12154
diff changeset
    11
  $ hg commit -A -m "comment #2"
11978
ef4a1ffbf519 tests: unify test-merge5
Pradeepkumar Gayam <in3xes@gmail.com>
parents: 6350
diff changeset
    12
  removing b
ef4a1ffbf519 tests: unify test-merge5
Pradeepkumar Gayam <in3xes@gmail.com>
parents: 6350
diff changeset
    13
  created new head
12154
c85e07a2d783 test-merge5: ensure updating to tip across branches is tested
Brodie Rao <brodie@bitheap.org>
parents: 11978
diff changeset
    14
  $ hg update 1
c85e07a2d783 test-merge5: ensure updating to tip across branches is tested
Brodie Rao <brodie@bitheap.org>
parents: 11978
diff changeset
    15
  1 files updated, 0 files merged, 0 files removed, 0 files unresolved
c85e07a2d783 test-merge5: ensure updating to tip across branches is tested
Brodie Rao <brodie@bitheap.org>
parents: 11978
diff changeset
    16
  $ hg update
19798
76df01e56e7f update: improve error message for clean non-linear update
Siddharth Agarwal <sid0@fb.com>
parents: 17849
diff changeset
    17
  abort: not a linear update
76df01e56e7f update: improve error message for clean non-linear update
Siddharth Agarwal <sid0@fb.com>
parents: 17849
diff changeset
    18
  (merge or update --check to force update)
12316
4134686b83e1 tests: add exit codes to unified tests
Matt Mackall <mpm@selenic.com>
parents: 12155
diff changeset
    19
  [255]
17849
6da47b655d97 update: check for missing files with --check (issue3595)
Matt Mackall <mpm@selenic.com>
parents: 14485
diff changeset
    20
  $ rm b
6da47b655d97 update: check for missing files with --check (issue3595)
Matt Mackall <mpm@selenic.com>
parents: 14485
diff changeset
    21
  $ hg update -c
19801
41abe2e3e3b7 update: standardize error message for dirty update --check
Siddharth Agarwal <sid0@fb.com>
parents: 19799
diff changeset
    22
  abort: uncommitted changes
17849
6da47b655d97 update: check for missing files with --check (issue3595)
Matt Mackall <mpm@selenic.com>
parents: 14485
diff changeset
    23
  [255]
6da47b655d97 update: check for missing files with --check (issue3595)
Matt Mackall <mpm@selenic.com>
parents: 14485
diff changeset
    24
  $ hg revert b
12154
c85e07a2d783 test-merge5: ensure updating to tip across branches is tested
Brodie Rao <brodie@bitheap.org>
parents: 11978
diff changeset
    25
  $ hg update -c
c85e07a2d783 test-merge5: ensure updating to tip across branches is tested
Brodie Rao <brodie@bitheap.org>
parents: 11978
diff changeset
    26
  0 files updated, 0 files merged, 1 files removed, 0 files unresolved
11978
ef4a1ffbf519 tests: unify test-merge5
Pradeepkumar Gayam <in3xes@gmail.com>
parents: 6350
diff changeset
    27
  $ mv a c
415
c2b9502a4e96 [PATCH] Don't prompt user for keep-vs-delete when the merge is about to be aborted
mpm@selenic.com
parents:
diff changeset
    28
12155
94ad12aa0530 test-merge5: removed unnecessary parts of test
Martin Geisler <mg@lazybytes.net>
parents: 12154
diff changeset
    29
Should abort:
94ad12aa0530 test-merge5: removed unnecessary parts of test
Martin Geisler <mg@lazybytes.net>
parents: 12154
diff changeset
    30
23026
fe80fdf68ba7 test-merge5: remove obsolete '-y' and its motivating comment
Martin von Zweigbergk <martinvonz@gmail.com>
parents: 19801
diff changeset
    31
  $ hg update 1
19799
ab3e42225dbc update: add error message for dirty non-linear update with no rev
Siddharth Agarwal <sid0@fb.com>
parents: 19798
diff changeset
    32
  abort: uncommitted changes
ab3e42225dbc update: add error message for dirty non-linear update with no rev
Siddharth Agarwal <sid0@fb.com>
parents: 19798
diff changeset
    33
  (commit or update --clean to discard changes)
12316
4134686b83e1 tests: add exit codes to unified tests
Matt Mackall <mpm@selenic.com>
parents: 12155
diff changeset
    34
  [255]
11978
ef4a1ffbf519 tests: unify test-merge5
Pradeepkumar Gayam <in3xes@gmail.com>
parents: 6350
diff changeset
    35
  $ mv c a
12155
94ad12aa0530 test-merge5: removed unnecessary parts of test
Martin Geisler <mg@lazybytes.net>
parents: 12154
diff changeset
    36
94ad12aa0530 test-merge5: removed unnecessary parts of test
Martin Geisler <mg@lazybytes.net>
parents: 12154
diff changeset
    37
Should succeed:
94ad12aa0530 test-merge5: removed unnecessary parts of test
Martin Geisler <mg@lazybytes.net>
parents: 12154
diff changeset
    38
23026
fe80fdf68ba7 test-merge5: remove obsolete '-y' and its motivating comment
Martin von Zweigbergk <martinvonz@gmail.com>
parents: 19801
diff changeset
    39
  $ hg update 1
11978
ef4a1ffbf519 tests: unify test-merge5
Pradeepkumar Gayam <in3xes@gmail.com>
parents: 6350
diff changeset
    40
  1 files updated, 0 files merged, 0 files removed, 0 files unresolved