tests/test-merge-remove.t
author Matt Harbison <matt_harbison@yahoo.com>
Wed, 25 Mar 2015 21:54:47 -0400
changeset 24463 06d199e66bbc
parent 23840 ddc17eaf0f1b
child 27137 25e4b2f000c5
permissions -rw-r--r--
revert: handle subrepos missing in the given --rev The list of subrepos to revert is currently based on the given --rev, so there is currently no way for this to fail. Using the --rev context is wrong though, because if the subrepo doesn't exist in --rev, it is skipped, so it won't be changed. This change makes it so that the revert aborts, which is what happens if a plain file is reverted to -1. Finding matches based on --rev is also inconsistent with evaluating files against the working directory (5b85a5bc5bbb). This change is made now, so as to not cause breakage when the context is switched in an upcoming patch.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
12260
0a63e91c519d tests: unify test-merge-remove
Adrian Buehlmann <adrian@cadifra.com>
parents: 6299
diff changeset
     1
  $ hg init
0a63e91c519d tests: unify test-merge-remove
Adrian Buehlmann <adrian@cadifra.com>
parents: 6299
diff changeset
     2
0a63e91c519d tests: unify test-merge-remove
Adrian Buehlmann <adrian@cadifra.com>
parents: 6299
diff changeset
     3
  $ echo foo > foo
0a63e91c519d tests: unify test-merge-remove
Adrian Buehlmann <adrian@cadifra.com>
parents: 6299
diff changeset
     4
  $ echo bar > bar
0a63e91c519d tests: unify test-merge-remove
Adrian Buehlmann <adrian@cadifra.com>
parents: 6299
diff changeset
     5
  $ hg ci -qAm 'add foo bar'
6297
fed1a9c22076 dirstate.remove: during merges, remember the previous file state
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff changeset
     6
12260
0a63e91c519d tests: unify test-merge-remove
Adrian Buehlmann <adrian@cadifra.com>
parents: 6299
diff changeset
     7
  $ echo foo2 >> foo
0a63e91c519d tests: unify test-merge-remove
Adrian Buehlmann <adrian@cadifra.com>
parents: 6299
diff changeset
     8
  $ echo bleh > bar
0a63e91c519d tests: unify test-merge-remove
Adrian Buehlmann <adrian@cadifra.com>
parents: 6299
diff changeset
     9
  $ hg ci -m 'change foo bar'
6297
fed1a9c22076 dirstate.remove: during merges, remember the previous file state
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff changeset
    10
12260
0a63e91c519d tests: unify test-merge-remove
Adrian Buehlmann <adrian@cadifra.com>
parents: 6299
diff changeset
    11
  $ hg up -qC 0
0a63e91c519d tests: unify test-merge-remove
Adrian Buehlmann <adrian@cadifra.com>
parents: 6299
diff changeset
    12
  $ hg mv foo foo1
0a63e91c519d tests: unify test-merge-remove
Adrian Buehlmann <adrian@cadifra.com>
parents: 6299
diff changeset
    13
  $ echo foo1 > foo1
0a63e91c519d tests: unify test-merge-remove
Adrian Buehlmann <adrian@cadifra.com>
parents: 6299
diff changeset
    14
  $ hg cat foo >> foo1
0a63e91c519d tests: unify test-merge-remove
Adrian Buehlmann <adrian@cadifra.com>
parents: 6299
diff changeset
    15
  $ hg ci -m 'mv foo foo1'
0a63e91c519d tests: unify test-merge-remove
Adrian Buehlmann <adrian@cadifra.com>
parents: 6299
diff changeset
    16
  created new head
6297
fed1a9c22076 dirstate.remove: during merges, remember the previous file state
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff changeset
    17
12260
0a63e91c519d tests: unify test-merge-remove
Adrian Buehlmann <adrian@cadifra.com>
parents: 6299
diff changeset
    18
  $ hg merge
0a63e91c519d tests: unify test-merge-remove
Adrian Buehlmann <adrian@cadifra.com>
parents: 6299
diff changeset
    19
  merging foo1 and foo to foo1
0a63e91c519d tests: unify test-merge-remove
Adrian Buehlmann <adrian@cadifra.com>
parents: 6299
diff changeset
    20
  1 files updated, 1 files merged, 0 files removed, 0 files unresolved
0a63e91c519d tests: unify test-merge-remove
Adrian Buehlmann <adrian@cadifra.com>
parents: 6299
diff changeset
    21
  (branch merge, don't forget to commit)
0a63e91c519d tests: unify test-merge-remove
Adrian Buehlmann <adrian@cadifra.com>
parents: 6299
diff changeset
    22
0a63e91c519d tests: unify test-merge-remove
Adrian Buehlmann <adrian@cadifra.com>
parents: 6299
diff changeset
    23
  $ hg debugstate --nodates
23840
ddc17eaf0f1b debugdirstate: don't hide date field with --nodate, just show 'set'/'unset'
Mads Kiilerich <madski@unity3d.com>
parents: 22897
diff changeset
    24
  m   0         -2 unset               bar
ddc17eaf0f1b debugdirstate: don't hide date field with --nodate, just show 'set'/'unset'
Mads Kiilerich <madski@unity3d.com>
parents: 22897
diff changeset
    25
  m   0         -2 unset               foo1
12260
0a63e91c519d tests: unify test-merge-remove
Adrian Buehlmann <adrian@cadifra.com>
parents: 6299
diff changeset
    26
  copy: foo -> foo1
6297
fed1a9c22076 dirstate.remove: during merges, remember the previous file state
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff changeset
    27
12260
0a63e91c519d tests: unify test-merge-remove
Adrian Buehlmann <adrian@cadifra.com>
parents: 6299
diff changeset
    28
  $ hg st -q
0a63e91c519d tests: unify test-merge-remove
Adrian Buehlmann <adrian@cadifra.com>
parents: 6299
diff changeset
    29
  M bar
0a63e91c519d tests: unify test-merge-remove
Adrian Buehlmann <adrian@cadifra.com>
parents: 6299
diff changeset
    30
  M foo1
0a63e91c519d tests: unify test-merge-remove
Adrian Buehlmann <adrian@cadifra.com>
parents: 6299
diff changeset
    31
0a63e91c519d tests: unify test-merge-remove
Adrian Buehlmann <adrian@cadifra.com>
parents: 6299
diff changeset
    32
0a63e91c519d tests: unify test-merge-remove
Adrian Buehlmann <adrian@cadifra.com>
parents: 6299
diff changeset
    33
Removing foo1 and bar:
0a63e91c519d tests: unify test-merge-remove
Adrian Buehlmann <adrian@cadifra.com>
parents: 6299
diff changeset
    34
0a63e91c519d tests: unify test-merge-remove
Adrian Buehlmann <adrian@cadifra.com>
parents: 6299
diff changeset
    35
  $ cp foo1 F
0a63e91c519d tests: unify test-merge-remove
Adrian Buehlmann <adrian@cadifra.com>
parents: 6299
diff changeset
    36
  $ cp bar B
0a63e91c519d tests: unify test-merge-remove
Adrian Buehlmann <adrian@cadifra.com>
parents: 6299
diff changeset
    37
  $ hg rm -f foo1 bar
0a63e91c519d tests: unify test-merge-remove
Adrian Buehlmann <adrian@cadifra.com>
parents: 6299
diff changeset
    38
0a63e91c519d tests: unify test-merge-remove
Adrian Buehlmann <adrian@cadifra.com>
parents: 6299
diff changeset
    39
  $ hg debugstate --nodates
23840
ddc17eaf0f1b debugdirstate: don't hide date field with --nodate, just show 'set'/'unset'
Mads Kiilerich <madski@unity3d.com>
parents: 22897
diff changeset
    40
  r   0         -1 set                 bar
ddc17eaf0f1b debugdirstate: don't hide date field with --nodate, just show 'set'/'unset'
Mads Kiilerich <madski@unity3d.com>
parents: 22897
diff changeset
    41
  r   0         -1 set                 foo1
12260
0a63e91c519d tests: unify test-merge-remove
Adrian Buehlmann <adrian@cadifra.com>
parents: 6299
diff changeset
    42
  copy: foo -> foo1
6297
fed1a9c22076 dirstate.remove: during merges, remember the previous file state
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff changeset
    43
12260
0a63e91c519d tests: unify test-merge-remove
Adrian Buehlmann <adrian@cadifra.com>
parents: 6299
diff changeset
    44
  $ hg st -qC
0a63e91c519d tests: unify test-merge-remove
Adrian Buehlmann <adrian@cadifra.com>
parents: 6299
diff changeset
    45
  R bar
0a63e91c519d tests: unify test-merge-remove
Adrian Buehlmann <adrian@cadifra.com>
parents: 6299
diff changeset
    46
  R foo1
0a63e91c519d tests: unify test-merge-remove
Adrian Buehlmann <adrian@cadifra.com>
parents: 6299
diff changeset
    47
0a63e91c519d tests: unify test-merge-remove
Adrian Buehlmann <adrian@cadifra.com>
parents: 6299
diff changeset
    48
0a63e91c519d tests: unify test-merge-remove
Adrian Buehlmann <adrian@cadifra.com>
parents: 6299
diff changeset
    49
Re-adding foo1 and bar:
6297
fed1a9c22076 dirstate.remove: during merges, remember the previous file state
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
diff changeset
    50
12260
0a63e91c519d tests: unify test-merge-remove
Adrian Buehlmann <adrian@cadifra.com>
parents: 6299
diff changeset
    51
  $ cp F foo1
0a63e91c519d tests: unify test-merge-remove
Adrian Buehlmann <adrian@cadifra.com>
parents: 6299
diff changeset
    52
  $ cp B bar
0a63e91c519d tests: unify test-merge-remove
Adrian Buehlmann <adrian@cadifra.com>
parents: 6299
diff changeset
    53
  $ hg add -v foo1 bar
0a63e91c519d tests: unify test-merge-remove
Adrian Buehlmann <adrian@cadifra.com>
parents: 6299
diff changeset
    54
  adding bar
0a63e91c519d tests: unify test-merge-remove
Adrian Buehlmann <adrian@cadifra.com>
parents: 6299
diff changeset
    55
  adding foo1
0a63e91c519d tests: unify test-merge-remove
Adrian Buehlmann <adrian@cadifra.com>
parents: 6299
diff changeset
    56
0a63e91c519d tests: unify test-merge-remove
Adrian Buehlmann <adrian@cadifra.com>
parents: 6299
diff changeset
    57
  $ hg debugstate --nodates
23840
ddc17eaf0f1b debugdirstate: don't hide date field with --nodate, just show 'set'/'unset'
Mads Kiilerich <madski@unity3d.com>
parents: 22897
diff changeset
    58
  n   0         -2 unset               bar
ddc17eaf0f1b debugdirstate: don't hide date field with --nodate, just show 'set'/'unset'
Mads Kiilerich <madski@unity3d.com>
parents: 22897
diff changeset
    59
  n   0         -2 unset               foo1
12260
0a63e91c519d tests: unify test-merge-remove
Adrian Buehlmann <adrian@cadifra.com>
parents: 6299
diff changeset
    60
  copy: foo -> foo1
6298
53cbb33e1269 normallookup: during merges, restore the state saved by remove
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 6297
diff changeset
    61
12260
0a63e91c519d tests: unify test-merge-remove
Adrian Buehlmann <adrian@cadifra.com>
parents: 6299
diff changeset
    62
  $ hg st -qC
0a63e91c519d tests: unify test-merge-remove
Adrian Buehlmann <adrian@cadifra.com>
parents: 6299
diff changeset
    63
  M bar
0a63e91c519d tests: unify test-merge-remove
Adrian Buehlmann <adrian@cadifra.com>
parents: 6299
diff changeset
    64
  M foo1
0a63e91c519d tests: unify test-merge-remove
Adrian Buehlmann <adrian@cadifra.com>
parents: 6299
diff changeset
    65
    foo
0a63e91c519d tests: unify test-merge-remove
Adrian Buehlmann <adrian@cadifra.com>
parents: 6299
diff changeset
    66
0a63e91c519d tests: unify test-merge-remove
Adrian Buehlmann <adrian@cadifra.com>
parents: 6299
diff changeset
    67
0a63e91c519d tests: unify test-merge-remove
Adrian Buehlmann <adrian@cadifra.com>
parents: 6299
diff changeset
    68
Reverting foo1 and bar:
6299
653ddd1d7cd7 revert: update state of files in the "checkout" list
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 6298
diff changeset
    69
12260
0a63e91c519d tests: unify test-merge-remove
Adrian Buehlmann <adrian@cadifra.com>
parents: 6299
diff changeset
    70
  $ hg revert -vr . foo1 bar
0a63e91c519d tests: unify test-merge-remove
Adrian Buehlmann <adrian@cadifra.com>
parents: 6299
diff changeset
    71
  saving current version of bar as bar.orig
0a63e91c519d tests: unify test-merge-remove
Adrian Buehlmann <adrian@cadifra.com>
parents: 6299
diff changeset
    72
  reverting bar
0a63e91c519d tests: unify test-merge-remove
Adrian Buehlmann <adrian@cadifra.com>
parents: 6299
diff changeset
    73
  saving current version of foo1 as foo1.orig
0a63e91c519d tests: unify test-merge-remove
Adrian Buehlmann <adrian@cadifra.com>
parents: 6299
diff changeset
    74
  reverting foo1
6299
653ddd1d7cd7 revert: update state of files in the "checkout" list
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 6298
diff changeset
    75
12260
0a63e91c519d tests: unify test-merge-remove
Adrian Buehlmann <adrian@cadifra.com>
parents: 6299
diff changeset
    76
  $ hg debugstate --nodates
23840
ddc17eaf0f1b debugdirstate: don't hide date field with --nodate, just show 'set'/'unset'
Mads Kiilerich <madski@unity3d.com>
parents: 22897
diff changeset
    77
  n   0         -2 unset               bar
ddc17eaf0f1b debugdirstate: don't hide date field with --nodate, just show 'set'/'unset'
Mads Kiilerich <madski@unity3d.com>
parents: 22897
diff changeset
    78
  n   0         -2 unset               foo1
12260
0a63e91c519d tests: unify test-merge-remove
Adrian Buehlmann <adrian@cadifra.com>
parents: 6299
diff changeset
    79
  copy: foo -> foo1
0a63e91c519d tests: unify test-merge-remove
Adrian Buehlmann <adrian@cadifra.com>
parents: 6299
diff changeset
    80
0a63e91c519d tests: unify test-merge-remove
Adrian Buehlmann <adrian@cadifra.com>
parents: 6299
diff changeset
    81
  $ hg st -qC
0a63e91c519d tests: unify test-merge-remove
Adrian Buehlmann <adrian@cadifra.com>
parents: 6299
diff changeset
    82
  M bar
0a63e91c519d tests: unify test-merge-remove
Adrian Buehlmann <adrian@cadifra.com>
parents: 6299
diff changeset
    83
  M foo1
0a63e91c519d tests: unify test-merge-remove
Adrian Buehlmann <adrian@cadifra.com>
parents: 6299
diff changeset
    84
    foo
0a63e91c519d tests: unify test-merge-remove
Adrian Buehlmann <adrian@cadifra.com>
parents: 6299
diff changeset
    85
0a63e91c519d tests: unify test-merge-remove
Adrian Buehlmann <adrian@cadifra.com>
parents: 6299
diff changeset
    86
  $ hg diff
0a63e91c519d tests: unify test-merge-remove
Adrian Buehlmann <adrian@cadifra.com>
parents: 6299
diff changeset
    87
20415
e4d7cbc94219 merge: don't overwrite file untracked after remove, abort with 'untracked files'
Mads Kiilerich <madski@unity3d.com>
parents: 12260
diff changeset
    88
Merge should not overwrite local file that is untracked after remove
e4d7cbc94219 merge: don't overwrite file untracked after remove, abort with 'untracked files'
Mads Kiilerich <madski@unity3d.com>
parents: 12260
diff changeset
    89
e4d7cbc94219 merge: don't overwrite file untracked after remove, abort with 'untracked files'
Mads Kiilerich <madski@unity3d.com>
parents: 12260
diff changeset
    90
  $ rm *
e4d7cbc94219 merge: don't overwrite file untracked after remove, abort with 'untracked files'
Mads Kiilerich <madski@unity3d.com>
parents: 12260
diff changeset
    91
  $ hg up -qC
e4d7cbc94219 merge: don't overwrite file untracked after remove, abort with 'untracked files'
Mads Kiilerich <madski@unity3d.com>
parents: 12260
diff changeset
    92
  $ hg rm bar
e4d7cbc94219 merge: don't overwrite file untracked after remove, abort with 'untracked files'
Mads Kiilerich <madski@unity3d.com>
parents: 12260
diff changeset
    93
  $ hg ci -m 'remove bar'
e4d7cbc94219 merge: don't overwrite file untracked after remove, abort with 'untracked files'
Mads Kiilerich <madski@unity3d.com>
parents: 12260
diff changeset
    94
  $ echo 'memories of buried pirate treasure' > bar
e4d7cbc94219 merge: don't overwrite file untracked after remove, abort with 'untracked files'
Mads Kiilerich <madski@unity3d.com>
parents: 12260
diff changeset
    95
  $ hg merge
e4d7cbc94219 merge: don't overwrite file untracked after remove, abort with 'untracked files'
Mads Kiilerich <madski@unity3d.com>
parents: 12260
diff changeset
    96
  bar: untracked file differs
e4d7cbc94219 merge: don't overwrite file untracked after remove, abort with 'untracked files'
Mads Kiilerich <madski@unity3d.com>
parents: 12260
diff changeset
    97
  abort: untracked files in working directory differ from files in requested revision
e4d7cbc94219 merge: don't overwrite file untracked after remove, abort with 'untracked files'
Mads Kiilerich <madski@unity3d.com>
parents: 12260
diff changeset
    98
  [255]
e4d7cbc94219 merge: don't overwrite file untracked after remove, abort with 'untracked files'
Mads Kiilerich <madski@unity3d.com>
parents: 12260
diff changeset
    99
  $ cat bar
e4d7cbc94219 merge: don't overwrite file untracked after remove, abort with 'untracked files'
Mads Kiilerich <madski@unity3d.com>
parents: 12260
diff changeset
   100
  memories of buried pirate treasure
e4d7cbc94219 merge: don't overwrite file untracked after remove, abort with 'untracked files'
Mads Kiilerich <madski@unity3d.com>
parents: 12260
diff changeset
   101
e4d7cbc94219 merge: don't overwrite file untracked after remove, abort with 'untracked files'
Mads Kiilerich <madski@unity3d.com>
parents: 12260
diff changeset
   102
Those who use force will lose
e4d7cbc94219 merge: don't overwrite file untracked after remove, abort with 'untracked files'
Mads Kiilerich <madski@unity3d.com>
parents: 12260
diff changeset
   103
e4d7cbc94219 merge: don't overwrite file untracked after remove, abort with 'untracked files'
Mads Kiilerich <madski@unity3d.com>
parents: 12260
diff changeset
   104
  $ hg merge -f
e4d7cbc94219 merge: don't overwrite file untracked after remove, abort with 'untracked files'
Mads Kiilerich <madski@unity3d.com>
parents: 12260
diff changeset
   105
  remote changed bar which local deleted
e4d7cbc94219 merge: don't overwrite file untracked after remove, abort with 'untracked files'
Mads Kiilerich <madski@unity3d.com>
parents: 12260
diff changeset
   106
  use (c)hanged version or leave (d)eleted? c
e4d7cbc94219 merge: don't overwrite file untracked after remove, abort with 'untracked files'
Mads Kiilerich <madski@unity3d.com>
parents: 12260
diff changeset
   107
  merging foo1 and foo to foo1
e4d7cbc94219 merge: don't overwrite file untracked after remove, abort with 'untracked files'
Mads Kiilerich <madski@unity3d.com>
parents: 12260
diff changeset
   108
  1 files updated, 1 files merged, 0 files removed, 0 files unresolved
e4d7cbc94219 merge: don't overwrite file untracked after remove, abort with 'untracked files'
Mads Kiilerich <madski@unity3d.com>
parents: 12260
diff changeset
   109
  (branch merge, don't forget to commit)
e4d7cbc94219 merge: don't overwrite file untracked after remove, abort with 'untracked files'
Mads Kiilerich <madski@unity3d.com>
parents: 12260
diff changeset
   110
  $ cat bar
e4d7cbc94219 merge: don't overwrite file untracked after remove, abort with 'untracked files'
Mads Kiilerich <madski@unity3d.com>
parents: 12260
diff changeset
   111
  bleh
e4d7cbc94219 merge: don't overwrite file untracked after remove, abort with 'untracked files'
Mads Kiilerich <madski@unity3d.com>
parents: 12260
diff changeset
   112
  $ hg st
e4d7cbc94219 merge: don't overwrite file untracked after remove, abort with 'untracked files'
Mads Kiilerich <madski@unity3d.com>
parents: 12260
diff changeset
   113
  M bar
e4d7cbc94219 merge: don't overwrite file untracked after remove, abort with 'untracked files'
Mads Kiilerich <madski@unity3d.com>
parents: 12260
diff changeset
   114
  M foo1