tests/test-copies-chain-merge.t
author Raphaël Gomès <rgomes@octobus.net>
Thu, 04 Mar 2021 09:55:06 +0100
changeset 46719 7d9d9265d40f
parent 46718 fd55a9eb1507
child 46795 6b52cffd8d0a
permissions -rw-r--r--
format: remove sidedata format variant This format variant can only exist when also using revlog v2, so it's useless now. Differential Revision: https://phab.mercurial-scm.org/D10113
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
46657
dde86beca388 copies: tests and fix parallel computation of changed file information
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46649
diff changeset
     1
#testcases filelog compatibility changeset sidedata upgraded upgraded-parallel
44858
45f3f35cefe7 copies: fix the changeset based algorithm regarding merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44688
diff changeset
     2
44327
f9dfb56ed6e8 copies: add a new test dedicated to testing chain of changeset with merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
     3
=====================================================
f9dfb56ed6e8 copies: add a new test dedicated to testing chain of changeset with merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
     4
Test Copy tracing for chain of copies involving merge
f9dfb56ed6e8 copies: add a new test dedicated to testing chain of changeset with merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
     5
=====================================================
f9dfb56ed6e8 copies: add a new test dedicated to testing chain of changeset with merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
     6
f9dfb56ed6e8 copies: add a new test dedicated to testing chain of changeset with merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
     7
This test files covers copies/rename case for a chains of commit where merges
f9dfb56ed6e8 copies: add a new test dedicated to testing chain of changeset with merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
     8
are involved. It cheks we do not have unwanted update of behavior and that the
f9dfb56ed6e8 copies: add a new test dedicated to testing chain of changeset with merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
     9
different options to retrieve copies behave correctly.
f9dfb56ed6e8 copies: add a new test dedicated to testing chain of changeset with merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    10
44858
45f3f35cefe7 copies: fix the changeset based algorithm regarding merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44688
diff changeset
    11
44327
f9dfb56ed6e8 copies: add a new test dedicated to testing chain of changeset with merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    12
Setup
f9dfb56ed6e8 copies: add a new test dedicated to testing chain of changeset with merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    13
=====
f9dfb56ed6e8 copies: add a new test dedicated to testing chain of changeset with merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    14
f9dfb56ed6e8 copies: add a new test dedicated to testing chain of changeset with merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    15
use git diff to see rename
f9dfb56ed6e8 copies: add a new test dedicated to testing chain of changeset with merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    16
46596
9cd4f58467af test-copies: filter out the linkrev part of `debugindex`
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46595
diff changeset
    17
  $ cat << EOF >> ./no-linkrev
9cd4f58467af test-copies: filter out the linkrev part of `debugindex`
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46595
diff changeset
    18
  > #!$PYTHON
9cd4f58467af test-copies: filter out the linkrev part of `debugindex`
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46595
diff changeset
    19
  > # filter out linkrev part of the debugindex command
9cd4f58467af test-copies: filter out the linkrev part of `debugindex`
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46595
diff changeset
    20
  > import sys
9cd4f58467af test-copies: filter out the linkrev part of `debugindex`
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46595
diff changeset
    21
  > for line in sys.stdin:
9cd4f58467af test-copies: filter out the linkrev part of `debugindex`
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46595
diff changeset
    22
  >     if " linkrev " in line:
9cd4f58467af test-copies: filter out the linkrev part of `debugindex`
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46595
diff changeset
    23
  >         print(line.rstrip())
9cd4f58467af test-copies: filter out the linkrev part of `debugindex`
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46595
diff changeset
    24
  >     else:
9cd4f58467af test-copies: filter out the linkrev part of `debugindex`
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46595
diff changeset
    25
  >         l = "%s       *%s" % (line[:6], line[14:].rstrip())
9cd4f58467af test-copies: filter out the linkrev part of `debugindex`
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46595
diff changeset
    26
  >         print(l)
9cd4f58467af test-copies: filter out the linkrev part of `debugindex`
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46595
diff changeset
    27
  > EOF
9cd4f58467af test-copies: filter out the linkrev part of `debugindex`
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46595
diff changeset
    28
  $ chmod +x no-linkrev
9cd4f58467af test-copies: filter out the linkrev part of `debugindex`
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46595
diff changeset
    29
44327
f9dfb56ed6e8 copies: add a new test dedicated to testing chain of changeset with merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    30
  $ cat << EOF >> $HGRCPATH
f9dfb56ed6e8 copies: add a new test dedicated to testing chain of changeset with merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    31
  > [diff]
f9dfb56ed6e8 copies: add a new test dedicated to testing chain of changeset with merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    32
  > git=yes
45788
ed84a4d48910 config: add a new [command-templates] section for templates defined by hg
Martin von Zweigbergk <martinvonz@google.com>
parents: 45735
diff changeset
    33
  > [command-templates]
46594
74e2256a56b8 test-copies: remove revision number from log
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46593
diff changeset
    34
  > log={desc}\n
44327
f9dfb56ed6e8 copies: add a new test dedicated to testing chain of changeset with merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    35
  > EOF
f9dfb56ed6e8 copies: add a new test dedicated to testing chain of changeset with merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    36
44858
45f3f35cefe7 copies: fix the changeset based algorithm regarding merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44688
diff changeset
    37
#if compatibility
45f3f35cefe7 copies: fix the changeset based algorithm regarding merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44688
diff changeset
    38
  $ cat >> $HGRCPATH << EOF
45f3f35cefe7 copies: fix the changeset based algorithm regarding merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44688
diff changeset
    39
  > [experimental]
45f3f35cefe7 copies: fix the changeset based algorithm regarding merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44688
diff changeset
    40
  > copies.read-from = compatibility
45f3f35cefe7 copies: fix the changeset based algorithm regarding merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44688
diff changeset
    41
  > EOF
45f3f35cefe7 copies: fix the changeset based algorithm regarding merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44688
diff changeset
    42
#endif
45f3f35cefe7 copies: fix the changeset based algorithm regarding merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44688
diff changeset
    43
45704
5e72827dae1e tests: run test-copies-chain-merge.t also with copies in changesets
Martin von Zweigbergk <martinvonz@google.com>
parents: 45702
diff changeset
    44
#if changeset
5e72827dae1e tests: run test-copies-chain-merge.t also with copies in changesets
Martin von Zweigbergk <martinvonz@google.com>
parents: 45702
diff changeset
    45
  $ cat >> $HGRCPATH << EOF
5e72827dae1e tests: run test-copies-chain-merge.t also with copies in changesets
Martin von Zweigbergk <martinvonz@google.com>
parents: 45702
diff changeset
    46
  > [experimental]
5e72827dae1e tests: run test-copies-chain-merge.t also with copies in changesets
Martin von Zweigbergk <martinvonz@google.com>
parents: 45702
diff changeset
    47
  > copies.read-from = changeset-only
5e72827dae1e tests: run test-copies-chain-merge.t also with copies in changesets
Martin von Zweigbergk <martinvonz@google.com>
parents: 45702
diff changeset
    48
  > copies.write-to = changeset-only
5e72827dae1e tests: run test-copies-chain-merge.t also with copies in changesets
Martin von Zweigbergk <martinvonz@google.com>
parents: 45702
diff changeset
    49
  > EOF
5e72827dae1e tests: run test-copies-chain-merge.t also with copies in changesets
Martin von Zweigbergk <martinvonz@google.com>
parents: 45702
diff changeset
    50
#endif
5e72827dae1e tests: run test-copies-chain-merge.t also with copies in changesets
Martin von Zweigbergk <martinvonz@google.com>
parents: 45702
diff changeset
    51
44858
45f3f35cefe7 copies: fix the changeset based algorithm regarding merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44688
diff changeset
    52
#if sidedata
45f3f35cefe7 copies: fix the changeset based algorithm regarding merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44688
diff changeset
    53
  $ cat >> $HGRCPATH << EOF
45f3f35cefe7 copies: fix the changeset based algorithm regarding merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44688
diff changeset
    54
  > [format]
45f3f35cefe7 copies: fix the changeset based algorithm regarding merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44688
diff changeset
    55
  > exp-use-side-data = yes
45f3f35cefe7 copies: fix the changeset based algorithm regarding merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44688
diff changeset
    56
  > exp-use-copies-side-data-changeset = yes
45f3f35cefe7 copies: fix the changeset based algorithm regarding merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44688
diff changeset
    57
  > EOF
45f3f35cefe7 copies: fix the changeset based algorithm regarding merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44688
diff changeset
    58
#endif
45f3f35cefe7 copies: fix the changeset based algorithm regarding merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44688
diff changeset
    59
45f3f35cefe7 copies: fix the changeset based algorithm regarding merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44688
diff changeset
    60
46578
d46885119f90 test-copies: don't use empty file for "same content" cases
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46577
diff changeset
    61
  $ cat > same-content.txt << EOF
d46885119f90 test-copies: don't use empty file for "same content" cases
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46577
diff changeset
    62
  > Here is some content that will be the same accros multiple file.
d46885119f90 test-copies: don't use empty file for "same content" cases
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46577
diff changeset
    63
  > 
d46885119f90 test-copies: don't use empty file for "same content" cases
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46577
diff changeset
    64
  > This is done on purpose so that we end up in some merge situation, were the
d46885119f90 test-copies: don't use empty file for "same content" cases
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46577
diff changeset
    65
  > resulting content is the same as in the parent(s), but a new filenodes still
d46885119f90 test-copies: don't use empty file for "same content" cases
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46577
diff changeset
    66
  > need to be created to record some file history information (especially
d46885119f90 test-copies: don't use empty file for "same content" cases
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46577
diff changeset
    67
  > about copies).
d46885119f90 test-copies: don't use empty file for "same content" cases
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46577
diff changeset
    68
  > EOF
d46885119f90 test-copies: don't use empty file for "same content" cases
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46577
diff changeset
    69
44327
f9dfb56ed6e8 copies: add a new test dedicated to testing chain of changeset with merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    70
  $ hg init repo-chain
f9dfb56ed6e8 copies: add a new test dedicated to testing chain of changeset with merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    71
  $ cd repo-chain
f9dfb56ed6e8 copies: add a new test dedicated to testing chain of changeset with merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    72
f9dfb56ed6e8 copies: add a new test dedicated to testing chain of changeset with merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    73
Add some linear rename initialy
f9dfb56ed6e8 copies: add a new test dedicated to testing chain of changeset with merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    74
46578
d46885119f90 test-copies: don't use empty file for "same content" cases
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46577
diff changeset
    75
  $ cp ../same-content.txt a
d46885119f90 test-copies: don't use empty file for "same content" cases
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46577
diff changeset
    76
  $ cp ../same-content.txt b
d46885119f90 test-copies: don't use empty file for "same content" cases
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46577
diff changeset
    77
  $ cp ../same-content.txt h
46599
46205a478a08 test-copies: add 3 new files with their own content
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46598
diff changeset
    78
  $ echo "original content for P" > p
46205a478a08 test-copies: add 3 new files with their own content
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46598
diff changeset
    79
  $ echo "original content for Q" > q
46205a478a08 test-copies: add 3 new files with their own content
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46598
diff changeset
    80
  $ echo "original content for R" > r
46649
d7d64b8c8229 tests: correct a commit description in test-copies-chain-merge.t
Martin von Zweigbergk <martinvonz@google.com>
parents: 46607
diff changeset
    81
  $ hg ci -Am 'i-0 initial commit: a b h p q r'
44327
f9dfb56ed6e8 copies: add a new test dedicated to testing chain of changeset with merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    82
  adding a
f9dfb56ed6e8 copies: add a new test dedicated to testing chain of changeset with merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    83
  adding b
44475
902b559202a6 copies-tests: add a `h` to the root commit (for chain merge tests)
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44474
diff changeset
    84
  adding h
46599
46205a478a08 test-copies: add 3 new files with their own content
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46598
diff changeset
    85
  adding p
46205a478a08 test-copies: add 3 new files with their own content
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46598
diff changeset
    86
  adding q
46205a478a08 test-copies: add 3 new files with their own content
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46598
diff changeset
    87
  adding r
44327
f9dfb56ed6e8 copies: add a new test dedicated to testing chain of changeset with merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    88
  $ hg mv a c
46600
0ebfd02dafd5 test-copies: move the new files in the `i` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46599
diff changeset
    89
  $ hg mv p s
0ebfd02dafd5 test-copies: move the new files in the `i` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46599
diff changeset
    90
  $ hg ci -Am 'i-1: a -move-> c, p -move-> s'
44327
f9dfb56ed6e8 copies: add a new test dedicated to testing chain of changeset with merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    91
  $ hg mv c d
46600
0ebfd02dafd5 test-copies: move the new files in the `i` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46599
diff changeset
    92
  $ hg mv s t
0ebfd02dafd5 test-copies: move the new files in the `i` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46599
diff changeset
    93
  $ hg ci -Am 'i-2: c -move-> d, s -move-> t'
44327
f9dfb56ed6e8 copies: add a new test dedicated to testing chain of changeset with merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    94
  $ hg log -G
46600
0ebfd02dafd5 test-copies: move the new files in the `i` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46599
diff changeset
    95
  @  i-2: c -move-> d, s -move-> t
44327
f9dfb56ed6e8 copies: add a new test dedicated to testing chain of changeset with merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    96
  |
46600
0ebfd02dafd5 test-copies: move the new files in the `i` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46599
diff changeset
    97
  o  i-1: a -move-> c, p -move-> s
44327
f9dfb56ed6e8 copies: add a new test dedicated to testing chain of changeset with merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
    98
  |
46649
d7d64b8c8229 tests: correct a commit description in test-copies-chain-merge.t
Martin von Zweigbergk <martinvonz@google.com>
parents: 46607
diff changeset
    99
  o  i-0 initial commit: a b h p q r
44327
f9dfb56ed6e8 copies: add a new test dedicated to testing chain of changeset with merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   100
  
f9dfb56ed6e8 copies: add a new test dedicated to testing chain of changeset with merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   101
44471
68e14fecd82a copies-tests: swap two branch description
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44464
diff changeset
   102
And having another branch with renames on the other side
44327
f9dfb56ed6e8 copies: add a new test dedicated to testing chain of changeset with merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   103
f9dfb56ed6e8 copies: add a new test dedicated to testing chain of changeset with merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   104
  $ hg mv d e
f9dfb56ed6e8 copies: add a new test dedicated to testing chain of changeset with merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   105
  $ hg ci -Am 'a-1: d -move-> e'
f9dfb56ed6e8 copies: add a new test dedicated to testing chain of changeset with merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   106
  $ hg mv e f
f9dfb56ed6e8 copies: add a new test dedicated to testing chain of changeset with merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   107
  $ hg ci -Am 'a-2: e -move-> f'
f9dfb56ed6e8 copies: add a new test dedicated to testing chain of changeset with merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   108
  $ hg log -G --rev '::.'
46594
74e2256a56b8 test-copies: remove revision number from log
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46593
diff changeset
   109
  @  a-2: e -move-> f
44327
f9dfb56ed6e8 copies: add a new test dedicated to testing chain of changeset with merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   110
  |
46594
74e2256a56b8 test-copies: remove revision number from log
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46593
diff changeset
   111
  o  a-1: d -move-> e
44327
f9dfb56ed6e8 copies: add a new test dedicated to testing chain of changeset with merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   112
  |
46600
0ebfd02dafd5 test-copies: move the new files in the `i` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46599
diff changeset
   113
  o  i-2: c -move-> d, s -move-> t
44327
f9dfb56ed6e8 copies: add a new test dedicated to testing chain of changeset with merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   114
  |
46600
0ebfd02dafd5 test-copies: move the new files in the `i` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46599
diff changeset
   115
  o  i-1: a -move-> c, p -move-> s
44327
f9dfb56ed6e8 copies: add a new test dedicated to testing chain of changeset with merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   116
  |
46649
d7d64b8c8229 tests: correct a commit description in test-copies-chain-merge.t
Martin von Zweigbergk <martinvonz@google.com>
parents: 46607
diff changeset
   117
  o  i-0 initial commit: a b h p q r
44327
f9dfb56ed6e8 copies: add a new test dedicated to testing chain of changeset with merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   118
  
f9dfb56ed6e8 copies: add a new test dedicated to testing chain of changeset with merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   119
44471
68e14fecd82a copies-tests: swap two branch description
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44464
diff changeset
   120
Have a branching with nothing on one side
44327
f9dfb56ed6e8 copies: add a new test dedicated to testing chain of changeset with merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   121
f9dfb56ed6e8 copies: add a new test dedicated to testing chain of changeset with merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   122
  $ hg up 'desc("i-2")'
f9dfb56ed6e8 copies: add a new test dedicated to testing chain of changeset with merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   123
  1 files updated, 0 files merged, 1 files removed, 0 files unresolved
f9dfb56ed6e8 copies: add a new test dedicated to testing chain of changeset with merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   124
  $ echo foo > b
f9dfb56ed6e8 copies: add a new test dedicated to testing chain of changeset with merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   125
  $ hg ci -m 'b-1: b update'
f9dfb56ed6e8 copies: add a new test dedicated to testing chain of changeset with merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   126
  created new head
f9dfb56ed6e8 copies: add a new test dedicated to testing chain of changeset with merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   127
  $ hg log -G --rev '::.'
46594
74e2256a56b8 test-copies: remove revision number from log
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46593
diff changeset
   128
  @  b-1: b update
44327
f9dfb56ed6e8 copies: add a new test dedicated to testing chain of changeset with merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   129
  |
46600
0ebfd02dafd5 test-copies: move the new files in the `i` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46599
diff changeset
   130
  o  i-2: c -move-> d, s -move-> t
44327
f9dfb56ed6e8 copies: add a new test dedicated to testing chain of changeset with merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   131
  |
46600
0ebfd02dafd5 test-copies: move the new files in the `i` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46599
diff changeset
   132
  o  i-1: a -move-> c, p -move-> s
44327
f9dfb56ed6e8 copies: add a new test dedicated to testing chain of changeset with merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   133
  |
46649
d7d64b8c8229 tests: correct a commit description in test-copies-chain-merge.t
Martin von Zweigbergk <martinvonz@google.com>
parents: 46607
diff changeset
   134
  o  i-0 initial commit: a b h p q r
44327
f9dfb56ed6e8 copies: add a new test dedicated to testing chain of changeset with merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   135
  
f9dfb56ed6e8 copies: add a new test dedicated to testing chain of changeset with merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   136
44678
4e2845d9452d tests: collect all branch creation in one place in test-copies-chain-merge.t
Martin von Zweigbergk <martinvonz@google.com>
parents: 44664
diff changeset
   137
Create a branch that delete a file previous renamed
4e2845d9452d tests: collect all branch creation in one place in test-copies-chain-merge.t
Martin von Zweigbergk <martinvonz@google.com>
parents: 44664
diff changeset
   138
4e2845d9452d tests: collect all branch creation in one place in test-copies-chain-merge.t
Martin von Zweigbergk <martinvonz@google.com>
parents: 44664
diff changeset
   139
  $ hg up 'desc("i-2")'
4e2845d9452d tests: collect all branch creation in one place in test-copies-chain-merge.t
Martin von Zweigbergk <martinvonz@google.com>
parents: 44664
diff changeset
   140
  1 files updated, 0 files merged, 0 files removed, 0 files unresolved
4e2845d9452d tests: collect all branch creation in one place in test-copies-chain-merge.t
Martin von Zweigbergk <martinvonz@google.com>
parents: 44664
diff changeset
   141
  $ hg rm d
4e2845d9452d tests: collect all branch creation in one place in test-copies-chain-merge.t
Martin von Zweigbergk <martinvonz@google.com>
parents: 44664
diff changeset
   142
  $ hg ci -m 'c-1 delete d'
4e2845d9452d tests: collect all branch creation in one place in test-copies-chain-merge.t
Martin von Zweigbergk <martinvonz@google.com>
parents: 44664
diff changeset
   143
  created new head
4e2845d9452d tests: collect all branch creation in one place in test-copies-chain-merge.t
Martin von Zweigbergk <martinvonz@google.com>
parents: 44664
diff changeset
   144
  $ hg log -G --rev '::.'
46594
74e2256a56b8 test-copies: remove revision number from log
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46593
diff changeset
   145
  @  c-1 delete d
44678
4e2845d9452d tests: collect all branch creation in one place in test-copies-chain-merge.t
Martin von Zweigbergk <martinvonz@google.com>
parents: 44664
diff changeset
   146
  |
46600
0ebfd02dafd5 test-copies: move the new files in the `i` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46599
diff changeset
   147
  o  i-2: c -move-> d, s -move-> t
44678
4e2845d9452d tests: collect all branch creation in one place in test-copies-chain-merge.t
Martin von Zweigbergk <martinvonz@google.com>
parents: 44664
diff changeset
   148
  |
46600
0ebfd02dafd5 test-copies: move the new files in the `i` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46599
diff changeset
   149
  o  i-1: a -move-> c, p -move-> s
44678
4e2845d9452d tests: collect all branch creation in one place in test-copies-chain-merge.t
Martin von Zweigbergk <martinvonz@google.com>
parents: 44664
diff changeset
   150
  |
46649
d7d64b8c8229 tests: correct a commit description in test-copies-chain-merge.t
Martin von Zweigbergk <martinvonz@google.com>
parents: 46607
diff changeset
   151
  o  i-0 initial commit: a b h p q r
44678
4e2845d9452d tests: collect all branch creation in one place in test-copies-chain-merge.t
Martin von Zweigbergk <martinvonz@google.com>
parents: 44664
diff changeset
   152
  
4e2845d9452d tests: collect all branch creation in one place in test-copies-chain-merge.t
Martin von Zweigbergk <martinvonz@google.com>
parents: 44664
diff changeset
   153
4e2845d9452d tests: collect all branch creation in one place in test-copies-chain-merge.t
Martin von Zweigbergk <martinvonz@google.com>
parents: 44664
diff changeset
   154
Create a branch that delete a file previous renamed and recreate it
4e2845d9452d tests: collect all branch creation in one place in test-copies-chain-merge.t
Martin von Zweigbergk <martinvonz@google.com>
parents: 44664
diff changeset
   155
4e2845d9452d tests: collect all branch creation in one place in test-copies-chain-merge.t
Martin von Zweigbergk <martinvonz@google.com>
parents: 44664
diff changeset
   156
  $ hg up 'desc("i-2")'
4e2845d9452d tests: collect all branch creation in one place in test-copies-chain-merge.t
Martin von Zweigbergk <martinvonz@google.com>
parents: 44664
diff changeset
   157
  1 files updated, 0 files merged, 0 files removed, 0 files unresolved
4e2845d9452d tests: collect all branch creation in one place in test-copies-chain-merge.t
Martin von Zweigbergk <martinvonz@google.com>
parents: 44664
diff changeset
   158
  $ hg rm d
4e2845d9452d tests: collect all branch creation in one place in test-copies-chain-merge.t
Martin von Zweigbergk <martinvonz@google.com>
parents: 44664
diff changeset
   159
  $ hg ci -m 'd-1 delete d'
4e2845d9452d tests: collect all branch creation in one place in test-copies-chain-merge.t
Martin von Zweigbergk <martinvonz@google.com>
parents: 44664
diff changeset
   160
  created new head
4e2845d9452d tests: collect all branch creation in one place in test-copies-chain-merge.t
Martin von Zweigbergk <martinvonz@google.com>
parents: 44664
diff changeset
   161
  $ echo bar > d
4e2845d9452d tests: collect all branch creation in one place in test-copies-chain-merge.t
Martin von Zweigbergk <martinvonz@google.com>
parents: 44664
diff changeset
   162
  $ hg add d
4e2845d9452d tests: collect all branch creation in one place in test-copies-chain-merge.t
Martin von Zweigbergk <martinvonz@google.com>
parents: 44664
diff changeset
   163
  $ hg ci -m 'd-2 re-add d'
4e2845d9452d tests: collect all branch creation in one place in test-copies-chain-merge.t
Martin von Zweigbergk <martinvonz@google.com>
parents: 44664
diff changeset
   164
  $ hg log -G --rev '::.'
46594
74e2256a56b8 test-copies: remove revision number from log
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46593
diff changeset
   165
  @  d-2 re-add d
44678
4e2845d9452d tests: collect all branch creation in one place in test-copies-chain-merge.t
Martin von Zweigbergk <martinvonz@google.com>
parents: 44664
diff changeset
   166
  |
46594
74e2256a56b8 test-copies: remove revision number from log
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46593
diff changeset
   167
  o  d-1 delete d
44678
4e2845d9452d tests: collect all branch creation in one place in test-copies-chain-merge.t
Martin von Zweigbergk <martinvonz@google.com>
parents: 44664
diff changeset
   168
  |
46600
0ebfd02dafd5 test-copies: move the new files in the `i` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46599
diff changeset
   169
  o  i-2: c -move-> d, s -move-> t
44678
4e2845d9452d tests: collect all branch creation in one place in test-copies-chain-merge.t
Martin von Zweigbergk <martinvonz@google.com>
parents: 44664
diff changeset
   170
  |
46600
0ebfd02dafd5 test-copies: move the new files in the `i` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46599
diff changeset
   171
  o  i-1: a -move-> c, p -move-> s
44678
4e2845d9452d tests: collect all branch creation in one place in test-copies-chain-merge.t
Martin von Zweigbergk <martinvonz@google.com>
parents: 44664
diff changeset
   172
  |
46649
d7d64b8c8229 tests: correct a commit description in test-copies-chain-merge.t
Martin von Zweigbergk <martinvonz@google.com>
parents: 46607
diff changeset
   173
  o  i-0 initial commit: a b h p q r
44678
4e2845d9452d tests: collect all branch creation in one place in test-copies-chain-merge.t
Martin von Zweigbergk <martinvonz@google.com>
parents: 44664
diff changeset
   174
  
4e2845d9452d tests: collect all branch creation in one place in test-copies-chain-merge.t
Martin von Zweigbergk <martinvonz@google.com>
parents: 44664
diff changeset
   175
4e2845d9452d tests: collect all branch creation in one place in test-copies-chain-merge.t
Martin von Zweigbergk <martinvonz@google.com>
parents: 44664
diff changeset
   176
Having another branch renaming a different file to the same filename as another
4e2845d9452d tests: collect all branch creation in one place in test-copies-chain-merge.t
Martin von Zweigbergk <martinvonz@google.com>
parents: 44664
diff changeset
   177
4e2845d9452d tests: collect all branch creation in one place in test-copies-chain-merge.t
Martin von Zweigbergk <martinvonz@google.com>
parents: 44664
diff changeset
   178
  $ hg up 'desc("i-2")'
4e2845d9452d tests: collect all branch creation in one place in test-copies-chain-merge.t
Martin von Zweigbergk <martinvonz@google.com>
parents: 44664
diff changeset
   179
  1 files updated, 0 files merged, 0 files removed, 0 files unresolved
4e2845d9452d tests: collect all branch creation in one place in test-copies-chain-merge.t
Martin von Zweigbergk <martinvonz@google.com>
parents: 44664
diff changeset
   180
  $ hg mv b g
4e2845d9452d tests: collect all branch creation in one place in test-copies-chain-merge.t
Martin von Zweigbergk <martinvonz@google.com>
parents: 44664
diff changeset
   181
  $ hg ci -m 'e-1 b -move-> g'
4e2845d9452d tests: collect all branch creation in one place in test-copies-chain-merge.t
Martin von Zweigbergk <martinvonz@google.com>
parents: 44664
diff changeset
   182
  created new head
4e2845d9452d tests: collect all branch creation in one place in test-copies-chain-merge.t
Martin von Zweigbergk <martinvonz@google.com>
parents: 44664
diff changeset
   183
  $ hg mv g f
4e2845d9452d tests: collect all branch creation in one place in test-copies-chain-merge.t
Martin von Zweigbergk <martinvonz@google.com>
parents: 44664
diff changeset
   184
  $ hg ci -m 'e-2 g -move-> f'
4e2845d9452d tests: collect all branch creation in one place in test-copies-chain-merge.t
Martin von Zweigbergk <martinvonz@google.com>
parents: 44664
diff changeset
   185
  $ hg log -G --rev '::.'
46594
74e2256a56b8 test-copies: remove revision number from log
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46593
diff changeset
   186
  @  e-2 g -move-> f
44678
4e2845d9452d tests: collect all branch creation in one place in test-copies-chain-merge.t
Martin von Zweigbergk <martinvonz@google.com>
parents: 44664
diff changeset
   187
  |
46594
74e2256a56b8 test-copies: remove revision number from log
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46593
diff changeset
   188
  o  e-1 b -move-> g
44678
4e2845d9452d tests: collect all branch creation in one place in test-copies-chain-merge.t
Martin von Zweigbergk <martinvonz@google.com>
parents: 44664
diff changeset
   189
  |
46600
0ebfd02dafd5 test-copies: move the new files in the `i` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46599
diff changeset
   190
  o  i-2: c -move-> d, s -move-> t
44678
4e2845d9452d tests: collect all branch creation in one place in test-copies-chain-merge.t
Martin von Zweigbergk <martinvonz@google.com>
parents: 44664
diff changeset
   191
  |
46600
0ebfd02dafd5 test-copies: move the new files in the `i` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46599
diff changeset
   192
  o  i-1: a -move-> c, p -move-> s
44678
4e2845d9452d tests: collect all branch creation in one place in test-copies-chain-merge.t
Martin von Zweigbergk <martinvonz@google.com>
parents: 44664
diff changeset
   193
  |
46649
d7d64b8c8229 tests: correct a commit description in test-copies-chain-merge.t
Martin von Zweigbergk <martinvonz@google.com>
parents: 46607
diff changeset
   194
  o  i-0 initial commit: a b h p q r
44678
4e2845d9452d tests: collect all branch creation in one place in test-copies-chain-merge.t
Martin von Zweigbergk <martinvonz@google.com>
parents: 44664
diff changeset
   195
  
46601
067307d6589d test-copies: add a `p` branch similar to the `a` but on the new files
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46600
diff changeset
   196
  $ hg up -q null
067307d6589d test-copies: add a `p` branch similar to the `a` but on the new files
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46600
diff changeset
   197
067307d6589d test-copies: add a `p` branch similar to the `a` but on the new files
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46600
diff changeset
   198
Having a branch similar to the 'a' one, but moving the 'p' file around.
067307d6589d test-copies: add a `p` branch similar to the `a` but on the new files
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46600
diff changeset
   199
067307d6589d test-copies: add a `p` branch similar to the `a` but on the new files
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46600
diff changeset
   200
  $ hg up 'desc("i-2")'
067307d6589d test-copies: add a `p` branch similar to the `a` but on the new files
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46600
diff changeset
   201
  6 files updated, 0 files merged, 0 files removed, 0 files unresolved
067307d6589d test-copies: add a `p` branch similar to the `a` but on the new files
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46600
diff changeset
   202
  $ hg mv t u
067307d6589d test-copies: add a `p` branch similar to the `a` but on the new files
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46600
diff changeset
   203
  $ hg ci -Am 'p-1: t -move-> u'
067307d6589d test-copies: add a `p` branch similar to the `a` but on the new files
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46600
diff changeset
   204
  created new head
067307d6589d test-copies: add a `p` branch similar to the `a` but on the new files
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46600
diff changeset
   205
  $ hg mv u v
067307d6589d test-copies: add a `p` branch similar to the `a` but on the new files
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46600
diff changeset
   206
  $ hg ci -Am 'p-2: u -move-> v'
067307d6589d test-copies: add a `p` branch similar to the `a` but on the new files
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46600
diff changeset
   207
  $ hg log -G --rev '::.'
067307d6589d test-copies: add a `p` branch similar to the `a` but on the new files
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46600
diff changeset
   208
  @  p-2: u -move-> v
067307d6589d test-copies: add a `p` branch similar to the `a` but on the new files
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46600
diff changeset
   209
  |
067307d6589d test-copies: add a `p` branch similar to the `a` but on the new files
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46600
diff changeset
   210
  o  p-1: t -move-> u
067307d6589d test-copies: add a `p` branch similar to the `a` but on the new files
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46600
diff changeset
   211
  |
067307d6589d test-copies: add a `p` branch similar to the `a` but on the new files
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46600
diff changeset
   212
  o  i-2: c -move-> d, s -move-> t
067307d6589d test-copies: add a `p` branch similar to the `a` but on the new files
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46600
diff changeset
   213
  |
067307d6589d test-copies: add a `p` branch similar to the `a` but on the new files
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46600
diff changeset
   214
  o  i-1: a -move-> c, p -move-> s
067307d6589d test-copies: add a `p` branch similar to the `a` but on the new files
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46600
diff changeset
   215
  |
46649
d7d64b8c8229 tests: correct a commit description in test-copies-chain-merge.t
Martin von Zweigbergk <martinvonz@google.com>
parents: 46607
diff changeset
   216
  o  i-0 initial commit: a b h p q r
46601
067307d6589d test-copies: add a `p` branch similar to the `a` but on the new files
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46600
diff changeset
   217
  
067307d6589d test-copies: add a `p` branch similar to the `a` but on the new files
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46600
diff changeset
   218
  $ hg up -q null
44327
f9dfb56ed6e8 copies: add a new test dedicated to testing chain of changeset with merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   219
46602
eb60dadd1be1 test-copies: add a `q` branch similar to the `e` but on the new files
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46601
diff changeset
   220
Having another branch renaming a different file to the same filename as another
eb60dadd1be1 test-copies: add a `q` branch similar to the `e` but on the new files
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46601
diff changeset
   221
eb60dadd1be1 test-copies: add a `q` branch similar to the `e` but on the new files
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46601
diff changeset
   222
  $ hg up 'desc("i-2")'
eb60dadd1be1 test-copies: add a `q` branch similar to the `e` but on the new files
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46601
diff changeset
   223
  6 files updated, 0 files merged, 0 files removed, 0 files unresolved
eb60dadd1be1 test-copies: add a `q` branch similar to the `e` but on the new files
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46601
diff changeset
   224
  $ hg mv r w
eb60dadd1be1 test-copies: add a `q` branch similar to the `e` but on the new files
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46601
diff changeset
   225
  $ hg ci -m 'q-1 r -move-> w'
eb60dadd1be1 test-copies: add a `q` branch similar to the `e` but on the new files
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46601
diff changeset
   226
  created new head
eb60dadd1be1 test-copies: add a `q` branch similar to the `e` but on the new files
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46601
diff changeset
   227
  $ hg mv w v
eb60dadd1be1 test-copies: add a `q` branch similar to the `e` but on the new files
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46601
diff changeset
   228
  $ hg ci -m 'q-2 w -move-> v'
eb60dadd1be1 test-copies: add a `q` branch similar to the `e` but on the new files
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46601
diff changeset
   229
  $ hg log -G --rev '::.'
eb60dadd1be1 test-copies: add a `q` branch similar to the `e` but on the new files
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46601
diff changeset
   230
  @  q-2 w -move-> v
eb60dadd1be1 test-copies: add a `q` branch similar to the `e` but on the new files
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46601
diff changeset
   231
  |
eb60dadd1be1 test-copies: add a `q` branch similar to the `e` but on the new files
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46601
diff changeset
   232
  o  q-1 r -move-> w
eb60dadd1be1 test-copies: add a `q` branch similar to the `e` but on the new files
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46601
diff changeset
   233
  |
eb60dadd1be1 test-copies: add a `q` branch similar to the `e` but on the new files
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46601
diff changeset
   234
  o  i-2: c -move-> d, s -move-> t
eb60dadd1be1 test-copies: add a `q` branch similar to the `e` but on the new files
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46601
diff changeset
   235
  |
eb60dadd1be1 test-copies: add a `q` branch similar to the `e` but on the new files
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46601
diff changeset
   236
  o  i-1: a -move-> c, p -move-> s
eb60dadd1be1 test-copies: add a `q` branch similar to the `e` but on the new files
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46601
diff changeset
   237
  |
46649
d7d64b8c8229 tests: correct a commit description in test-copies-chain-merge.t
Martin von Zweigbergk <martinvonz@google.com>
parents: 46607
diff changeset
   238
  o  i-0 initial commit: a b h p q r
46602
eb60dadd1be1 test-copies: add a `q` branch similar to the `e` but on the new files
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46601
diff changeset
   239
  
eb60dadd1be1 test-copies: add a `q` branch similar to the `e` but on the new files
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46601
diff changeset
   240
  $ hg up -q null
eb60dadd1be1 test-copies: add a `q` branch similar to the `e` but on the new files
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46601
diff changeset
   241
45732
4ffe502673c3 copies: split creation of the graph and actual checking again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45704
diff changeset
   242
Setup all merge
4ffe502673c3 copies: split creation of the graph and actual checking again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45704
diff changeset
   243
===============
4ffe502673c3 copies: split creation of the graph and actual checking again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45704
diff changeset
   244
4ffe502673c3 copies: split creation of the graph and actual checking again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45704
diff changeset
   245
This is done beforehand to validate that the upgrade process creates valid copy
4ffe502673c3 copies: split creation of the graph and actual checking again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45704
diff changeset
   246
information.
4ffe502673c3 copies: split creation of the graph and actual checking again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45704
diff changeset
   247
44679
806f1f1ba430 tests: move verification closer to setup in test-copies-chain-merge.t
Martin von Zweigbergk <martinvonz@google.com>
parents: 44678
diff changeset
   248
merging with unrelated change does not interfere with the renames
806f1f1ba430 tests: move verification closer to setup in test-copies-chain-merge.t
Martin von Zweigbergk <martinvonz@google.com>
parents: 44678
diff changeset
   249
---------------------------------------------------------------
806f1f1ba430 tests: move verification closer to setup in test-copies-chain-merge.t
Martin von Zweigbergk <martinvonz@google.com>
parents: 44678
diff changeset
   250
806f1f1ba430 tests: move verification closer to setup in test-copies-chain-merge.t
Martin von Zweigbergk <martinvonz@google.com>
parents: 44678
diff changeset
   251
- rename on one side
806f1f1ba430 tests: move verification closer to setup in test-copies-chain-merge.t
Martin von Zweigbergk <martinvonz@google.com>
parents: 44678
diff changeset
   252
- unrelated change on the other side
44327
f9dfb56ed6e8 copies: add a new test dedicated to testing chain of changeset with merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   253
46580
e20977208924 test-copies: improve description of the A+B case
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46579
diff changeset
   254
  $ case_desc="simple merge - A side: multiple renames, B side: unrelated update"
46579
c9f502721783 test-copies: use intermediate variable some commit descriptions
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46578
diff changeset
   255
44327
f9dfb56ed6e8 copies: add a new test dedicated to testing chain of changeset with merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   256
  $ hg up 'desc("b-1")'
46601
067307d6589d test-copies: add a `p` branch similar to the `a` but on the new files
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46600
diff changeset
   257
  6 files updated, 0 files merged, 0 files removed, 0 files unresolved
44327
f9dfb56ed6e8 copies: add a new test dedicated to testing chain of changeset with merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   258
  $ hg merge 'desc("a-2")'
f9dfb56ed6e8 copies: add a new test dedicated to testing chain of changeset with merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   259
  1 files updated, 0 files merged, 1 files removed, 0 files unresolved
f9dfb56ed6e8 copies: add a new test dedicated to testing chain of changeset with merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   260
  (branch merge, don't forget to commit)
46579
c9f502721783 test-copies: use intermediate variable some commit descriptions
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46578
diff changeset
   261
  $ hg ci -m "mBAm-0 $case_desc - one way"
44327
f9dfb56ed6e8 copies: add a new test dedicated to testing chain of changeset with merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   262
  $ hg up 'desc("a-2")'
f9dfb56ed6e8 copies: add a new test dedicated to testing chain of changeset with merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   263
  1 files updated, 0 files merged, 0 files removed, 0 files unresolved
f9dfb56ed6e8 copies: add a new test dedicated to testing chain of changeset with merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   264
  $ hg merge 'desc("b-1")'
f9dfb56ed6e8 copies: add a new test dedicated to testing chain of changeset with merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   265
  1 files updated, 0 files merged, 0 files removed, 0 files unresolved
f9dfb56ed6e8 copies: add a new test dedicated to testing chain of changeset with merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   266
  (branch merge, don't forget to commit)
46579
c9f502721783 test-copies: use intermediate variable some commit descriptions
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46578
diff changeset
   267
  $ hg ci -m "mABm-0 $case_desc - the other way"
44327
f9dfb56ed6e8 copies: add a new test dedicated to testing chain of changeset with merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   268
  created new head
f9dfb56ed6e8 copies: add a new test dedicated to testing chain of changeset with merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   269
  $ hg log -G --rev '::(desc("mABm")+desc("mBAm"))'
46594
74e2256a56b8 test-copies: remove revision number from log
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46593
diff changeset
   270
  @    mABm-0 simple merge - A side: multiple renames, B side: unrelated update - the other way
44327
f9dfb56ed6e8 copies: add a new test dedicated to testing chain of changeset with merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   271
  |\
46594
74e2256a56b8 test-copies: remove revision number from log
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46593
diff changeset
   272
  +---o  mBAm-0 simple merge - A side: multiple renames, B side: unrelated update - one way
44327
f9dfb56ed6e8 copies: add a new test dedicated to testing chain of changeset with merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   273
  | |/
46594
74e2256a56b8 test-copies: remove revision number from log
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46593
diff changeset
   274
  | o  b-1: b update
44327
f9dfb56ed6e8 copies: add a new test dedicated to testing chain of changeset with merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   275
  | |
46594
74e2256a56b8 test-copies: remove revision number from log
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46593
diff changeset
   276
  o |  a-2: e -move-> f
44327
f9dfb56ed6e8 copies: add a new test dedicated to testing chain of changeset with merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   277
  | |
46594
74e2256a56b8 test-copies: remove revision number from log
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46593
diff changeset
   278
  o |  a-1: d -move-> e
44327
f9dfb56ed6e8 copies: add a new test dedicated to testing chain of changeset with merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   279
  |/
46600
0ebfd02dafd5 test-copies: move the new files in the `i` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46599
diff changeset
   280
  o  i-2: c -move-> d, s -move-> t
44327
f9dfb56ed6e8 copies: add a new test dedicated to testing chain of changeset with merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   281
  |
46600
0ebfd02dafd5 test-copies: move the new files in the `i` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46599
diff changeset
   282
  o  i-1: a -move-> c, p -move-> s
44327
f9dfb56ed6e8 copies: add a new test dedicated to testing chain of changeset with merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   283
  |
46649
d7d64b8c8229 tests: correct a commit description in test-copies-chain-merge.t
Martin von Zweigbergk <martinvonz@google.com>
parents: 46607
diff changeset
   284
  o  i-0 initial commit: a b h p q r
44327
f9dfb56ed6e8 copies: add a new test dedicated to testing chain of changeset with merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   285
  
f9dfb56ed6e8 copies: add a new test dedicated to testing chain of changeset with merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
   286
45732
4ffe502673c3 copies: split creation of the graph and actual checking again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45704
diff changeset
   287
4ffe502673c3 copies: split creation of the graph and actual checking again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45704
diff changeset
   288
merging with the side having a delete
4ffe502673c3 copies: split creation of the graph and actual checking again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45704
diff changeset
   289
-------------------------------------
4ffe502673c3 copies: split creation of the graph and actual checking again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45704
diff changeset
   290
4ffe502673c3 copies: split creation of the graph and actual checking again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45704
diff changeset
   291
case summary:
4ffe502673c3 copies: split creation of the graph and actual checking again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45704
diff changeset
   292
- one with change to an unrelated file
4ffe502673c3 copies: split creation of the graph and actual checking again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45704
diff changeset
   293
- one deleting the change
4ffe502673c3 copies: split creation of the graph and actual checking again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45704
diff changeset
   294
and recreate an unrelated file after the merge
4ffe502673c3 copies: split creation of the graph and actual checking again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45704
diff changeset
   295
46581
979838adc46b test-copies: improve description of the B+C case
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46580
diff changeset
   296
  $ case_desc="simple merge - C side: delete a file with copies history , B side: unrelated update"
46579
c9f502721783 test-copies: use intermediate variable some commit descriptions
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46578
diff changeset
   297
45732
4ffe502673c3 copies: split creation of the graph and actual checking again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45704
diff changeset
   298
  $ hg up 'desc("b-1")'
4ffe502673c3 copies: split creation of the graph and actual checking again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45704
diff changeset
   299
  1 files updated, 0 files merged, 1 files removed, 0 files unresolved
4ffe502673c3 copies: split creation of the graph and actual checking again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45704
diff changeset
   300
  $ hg merge 'desc("c-1")'
4ffe502673c3 copies: split creation of the graph and actual checking again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45704
diff changeset
   301
  0 files updated, 0 files merged, 1 files removed, 0 files unresolved
4ffe502673c3 copies: split creation of the graph and actual checking again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45704
diff changeset
   302
  (branch merge, don't forget to commit)
46579
c9f502721783 test-copies: use intermediate variable some commit descriptions
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46578
diff changeset
   303
  $ hg ci -m "mBCm-0 $case_desc - one way"
45732
4ffe502673c3 copies: split creation of the graph and actual checking again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45704
diff changeset
   304
  $ echo bar > d
4ffe502673c3 copies: split creation of the graph and actual checking again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45704
diff changeset
   305
  $ hg add d
4ffe502673c3 copies: split creation of the graph and actual checking again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45704
diff changeset
   306
  $ hg ci -m 'mBCm-1 re-add d'
4ffe502673c3 copies: split creation of the graph and actual checking again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45704
diff changeset
   307
  $ hg up 'desc("c-1")'
4ffe502673c3 copies: split creation of the graph and actual checking again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45704
diff changeset
   308
  1 files updated, 0 files merged, 1 files removed, 0 files unresolved
4ffe502673c3 copies: split creation of the graph and actual checking again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45704
diff changeset
   309
  $ hg merge 'desc("b-1")'
4ffe502673c3 copies: split creation of the graph and actual checking again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45704
diff changeset
   310
  1 files updated, 0 files merged, 0 files removed, 0 files unresolved
4ffe502673c3 copies: split creation of the graph and actual checking again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45704
diff changeset
   311
  (branch merge, don't forget to commit)
46579
c9f502721783 test-copies: use intermediate variable some commit descriptions
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46578
diff changeset
   312
  $ hg ci -m "mCBm-0 $case_desc - the other way"
45732
4ffe502673c3 copies: split creation of the graph and actual checking again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45704
diff changeset
   313
  created new head
4ffe502673c3 copies: split creation of the graph and actual checking again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45704
diff changeset
   314
  $ echo bar > d
4ffe502673c3 copies: split creation of the graph and actual checking again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45704
diff changeset
   315
  $ hg add d
4ffe502673c3 copies: split creation of the graph and actual checking again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45704
diff changeset
   316
  $ hg ci -m 'mCBm-1 re-add d'
4ffe502673c3 copies: split creation of the graph and actual checking again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45704
diff changeset
   317
  $ hg log -G --rev '::(desc("mCBm")+desc("mBCm"))'
46594
74e2256a56b8 test-copies: remove revision number from log
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46593
diff changeset
   318
  @  mCBm-1 re-add d
45732
4ffe502673c3 copies: split creation of the graph and actual checking again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45704
diff changeset
   319
  |
46594
74e2256a56b8 test-copies: remove revision number from log
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46593
diff changeset
   320
  o    mCBm-0 simple merge - C side: delete a file with copies history , B side: unrelated update - the other way
45732
4ffe502673c3 copies: split creation of the graph and actual checking again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45704
diff changeset
   321
  |\
46594
74e2256a56b8 test-copies: remove revision number from log
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46593
diff changeset
   322
  | | o  mBCm-1 re-add d
45732
4ffe502673c3 copies: split creation of the graph and actual checking again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45704
diff changeset
   323
  | | |
46594
74e2256a56b8 test-copies: remove revision number from log
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46593
diff changeset
   324
  +---o  mBCm-0 simple merge - C side: delete a file with copies history , B side: unrelated update - one way
45732
4ffe502673c3 copies: split creation of the graph and actual checking again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45704
diff changeset
   325
  | |/
46594
74e2256a56b8 test-copies: remove revision number from log
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46593
diff changeset
   326
  | o  c-1 delete d
45732
4ffe502673c3 copies: split creation of the graph and actual checking again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45704
diff changeset
   327
  | |
46594
74e2256a56b8 test-copies: remove revision number from log
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46593
diff changeset
   328
  o |  b-1: b update
45732
4ffe502673c3 copies: split creation of the graph and actual checking again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45704
diff changeset
   329
  |/
46600
0ebfd02dafd5 test-copies: move the new files in the `i` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46599
diff changeset
   330
  o  i-2: c -move-> d, s -move-> t
45732
4ffe502673c3 copies: split creation of the graph and actual checking again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45704
diff changeset
   331
  |
46600
0ebfd02dafd5 test-copies: move the new files in the `i` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46599
diff changeset
   332
  o  i-1: a -move-> c, p -move-> s
45732
4ffe502673c3 copies: split creation of the graph and actual checking again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45704
diff changeset
   333
  |
46649
d7d64b8c8229 tests: correct a commit description in test-copies-chain-merge.t
Martin von Zweigbergk <martinvonz@google.com>
parents: 46607
diff changeset
   334
  o  i-0 initial commit: a b h p q r
45732
4ffe502673c3 copies: split creation of the graph and actual checking again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45704
diff changeset
   335
  
4ffe502673c3 copies: split creation of the graph and actual checking again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45704
diff changeset
   336
4ffe502673c3 copies: split creation of the graph and actual checking again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45704
diff changeset
   337
Comparing with a merge re-adding the file afterward
4ffe502673c3 copies: split creation of the graph and actual checking again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45704
diff changeset
   338
---------------------------------------------------
4ffe502673c3 copies: split creation of the graph and actual checking again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45704
diff changeset
   339
4ffe502673c3 copies: split creation of the graph and actual checking again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45704
diff changeset
   340
Merge:
4ffe502673c3 copies: split creation of the graph and actual checking again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45704
diff changeset
   341
- one with change to an unrelated file
4ffe502673c3 copies: split creation of the graph and actual checking again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45704
diff changeset
   342
- one deleting and recreating the change
4ffe502673c3 copies: split creation of the graph and actual checking again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45704
diff changeset
   343
46582
9a58f9eed303 test-copies: improve description of the B+D case
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46581
diff changeset
   344
  $ case_desc="simple merge - B side: unrelated update, D side: delete and recreate a file (with different content)"
46579
c9f502721783 test-copies: use intermediate variable some commit descriptions
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46578
diff changeset
   345
45732
4ffe502673c3 copies: split creation of the graph and actual checking again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45704
diff changeset
   346
  $ hg up 'desc("b-1")'
4ffe502673c3 copies: split creation of the graph and actual checking again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45704
diff changeset
   347
  1 files updated, 0 files merged, 0 files removed, 0 files unresolved
4ffe502673c3 copies: split creation of the graph and actual checking again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45704
diff changeset
   348
  $ hg merge 'desc("d-2")'
4ffe502673c3 copies: split creation of the graph and actual checking again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45704
diff changeset
   349
  1 files updated, 0 files merged, 0 files removed, 0 files unresolved
4ffe502673c3 copies: split creation of the graph and actual checking again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45704
diff changeset
   350
  (branch merge, don't forget to commit)
46579
c9f502721783 test-copies: use intermediate variable some commit descriptions
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46578
diff changeset
   351
  $ hg ci -m "mBDm-0 $case_desc - one way"
45732
4ffe502673c3 copies: split creation of the graph and actual checking again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45704
diff changeset
   352
  $ hg up 'desc("d-2")'
4ffe502673c3 copies: split creation of the graph and actual checking again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45704
diff changeset
   353
  1 files updated, 0 files merged, 0 files removed, 0 files unresolved
4ffe502673c3 copies: split creation of the graph and actual checking again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45704
diff changeset
   354
  $ hg merge 'desc("b-1")'
4ffe502673c3 copies: split creation of the graph and actual checking again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45704
diff changeset
   355
  1 files updated, 0 files merged, 0 files removed, 0 files unresolved
4ffe502673c3 copies: split creation of the graph and actual checking again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45704
diff changeset
   356
  (branch merge, don't forget to commit)
46579
c9f502721783 test-copies: use intermediate variable some commit descriptions
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46578
diff changeset
   357
  $ hg ci -m "mDBm-0 $case_desc - the other way"
45732
4ffe502673c3 copies: split creation of the graph and actual checking again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45704
diff changeset
   358
  created new head
4ffe502673c3 copies: split creation of the graph and actual checking again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45704
diff changeset
   359
  $ hg log -G --rev '::(desc("mDBm")+desc("mBDm"))'
46594
74e2256a56b8 test-copies: remove revision number from log
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46593
diff changeset
   360
  @    mDBm-0 simple merge - B side: unrelated update, D side: delete and recreate a file (with different content) - the other way
45732
4ffe502673c3 copies: split creation of the graph and actual checking again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45704
diff changeset
   361
  |\
46594
74e2256a56b8 test-copies: remove revision number from log
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46593
diff changeset
   362
  +---o  mBDm-0 simple merge - B side: unrelated update, D side: delete and recreate a file (with different content) - one way
45732
4ffe502673c3 copies: split creation of the graph and actual checking again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45704
diff changeset
   363
  | |/
46594
74e2256a56b8 test-copies: remove revision number from log
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46593
diff changeset
   364
  | o  d-2 re-add d
45732
4ffe502673c3 copies: split creation of the graph and actual checking again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45704
diff changeset
   365
  | |
46594
74e2256a56b8 test-copies: remove revision number from log
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46593
diff changeset
   366
  | o  d-1 delete d
45732
4ffe502673c3 copies: split creation of the graph and actual checking again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45704
diff changeset
   367
  | |
46594
74e2256a56b8 test-copies: remove revision number from log
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46593
diff changeset
   368
  o |  b-1: b update
45732
4ffe502673c3 copies: split creation of the graph and actual checking again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45704
diff changeset
   369
  |/
46600
0ebfd02dafd5 test-copies: move the new files in the `i` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46599
diff changeset
   370
  o  i-2: c -move-> d, s -move-> t
45732
4ffe502673c3 copies: split creation of the graph and actual checking again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45704
diff changeset
   371
  |
46600
0ebfd02dafd5 test-copies: move the new files in the `i` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46599
diff changeset
   372
  o  i-1: a -move-> c, p -move-> s
45732
4ffe502673c3 copies: split creation of the graph and actual checking again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45704
diff changeset
   373
  |
46649
d7d64b8c8229 tests: correct a commit description in test-copies-chain-merge.t
Martin von Zweigbergk <martinvonz@google.com>
parents: 46607
diff changeset
   374
  o  i-0 initial commit: a b h p q r
45732
4ffe502673c3 copies: split creation of the graph and actual checking again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45704
diff changeset
   375
  
4ffe502673c3 copies: split creation of the graph and actual checking again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45704
diff changeset
   376
4ffe502673c3 copies: split creation of the graph and actual checking again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45704
diff changeset
   377
4ffe502673c3 copies: split creation of the graph and actual checking again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45704
diff changeset
   378
Comparing with a merge with colliding rename
4ffe502673c3 copies: split creation of the graph and actual checking again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45704
diff changeset
   379
--------------------------------------------
4ffe502673c3 copies: split creation of the graph and actual checking again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45704
diff changeset
   380
46590
f01696d45d1e test-copies: add subcase titles for various "conflicting" information variant
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46589
diff changeset
   381
Subcase: new copy information on both side
f01696d45d1e test-copies: add subcase titles for various "conflicting" information variant
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46589
diff changeset
   382
``````````````````````````````````````````
f01696d45d1e test-copies: add subcase titles for various "conflicting" information variant
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46589
diff changeset
   383
45732
4ffe502673c3 copies: split creation of the graph and actual checking again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45704
diff changeset
   384
- the "e-" branch renaming b to f (through 'g')
4ffe502673c3 copies: split creation of the graph and actual checking again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45704
diff changeset
   385
- the "a-" branch renaming d to f (through e)
4ffe502673c3 copies: split creation of the graph and actual checking again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45704
diff changeset
   386
46583
19f490690880 test-copies: improve description of the A+E case
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46582
diff changeset
   387
  $ case_desc="merge with copies info on both side - A side: rename d to f, E side: b to f, (same content for f)"
46579
c9f502721783 test-copies: use intermediate variable some commit descriptions
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46578
diff changeset
   388
45732
4ffe502673c3 copies: split creation of the graph and actual checking again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45704
diff changeset
   389
  $ hg up 'desc("a-2")'
4ffe502673c3 copies: split creation of the graph and actual checking again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45704
diff changeset
   390
  2 files updated, 0 files merged, 1 files removed, 0 files unresolved
46577
018d622e814d test-copies: reinstall initial identical (empty) files for chained copied
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46538
diff changeset
   391
  $ hg merge 'desc("e-2")'
018d622e814d test-copies: reinstall initial identical (empty) files for chained copied
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46538
diff changeset
   392
  1 files updated, 0 files merged, 1 files removed, 0 files unresolved (no-changeset !)
018d622e814d test-copies: reinstall initial identical (empty) files for chained copied
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46538
diff changeset
   393
  0 files updated, 0 files merged, 1 files removed, 0 files unresolved (changeset !)
45732
4ffe502673c3 copies: split creation of the graph and actual checking again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45704
diff changeset
   394
  (branch merge, don't forget to commit)
46579
c9f502721783 test-copies: use intermediate variable some commit descriptions
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46578
diff changeset
   395
  $ hg ci -m "mAEm-0 $case_desc - one way"
45732
4ffe502673c3 copies: split creation of the graph and actual checking again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45704
diff changeset
   396
  $ hg up 'desc("e-2")'
46577
018d622e814d test-copies: reinstall initial identical (empty) files for chained copied
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46538
diff changeset
   397
  2 files updated, 0 files merged, 0 files removed, 0 files unresolved (no-changeset !)
018d622e814d test-copies: reinstall initial identical (empty) files for chained copied
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46538
diff changeset
   398
  1 files updated, 0 files merged, 0 files removed, 0 files unresolved (changeset !)
018d622e814d test-copies: reinstall initial identical (empty) files for chained copied
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46538
diff changeset
   399
  $ hg merge 'desc("a-2")'
018d622e814d test-copies: reinstall initial identical (empty) files for chained copied
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46538
diff changeset
   400
  1 files updated, 0 files merged, 1 files removed, 0 files unresolved (no-changeset !)
018d622e814d test-copies: reinstall initial identical (empty) files for chained copied
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46538
diff changeset
   401
  0 files updated, 0 files merged, 1 files removed, 0 files unresolved (changeset !)
45732
4ffe502673c3 copies: split creation of the graph and actual checking again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45704
diff changeset
   402
  (branch merge, don't forget to commit)
46579
c9f502721783 test-copies: use intermediate variable some commit descriptions
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46578
diff changeset
   403
  $ hg ci -m "mEAm-0 $case_desc - the other way"
45732
4ffe502673c3 copies: split creation of the graph and actual checking again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45704
diff changeset
   404
  created new head
4ffe502673c3 copies: split creation of the graph and actual checking again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45704
diff changeset
   405
  $ hg log -G --rev '::(desc("mAEm")+desc("mEAm"))'
46594
74e2256a56b8 test-copies: remove revision number from log
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46593
diff changeset
   406
  @    mEAm-0 merge with copies info on both side - A side: rename d to f, E side: b to f, (same content for f) - the other way
45732
4ffe502673c3 copies: split creation of the graph and actual checking again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45704
diff changeset
   407
  |\
46594
74e2256a56b8 test-copies: remove revision number from log
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46593
diff changeset
   408
  +---o  mAEm-0 merge with copies info on both side - A side: rename d to f, E side: b to f, (same content for f) - one way
45732
4ffe502673c3 copies: split creation of the graph and actual checking again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45704
diff changeset
   409
  | |/
46594
74e2256a56b8 test-copies: remove revision number from log
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46593
diff changeset
   410
  | o  e-2 g -move-> f
45732
4ffe502673c3 copies: split creation of the graph and actual checking again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45704
diff changeset
   411
  | |
46594
74e2256a56b8 test-copies: remove revision number from log
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46593
diff changeset
   412
  | o  e-1 b -move-> g
45732
4ffe502673c3 copies: split creation of the graph and actual checking again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45704
diff changeset
   413
  | |
46594
74e2256a56b8 test-copies: remove revision number from log
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46593
diff changeset
   414
  o |  a-2: e -move-> f
45732
4ffe502673c3 copies: split creation of the graph and actual checking again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45704
diff changeset
   415
  | |
46594
74e2256a56b8 test-copies: remove revision number from log
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46593
diff changeset
   416
  o |  a-1: d -move-> e
45732
4ffe502673c3 copies: split creation of the graph and actual checking again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45704
diff changeset
   417
  |/
46600
0ebfd02dafd5 test-copies: move the new files in the `i` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46599
diff changeset
   418
  o  i-2: c -move-> d, s -move-> t
45732
4ffe502673c3 copies: split creation of the graph and actual checking again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45704
diff changeset
   419
  |
46600
0ebfd02dafd5 test-copies: move the new files in the `i` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46599
diff changeset
   420
  o  i-1: a -move-> c, p -move-> s
45732
4ffe502673c3 copies: split creation of the graph and actual checking again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45704
diff changeset
   421
  |
46649
d7d64b8c8229 tests: correct a commit description in test-copies-chain-merge.t
Martin von Zweigbergk <martinvonz@google.com>
parents: 46607
diff changeset
   422
  o  i-0 initial commit: a b h p q r
45732
4ffe502673c3 copies: split creation of the graph and actual checking again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45704
diff changeset
   423
  
4ffe502673c3 copies: split creation of the graph and actual checking again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45704
diff changeset
   424
46603
a1273bea99cc test-copies: introduce case combining the `p` and `q` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46602
diff changeset
   425
Subcase: new copy information on both side with an actual merge happening
a1273bea99cc test-copies: introduce case combining the `p` and `q` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46602
diff changeset
   426
`````````````````````````````````````````````````````````````````````````
a1273bea99cc test-copies: introduce case combining the `p` and `q` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46602
diff changeset
   427
a1273bea99cc test-copies: introduce case combining the `p` and `q` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46602
diff changeset
   428
- the "p-" branch renaming 't' to 'v' (through 'u')
a1273bea99cc test-copies: introduce case combining the `p` and `q` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46602
diff changeset
   429
- the "q-" branch renaming 'r' to 'v' (through 'w')
a1273bea99cc test-copies: introduce case combining the `p` and `q` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46602
diff changeset
   430
a1273bea99cc test-copies: introduce case combining the `p` and `q` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46602
diff changeset
   431
  $ case_desc="merge with copies info on both side - P side: rename t to v, Q side: r to v, (different content)"
a1273bea99cc test-copies: introduce case combining the `p` and `q` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46602
diff changeset
   432
a1273bea99cc test-copies: introduce case combining the `p` and `q` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46602
diff changeset
   433
  $ hg up 'desc("p-2")'
a1273bea99cc test-copies: introduce case combining the `p` and `q` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46602
diff changeset
   434
  3 files updated, 0 files merged, 2 files removed, 0 files unresolved
a1273bea99cc test-copies: introduce case combining the `p` and `q` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46602
diff changeset
   435
  $ hg merge 'desc("q-2")' --tool ':union'
a1273bea99cc test-copies: introduce case combining the `p` and `q` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46602
diff changeset
   436
  merging v
a1273bea99cc test-copies: introduce case combining the `p` and `q` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46602
diff changeset
   437
  1 files updated, 0 files merged, 1 files removed, 0 files unresolved
a1273bea99cc test-copies: introduce case combining the `p` and `q` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46602
diff changeset
   438
  (branch merge, don't forget to commit)
a1273bea99cc test-copies: introduce case combining the `p` and `q` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46602
diff changeset
   439
  $ hg ci -m "mPQm-0 $case_desc - one way"
a1273bea99cc test-copies: introduce case combining the `p` and `q` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46602
diff changeset
   440
  $ hg up 'desc("q-2")'
a1273bea99cc test-copies: introduce case combining the `p` and `q` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46602
diff changeset
   441
  2 files updated, 0 files merged, 0 files removed, 0 files unresolved
a1273bea99cc test-copies: introduce case combining the `p` and `q` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46602
diff changeset
   442
  $ hg merge 'desc("p-2")' --tool ':union'
a1273bea99cc test-copies: introduce case combining the `p` and `q` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46602
diff changeset
   443
  merging v
a1273bea99cc test-copies: introduce case combining the `p` and `q` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46602
diff changeset
   444
  1 files updated, 0 files merged, 1 files removed, 0 files unresolved
a1273bea99cc test-copies: introduce case combining the `p` and `q` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46602
diff changeset
   445
  (branch merge, don't forget to commit)
a1273bea99cc test-copies: introduce case combining the `p` and `q` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46602
diff changeset
   446
  $ hg ci -m "mQPm-0 $case_desc - the other way"
a1273bea99cc test-copies: introduce case combining the `p` and `q` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46602
diff changeset
   447
  created new head
a1273bea99cc test-copies: introduce case combining the `p` and `q` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46602
diff changeset
   448
  $ hg log -G --rev '::(desc("mAEm")+desc("mEAm"))'
a1273bea99cc test-copies: introduce case combining the `p` and `q` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46602
diff changeset
   449
  o    mEAm-0 merge with copies info on both side - A side: rename d to f, E side: b to f, (same content for f) - the other way
a1273bea99cc test-copies: introduce case combining the `p` and `q` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46602
diff changeset
   450
  |\
a1273bea99cc test-copies: introduce case combining the `p` and `q` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46602
diff changeset
   451
  +---o  mAEm-0 merge with copies info on both side - A side: rename d to f, E side: b to f, (same content for f) - one way
a1273bea99cc test-copies: introduce case combining the `p` and `q` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46602
diff changeset
   452
  | |/
a1273bea99cc test-copies: introduce case combining the `p` and `q` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46602
diff changeset
   453
  | o  e-2 g -move-> f
a1273bea99cc test-copies: introduce case combining the `p` and `q` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46602
diff changeset
   454
  | |
a1273bea99cc test-copies: introduce case combining the `p` and `q` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46602
diff changeset
   455
  | o  e-1 b -move-> g
a1273bea99cc test-copies: introduce case combining the `p` and `q` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46602
diff changeset
   456
  | |
a1273bea99cc test-copies: introduce case combining the `p` and `q` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46602
diff changeset
   457
  o |  a-2: e -move-> f
a1273bea99cc test-copies: introduce case combining the `p` and `q` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46602
diff changeset
   458
  | |
a1273bea99cc test-copies: introduce case combining the `p` and `q` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46602
diff changeset
   459
  o |  a-1: d -move-> e
a1273bea99cc test-copies: introduce case combining the `p` and `q` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46602
diff changeset
   460
  |/
a1273bea99cc test-copies: introduce case combining the `p` and `q` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46602
diff changeset
   461
  o  i-2: c -move-> d, s -move-> t
a1273bea99cc test-copies: introduce case combining the `p` and `q` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46602
diff changeset
   462
  |
a1273bea99cc test-copies: introduce case combining the `p` and `q` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46602
diff changeset
   463
  o  i-1: a -move-> c, p -move-> s
a1273bea99cc test-copies: introduce case combining the `p` and `q` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46602
diff changeset
   464
  |
46649
d7d64b8c8229 tests: correct a commit description in test-copies-chain-merge.t
Martin von Zweigbergk <martinvonz@google.com>
parents: 46607
diff changeset
   465
  o  i-0 initial commit: a b h p q r
46603
a1273bea99cc test-copies: introduce case combining the `p` and `q` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46602
diff changeset
   466
  
a1273bea99cc test-copies: introduce case combining the `p` and `q` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46602
diff changeset
   467
46590
f01696d45d1e test-copies: add subcase titles for various "conflicting" information variant
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46589
diff changeset
   468
Subcase: existing copy information overwritten on one branch
f01696d45d1e test-copies: add subcase titles for various "conflicting" information variant
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46589
diff changeset
   469
````````````````````````````````````````````````````````````
45732
4ffe502673c3 copies: split creation of the graph and actual checking again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45704
diff changeset
   470
4ffe502673c3 copies: split creation of the graph and actual checking again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45704
diff changeset
   471
Merge:
4ffe502673c3 copies: split creation of the graph and actual checking again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45704
diff changeset
   472
- one with change to an unrelated file (b)
4ffe502673c3 copies: split creation of the graph and actual checking again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45704
diff changeset
   473
- one overwriting a file (d) with a rename (from h to i to d)
4ffe502673c3 copies: split creation of the graph and actual checking again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45704
diff changeset
   474
46589
f8888f5c8c50 test-copies: improve description of the B+F case
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46588
diff changeset
   475
  $ case_desc="simple merge - B side: unrelated change, F side: overwrite d with a copy (from h->i->d)"
46579
c9f502721783 test-copies: use intermediate variable some commit descriptions
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46578
diff changeset
   476
45732
4ffe502673c3 copies: split creation of the graph and actual checking again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45704
diff changeset
   477
  $ hg up 'desc("i-2")'
4ffe502673c3 copies: split creation of the graph and actual checking again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45704
diff changeset
   478
  2 files updated, 0 files merged, 1 files removed, 0 files unresolved
4ffe502673c3 copies: split creation of the graph and actual checking again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45704
diff changeset
   479
  $ hg mv h i
4ffe502673c3 copies: split creation of the graph and actual checking again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45704
diff changeset
   480
  $ hg commit -m "f-1: rename h -> i"
4ffe502673c3 copies: split creation of the graph and actual checking again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45704
diff changeset
   481
  created new head
4ffe502673c3 copies: split creation of the graph and actual checking again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45704
diff changeset
   482
  $ hg mv --force i d
4ffe502673c3 copies: split creation of the graph and actual checking again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45704
diff changeset
   483
  $ hg commit -m "f-2: rename i -> d"
46596
9cd4f58467af test-copies: filter out the linkrev part of `debugindex`
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46595
diff changeset
   484
  $ hg debugindex d | ../no-linkrev
45732
4ffe502673c3 copies: split creation of the graph and actual checking again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45704
diff changeset
   485
     rev linkrev nodeid       p1           p2
46596
9cd4f58467af test-copies: filter out the linkrev part of `debugindex`
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46595
diff changeset
   486
       0       * d8252ab2e760 000000000000 000000000000 (no-changeset !)
9cd4f58467af test-copies: filter out the linkrev part of `debugindex`
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46595
diff changeset
   487
       0       * ae258f702dfe 000000000000 000000000000 (changeset !)
9cd4f58467af test-copies: filter out the linkrev part of `debugindex`
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46595
diff changeset
   488
       1       * b004912a8510 000000000000 000000000000
9cd4f58467af test-copies: filter out the linkrev part of `debugindex`
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46595
diff changeset
   489
       2       * 7b79e2fe0c89 000000000000 000000000000 (no-changeset !)
45732
4ffe502673c3 copies: split creation of the graph and actual checking again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45704
diff changeset
   490
  $ hg up 'desc("b-1")'
46577
018d622e814d test-copies: reinstall initial identical (empty) files for chained copied
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46538
diff changeset
   491
  3 files updated, 0 files merged, 0 files removed, 0 files unresolved (no-changeset !)
018d622e814d test-copies: reinstall initial identical (empty) files for chained copied
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46538
diff changeset
   492
  2 files updated, 0 files merged, 0 files removed, 0 files unresolved (changeset !)
45732
4ffe502673c3 copies: split creation of the graph and actual checking again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45704
diff changeset
   493
  $ hg merge 'desc("f-2")'
46577
018d622e814d test-copies: reinstall initial identical (empty) files for chained copied
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46538
diff changeset
   494
  1 files updated, 0 files merged, 1 files removed, 0 files unresolved (no-changeset !)
018d622e814d test-copies: reinstall initial identical (empty) files for chained copied
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46538
diff changeset
   495
  0 files updated, 0 files merged, 1 files removed, 0 files unresolved (changeset !)
45732
4ffe502673c3 copies: split creation of the graph and actual checking again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45704
diff changeset
   496
  (branch merge, don't forget to commit)
46579
c9f502721783 test-copies: use intermediate variable some commit descriptions
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46578
diff changeset
   497
  $ hg ci -m "mBFm-0 $case_desc - one way"
45732
4ffe502673c3 copies: split creation of the graph and actual checking again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45704
diff changeset
   498
  $ hg up 'desc("f-2")'
4ffe502673c3 copies: split creation of the graph and actual checking again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45704
diff changeset
   499
  1 files updated, 0 files merged, 0 files removed, 0 files unresolved
4ffe502673c3 copies: split creation of the graph and actual checking again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45704
diff changeset
   500
  $ hg merge 'desc("b-1")'
4ffe502673c3 copies: split creation of the graph and actual checking again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45704
diff changeset
   501
  1 files updated, 0 files merged, 0 files removed, 0 files unresolved
4ffe502673c3 copies: split creation of the graph and actual checking again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45704
diff changeset
   502
  (branch merge, don't forget to commit)
46579
c9f502721783 test-copies: use intermediate variable some commit descriptions
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46578
diff changeset
   503
  $ hg ci -m "mFBm-0 $case_desc - the other way"
45732
4ffe502673c3 copies: split creation of the graph and actual checking again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45704
diff changeset
   504
  created new head
46603
a1273bea99cc test-copies: introduce case combining the `p` and `q` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46602
diff changeset
   505
  $ hg up null --quiet
45732
4ffe502673c3 copies: split creation of the graph and actual checking again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45704
diff changeset
   506
  $ hg log -G --rev '::(desc("mBFm")+desc("mFBm"))'
46603
a1273bea99cc test-copies: introduce case combining the `p` and `q` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46602
diff changeset
   507
  o    mFBm-0 simple merge - B side: unrelated change, F side: overwrite d with a copy (from h->i->d) - the other way
45732
4ffe502673c3 copies: split creation of the graph and actual checking again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45704
diff changeset
   508
  |\
46594
74e2256a56b8 test-copies: remove revision number from log
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46593
diff changeset
   509
  +---o  mBFm-0 simple merge - B side: unrelated change, F side: overwrite d with a copy (from h->i->d) - one way
45732
4ffe502673c3 copies: split creation of the graph and actual checking again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45704
diff changeset
   510
  | |/
46594
74e2256a56b8 test-copies: remove revision number from log
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46593
diff changeset
   511
  | o  f-2: rename i -> d
45732
4ffe502673c3 copies: split creation of the graph and actual checking again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45704
diff changeset
   512
  | |
46594
74e2256a56b8 test-copies: remove revision number from log
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46593
diff changeset
   513
  | o  f-1: rename h -> i
45732
4ffe502673c3 copies: split creation of the graph and actual checking again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45704
diff changeset
   514
  | |
46594
74e2256a56b8 test-copies: remove revision number from log
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46593
diff changeset
   515
  o |  b-1: b update
45732
4ffe502673c3 copies: split creation of the graph and actual checking again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45704
diff changeset
   516
  |/
46600
0ebfd02dafd5 test-copies: move the new files in the `i` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46599
diff changeset
   517
  o  i-2: c -move-> d, s -move-> t
45732
4ffe502673c3 copies: split creation of the graph and actual checking again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45704
diff changeset
   518
  |
46600
0ebfd02dafd5 test-copies: move the new files in the `i` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46599
diff changeset
   519
  o  i-1: a -move-> c, p -move-> s
45732
4ffe502673c3 copies: split creation of the graph and actual checking again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45704
diff changeset
   520
  |
46649
d7d64b8c8229 tests: correct a commit description in test-copies-chain-merge.t
Martin von Zweigbergk <martinvonz@google.com>
parents: 46607
diff changeset
   521
  o  i-0 initial commit: a b h p q r
45732
4ffe502673c3 copies: split creation of the graph and actual checking again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45704
diff changeset
   522
  
4ffe502673c3 copies: split creation of the graph and actual checking again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45704
diff changeset
   523
46604
c7baff95808c test-copies: add a case involving the `b` and a new `r` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46603
diff changeset
   524
Subcase: existing copy information overwritten on one branch, with different content)
c7baff95808c test-copies: add a case involving the `b` and a new `r` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46603
diff changeset
   525
`````````````````````````````````````````````````````````````````````````````````````
c7baff95808c test-copies: add a case involving the `b` and a new `r` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46603
diff changeset
   526
c7baff95808c test-copies: add a case involving the `b` and a new `r` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46603
diff changeset
   527
Merge:
c7baff95808c test-copies: add a case involving the `b` and a new `r` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46603
diff changeset
   528
- one with change to an unrelated file (b)
c7baff95808c test-copies: add a case involving the `b` and a new `r` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46603
diff changeset
   529
- one overwriting a file (t) with a rename (from r to x to t), v content is not the same as on the other branch
c7baff95808c test-copies: add a case involving the `b` and a new `r` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46603
diff changeset
   530
c7baff95808c test-copies: add a case involving the `b` and a new `r` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46603
diff changeset
   531
  $ case_desc="simple merge - B side: unrelated change, R side: overwrite d with a copy (from r->x->t) different content"
c7baff95808c test-copies: add a case involving the `b` and a new `r` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46603
diff changeset
   532
c7baff95808c test-copies: add a case involving the `b` and a new `r` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46603
diff changeset
   533
  $ hg up 'desc("i-2")'
c7baff95808c test-copies: add a case involving the `b` and a new `r` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46603
diff changeset
   534
  6 files updated, 0 files merged, 0 files removed, 0 files unresolved
c7baff95808c test-copies: add a case involving the `b` and a new `r` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46603
diff changeset
   535
  $ hg mv r x
c7baff95808c test-copies: add a case involving the `b` and a new `r` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46603
diff changeset
   536
  $ hg commit -m "r-1: rename r -> x"
c7baff95808c test-copies: add a case involving the `b` and a new `r` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46603
diff changeset
   537
  created new head
c7baff95808c test-copies: add a case involving the `b` and a new `r` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46603
diff changeset
   538
  $ hg mv --force x t
c7baff95808c test-copies: add a case involving the `b` and a new `r` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46603
diff changeset
   539
  $ hg commit -m "r-2: rename t -> x"
c7baff95808c test-copies: add a case involving the `b` and a new `r` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46603
diff changeset
   540
  $ hg debugindex t | ../no-linkrev
c7baff95808c test-copies: add a case involving the `b` and a new `r` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46603
diff changeset
   541
     rev linkrev nodeid       p1           p2
c7baff95808c test-copies: add a case involving the `b` and a new `r` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46603
diff changeset
   542
       0       * d74efbf65309 000000000000 000000000000 (no-changeset !)
c7baff95808c test-copies: add a case involving the `b` and a new `r` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46603
diff changeset
   543
       1       * 02a930b9d7ad 000000000000 000000000000 (no-changeset !)
c7baff95808c test-copies: add a case involving the `b` and a new `r` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46603
diff changeset
   544
       0       * 5aed6a8dbff0 000000000000 000000000000 (changeset !)
c7baff95808c test-copies: add a case involving the `b` and a new `r` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46603
diff changeset
   545
       1       * a38b2fa17021 000000000000 000000000000 (changeset !)
c7baff95808c test-copies: add a case involving the `b` and a new `r` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46603
diff changeset
   546
  $ hg up 'desc("b-1")'
c7baff95808c test-copies: add a case involving the `b` and a new `r` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46603
diff changeset
   547
  3 files updated, 0 files merged, 0 files removed, 0 files unresolved
c7baff95808c test-copies: add a case involving the `b` and a new `r` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46603
diff changeset
   548
  $ hg merge 'desc("r-2")'
c7baff95808c test-copies: add a case involving the `b` and a new `r` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46603
diff changeset
   549
  1 files updated, 0 files merged, 1 files removed, 0 files unresolved
c7baff95808c test-copies: add a case involving the `b` and a new `r` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46603
diff changeset
   550
  (branch merge, don't forget to commit)
c7baff95808c test-copies: add a case involving the `b` and a new `r` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46603
diff changeset
   551
  $ hg ci -m "mBRm-0 $case_desc - one way"
c7baff95808c test-copies: add a case involving the `b` and a new `r` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46603
diff changeset
   552
  $ hg up 'desc("r-2")'
c7baff95808c test-copies: add a case involving the `b` and a new `r` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46603
diff changeset
   553
  1 files updated, 0 files merged, 0 files removed, 0 files unresolved
c7baff95808c test-copies: add a case involving the `b` and a new `r` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46603
diff changeset
   554
  $ hg merge 'desc("b-1")'
c7baff95808c test-copies: add a case involving the `b` and a new `r` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46603
diff changeset
   555
  1 files updated, 0 files merged, 0 files removed, 0 files unresolved
c7baff95808c test-copies: add a case involving the `b` and a new `r` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46603
diff changeset
   556
  (branch merge, don't forget to commit)
c7baff95808c test-copies: add a case involving the `b` and a new `r` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46603
diff changeset
   557
  $ hg ci -m "mRBm-0 $case_desc - the other way"
c7baff95808c test-copies: add a case involving the `b` and a new `r` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46603
diff changeset
   558
  created new head
c7baff95808c test-copies: add a case involving the `b` and a new `r` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46603
diff changeset
   559
  $ hg up null --quiet
c7baff95808c test-copies: add a case involving the `b` and a new `r` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46603
diff changeset
   560
  $ hg log -G --rev '::(desc("mBRm")+desc("mRBm"))'
c7baff95808c test-copies: add a case involving the `b` and a new `r` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46603
diff changeset
   561
  o    mRBm-0 simple merge - B side: unrelated change, R side: overwrite d with a copy (from r->x->t) different content - the other way
c7baff95808c test-copies: add a case involving the `b` and a new `r` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46603
diff changeset
   562
  |\
c7baff95808c test-copies: add a case involving the `b` and a new `r` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46603
diff changeset
   563
  +---o  mBRm-0 simple merge - B side: unrelated change, R side: overwrite d with a copy (from r->x->t) different content - one way
c7baff95808c test-copies: add a case involving the `b` and a new `r` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46603
diff changeset
   564
  | |/
c7baff95808c test-copies: add a case involving the `b` and a new `r` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46603
diff changeset
   565
  | o  r-2: rename t -> x
c7baff95808c test-copies: add a case involving the `b` and a new `r` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46603
diff changeset
   566
  | |
c7baff95808c test-copies: add a case involving the `b` and a new `r` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46603
diff changeset
   567
  | o  r-1: rename r -> x
c7baff95808c test-copies: add a case involving the `b` and a new `r` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46603
diff changeset
   568
  | |
c7baff95808c test-copies: add a case involving the `b` and a new `r` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46603
diff changeset
   569
  o |  b-1: b update
c7baff95808c test-copies: add a case involving the `b` and a new `r` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46603
diff changeset
   570
  |/
c7baff95808c test-copies: add a case involving the `b` and a new `r` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46603
diff changeset
   571
  o  i-2: c -move-> d, s -move-> t
c7baff95808c test-copies: add a case involving the `b` and a new `r` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46603
diff changeset
   572
  |
c7baff95808c test-copies: add a case involving the `b` and a new `r` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46603
diff changeset
   573
  o  i-1: a -move-> c, p -move-> s
c7baff95808c test-copies: add a case involving the `b` and a new `r` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46603
diff changeset
   574
  |
46649
d7d64b8c8229 tests: correct a commit description in test-copies-chain-merge.t
Martin von Zweigbergk <martinvonz@google.com>
parents: 46607
diff changeset
   575
  o  i-0 initial commit: a b h p q r
46604
c7baff95808c test-copies: add a case involving the `b` and a new `r` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46603
diff changeset
   576
  
c7baff95808c test-copies: add a case involving the `b` and a new `r` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46603
diff changeset
   577
45732
4ffe502673c3 copies: split creation of the graph and actual checking again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45704
diff changeset
   578
46590
f01696d45d1e test-copies: add subcase titles for various "conflicting" information variant
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46589
diff changeset
   579
Subcase: reset of the copy history on one side
f01696d45d1e test-copies: add subcase titles for various "conflicting" information variant
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46589
diff changeset
   580
``````````````````````````````````````````````
f01696d45d1e test-copies: add subcase titles for various "conflicting" information variant
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46589
diff changeset
   581
45732
4ffe502673c3 copies: split creation of the graph and actual checking again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45704
diff changeset
   582
Merge:
4ffe502673c3 copies: split creation of the graph and actual checking again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45704
diff changeset
   583
- one with change to a file
4ffe502673c3 copies: split creation of the graph and actual checking again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45704
diff changeset
   584
- one deleting and recreating the file
4ffe502673c3 copies: split creation of the graph and actual checking again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45704
diff changeset
   585
4ffe502673c3 copies: split creation of the graph and actual checking again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45704
diff changeset
   586
Unlike in the 'BD/DB' cases, an actual merge happened here. So we should
4ffe502673c3 copies: split creation of the graph and actual checking again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45704
diff changeset
   587
consider history and rename on both branch of the merge.
4ffe502673c3 copies: split creation of the graph and actual checking again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45704
diff changeset
   588
46584
1e96fdcc8bc1 test-copies: improve description of the D+G case
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46583
diff changeset
   589
  $ case_desc="actual content merge, copies on one side - D side: delete and re-add (different content), G side: update content"
46579
c9f502721783 test-copies: use intermediate variable some commit descriptions
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46578
diff changeset
   590
45732
4ffe502673c3 copies: split creation of the graph and actual checking again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45704
diff changeset
   591
  $ hg up 'desc("i-2")'
46603
a1273bea99cc test-copies: introduce case combining the `p` and `q` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46602
diff changeset
   592
  6 files updated, 0 files merged, 0 files removed, 0 files unresolved
45732
4ffe502673c3 copies: split creation of the graph and actual checking again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45704
diff changeset
   593
  $ echo "some update" >> d
4ffe502673c3 copies: split creation of the graph and actual checking again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45704
diff changeset
   594
  $ hg commit -m "g-1: update d"
4ffe502673c3 copies: split creation of the graph and actual checking again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45704
diff changeset
   595
  created new head
4ffe502673c3 copies: split creation of the graph and actual checking again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45704
diff changeset
   596
  $ hg up 'desc("d-2")'
4ffe502673c3 copies: split creation of the graph and actual checking again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45704
diff changeset
   597
  1 files updated, 0 files merged, 0 files removed, 0 files unresolved
4ffe502673c3 copies: split creation of the graph and actual checking again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45704
diff changeset
   598
  $ hg merge 'desc("g-1")' --tool :union
4ffe502673c3 copies: split creation of the graph and actual checking again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45704
diff changeset
   599
  merging d
4ffe502673c3 copies: split creation of the graph and actual checking again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45704
diff changeset
   600
  1 files updated, 0 files merged, 0 files removed, 0 files unresolved
4ffe502673c3 copies: split creation of the graph and actual checking again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45704
diff changeset
   601
  (branch merge, don't forget to commit)
46579
c9f502721783 test-copies: use intermediate variable some commit descriptions
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46578
diff changeset
   602
  $ hg ci -m "mDGm-0 $case_desc - one way"
45732
4ffe502673c3 copies: split creation of the graph and actual checking again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45704
diff changeset
   603
  $ hg up 'desc("g-1")'
4ffe502673c3 copies: split creation of the graph and actual checking again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45704
diff changeset
   604
  1 files updated, 0 files merged, 0 files removed, 0 files unresolved
4ffe502673c3 copies: split creation of the graph and actual checking again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45704
diff changeset
   605
  $ hg merge 'desc("d-2")' --tool :union
4ffe502673c3 copies: split creation of the graph and actual checking again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45704
diff changeset
   606
  merging d
4ffe502673c3 copies: split creation of the graph and actual checking again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45704
diff changeset
   607
  1 files updated, 0 files merged, 0 files removed, 0 files unresolved
4ffe502673c3 copies: split creation of the graph and actual checking again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45704
diff changeset
   608
  (branch merge, don't forget to commit)
46579
c9f502721783 test-copies: use intermediate variable some commit descriptions
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46578
diff changeset
   609
  $ hg ci -m "mGDm-0 $case_desc - the other way"
45732
4ffe502673c3 copies: split creation of the graph and actual checking again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45704
diff changeset
   610
  created new head
4ffe502673c3 copies: split creation of the graph and actual checking again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45704
diff changeset
   611
  $ hg log -G --rev '::(desc("mDGm")+desc("mGDm"))'
46594
74e2256a56b8 test-copies: remove revision number from log
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46593
diff changeset
   612
  @    mGDm-0 actual content merge, copies on one side - D side: delete and re-add (different content), G side: update content - the other way
45732
4ffe502673c3 copies: split creation of the graph and actual checking again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45704
diff changeset
   613
  |\
46594
74e2256a56b8 test-copies: remove revision number from log
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46593
diff changeset
   614
  +---o  mDGm-0 actual content merge, copies on one side - D side: delete and re-add (different content), G side: update content - one way
45732
4ffe502673c3 copies: split creation of the graph and actual checking again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45704
diff changeset
   615
  | |/
46594
74e2256a56b8 test-copies: remove revision number from log
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46593
diff changeset
   616
  | o  g-1: update d
45732
4ffe502673c3 copies: split creation of the graph and actual checking again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45704
diff changeset
   617
  | |
46594
74e2256a56b8 test-copies: remove revision number from log
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46593
diff changeset
   618
  o |  d-2 re-add d
45732
4ffe502673c3 copies: split creation of the graph and actual checking again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45704
diff changeset
   619
  | |
46594
74e2256a56b8 test-copies: remove revision number from log
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46593
diff changeset
   620
  o |  d-1 delete d
45732
4ffe502673c3 copies: split creation of the graph and actual checking again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45704
diff changeset
   621
  |/
46600
0ebfd02dafd5 test-copies: move the new files in the `i` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46599
diff changeset
   622
  o  i-2: c -move-> d, s -move-> t
45732
4ffe502673c3 copies: split creation of the graph and actual checking again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45704
diff changeset
   623
  |
46600
0ebfd02dafd5 test-copies: move the new files in the `i` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46599
diff changeset
   624
  o  i-1: a -move-> c, p -move-> s
45732
4ffe502673c3 copies: split creation of the graph and actual checking again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45704
diff changeset
   625
  |
46649
d7d64b8c8229 tests: correct a commit description in test-copies-chain-merge.t
Martin von Zweigbergk <martinvonz@google.com>
parents: 46607
diff changeset
   626
  o  i-0 initial commit: a b h p q r
45732
4ffe502673c3 copies: split creation of the graph and actual checking again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45704
diff changeset
   627
  
4ffe502673c3 copies: split creation of the graph and actual checking again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45704
diff changeset
   628
46590
f01696d45d1e test-copies: add subcase titles for various "conflicting" information variant
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46589
diff changeset
   629
Subcase: merging a change to a file with a "copy overwrite" to that file from another branch
f01696d45d1e test-copies: add subcase titles for various "conflicting" information variant
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46589
diff changeset
   630
````````````````````````````````````````````````````````````````````````````````````````````
45732
4ffe502673c3 copies: split creation of the graph and actual checking again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45704
diff changeset
   631
4ffe502673c3 copies: split creation of the graph and actual checking again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45704
diff changeset
   632
Merge:
4ffe502673c3 copies: split creation of the graph and actual checking again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45704
diff changeset
   633
- one with change to a file (d)
4ffe502673c3 copies: split creation of the graph and actual checking again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45704
diff changeset
   634
- one overwriting that file with a rename (from h to i, to d)
4ffe502673c3 copies: split creation of the graph and actual checking again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45704
diff changeset
   635
4ffe502673c3 copies: split creation of the graph and actual checking again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45704
diff changeset
   636
This case is similar to BF/FB, but an actual merge happens, so both side of the
4ffe502673c3 copies: split creation of the graph and actual checking again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45704
diff changeset
   637
history are relevant.
4ffe502673c3 copies: split creation of the graph and actual checking again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45704
diff changeset
   638
4ffe502673c3 copies: split creation of the graph and actual checking again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45704
diff changeset
   639
Note:
4ffe502673c3 copies: split creation of the graph and actual checking again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45704
diff changeset
   640
| In this case, the merge get conflicting information since on one side we have
4ffe502673c3 copies: split creation of the graph and actual checking again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45704
diff changeset
   641
| "a -> c -> d". and one the other one we have "h -> i -> d".
4ffe502673c3 copies: split creation of the graph and actual checking again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45704
diff changeset
   642
|
4ffe502673c3 copies: split creation of the graph and actual checking again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45704
diff changeset
   643
| The current code arbitrarily pick one side
4ffe502673c3 copies: split creation of the graph and actual checking again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45704
diff changeset
   644
46585
2f99dedf96b1 test-copies: improve description of the G+F case
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46584
diff changeset
   645
  $ case_desc="merge - G side: content change, F side: copy overwrite, no content change"
46579
c9f502721783 test-copies: use intermediate variable some commit descriptions
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46578
diff changeset
   646
45732
4ffe502673c3 copies: split creation of the graph and actual checking again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45704
diff changeset
   647
  $ hg up 'desc("f-2")'
4ffe502673c3 copies: split creation of the graph and actual checking again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45704
diff changeset
   648
  1 files updated, 0 files merged, 1 files removed, 0 files unresolved
4ffe502673c3 copies: split creation of the graph and actual checking again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45704
diff changeset
   649
  $ hg merge 'desc("g-1")' --tool :union
46577
018d622e814d test-copies: reinstall initial identical (empty) files for chained copied
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46538
diff changeset
   650
  merging d (no-changeset !)
018d622e814d test-copies: reinstall initial identical (empty) files for chained copied
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46538
diff changeset
   651
  0 files updated, 1 files merged, 0 files removed, 0 files unresolved (no-changeset !)
018d622e814d test-copies: reinstall initial identical (empty) files for chained copied
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46538
diff changeset
   652
  1 files updated, 0 files merged, 0 files removed, 0 files unresolved (changeset !)
45732
4ffe502673c3 copies: split creation of the graph and actual checking again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45704
diff changeset
   653
  (branch merge, don't forget to commit)
46579
c9f502721783 test-copies: use intermediate variable some commit descriptions
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46578
diff changeset
   654
  $ hg ci -m "mFGm-0 $case_desc - one way"
45732
4ffe502673c3 copies: split creation of the graph and actual checking again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45704
diff changeset
   655
  created new head
4ffe502673c3 copies: split creation of the graph and actual checking again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45704
diff changeset
   656
  $ hg up 'desc("g-1")'
46577
018d622e814d test-copies: reinstall initial identical (empty) files for chained copied
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46538
diff changeset
   657
  2 files updated, 0 files merged, 0 files removed, 0 files unresolved (no-changeset !)
018d622e814d test-copies: reinstall initial identical (empty) files for chained copied
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46538
diff changeset
   658
  1 files updated, 0 files merged, 0 files removed, 0 files unresolved (changeset !)
45732
4ffe502673c3 copies: split creation of the graph and actual checking again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45704
diff changeset
   659
  $ hg merge 'desc("f-2")' --tool :union
46577
018d622e814d test-copies: reinstall initial identical (empty) files for chained copied
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46538
diff changeset
   660
  merging d (no-changeset !)
018d622e814d test-copies: reinstall initial identical (empty) files for chained copied
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46538
diff changeset
   661
  0 files updated, 1 files merged, 1 files removed, 0 files unresolved (no-changeset !)
018d622e814d test-copies: reinstall initial identical (empty) files for chained copied
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46538
diff changeset
   662
  0 files updated, 0 files merged, 1 files removed, 0 files unresolved (changeset !)
45732
4ffe502673c3 copies: split creation of the graph and actual checking again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45704
diff changeset
   663
  (branch merge, don't forget to commit)
46579
c9f502721783 test-copies: use intermediate variable some commit descriptions
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46578
diff changeset
   664
  $ hg ci -m "mGFm-0 $case_desc - the other way"
45732
4ffe502673c3 copies: split creation of the graph and actual checking again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45704
diff changeset
   665
  created new head
4ffe502673c3 copies: split creation of the graph and actual checking again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45704
diff changeset
   666
  $ hg log -G --rev '::(desc("mGFm")+desc("mFGm"))'
46594
74e2256a56b8 test-copies: remove revision number from log
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46593
diff changeset
   667
  @    mGFm-0 merge - G side: content change, F side: copy overwrite, no content change - the other way
45732
4ffe502673c3 copies: split creation of the graph and actual checking again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45704
diff changeset
   668
  |\
46594
74e2256a56b8 test-copies: remove revision number from log
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46593
diff changeset
   669
  +---o  mFGm-0 merge - G side: content change, F side: copy overwrite, no content change - one way
45732
4ffe502673c3 copies: split creation of the graph and actual checking again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45704
diff changeset
   670
  | |/
46594
74e2256a56b8 test-copies: remove revision number from log
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46593
diff changeset
   671
  | o  g-1: update d
45732
4ffe502673c3 copies: split creation of the graph and actual checking again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45704
diff changeset
   672
  | |
46594
74e2256a56b8 test-copies: remove revision number from log
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46593
diff changeset
   673
  o |  f-2: rename i -> d
45732
4ffe502673c3 copies: split creation of the graph and actual checking again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45704
diff changeset
   674
  | |
46594
74e2256a56b8 test-copies: remove revision number from log
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46593
diff changeset
   675
  o |  f-1: rename h -> i
45732
4ffe502673c3 copies: split creation of the graph and actual checking again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45704
diff changeset
   676
  |/
46600
0ebfd02dafd5 test-copies: move the new files in the `i` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46599
diff changeset
   677
  o  i-2: c -move-> d, s -move-> t
45732
4ffe502673c3 copies: split creation of the graph and actual checking again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45704
diff changeset
   678
  |
46600
0ebfd02dafd5 test-copies: move the new files in the `i` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46599
diff changeset
   679
  o  i-1: a -move-> c, p -move-> s
45732
4ffe502673c3 copies: split creation of the graph and actual checking again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45704
diff changeset
   680
  |
46649
d7d64b8c8229 tests: correct a commit description in test-copies-chain-merge.t
Martin von Zweigbergk <martinvonz@google.com>
parents: 46607
diff changeset
   681
  o  i-0 initial commit: a b h p q r
45732
4ffe502673c3 copies: split creation of the graph and actual checking again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45704
diff changeset
   682
  
4ffe502673c3 copies: split creation of the graph and actual checking again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45704
diff changeset
   683
4ffe502673c3 copies: split creation of the graph and actual checking again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45704
diff changeset
   684
4ffe502673c3 copies: split creation of the graph and actual checking again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45704
diff changeset
   685
Comparing with merging with a deletion (and keeping the file)
4ffe502673c3 copies: split creation of the graph and actual checking again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45704
diff changeset
   686
-------------------------------------------------------------
4ffe502673c3 copies: split creation of the graph and actual checking again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45704
diff changeset
   687
4ffe502673c3 copies: split creation of the graph and actual checking again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45704
diff changeset
   688
Merge:
4ffe502673c3 copies: split creation of the graph and actual checking again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45704
diff changeset
   689
- one removing a file (d)
4ffe502673c3 copies: split creation of the graph and actual checking again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45704
diff changeset
   690
- one updating that file
4ffe502673c3 copies: split creation of the graph and actual checking again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45704
diff changeset
   691
- the merge keep the modified version of the file (canceling the delete)
4ffe502673c3 copies: split creation of the graph and actual checking again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45704
diff changeset
   692
4ffe502673c3 copies: split creation of the graph and actual checking again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45704
diff changeset
   693
In this case, the file keep on living after the merge. So we should not drop its
4ffe502673c3 copies: split creation of the graph and actual checking again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45704
diff changeset
   694
copy tracing chain.
4ffe502673c3 copies: split creation of the graph and actual checking again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45704
diff changeset
   695
46586
a1a06dca6941 test-copies: improve description of the G+C case
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46585
diff changeset
   696
  $ case_desc="merge updated/deleted - revive the file (updated content)"
a1a06dca6941 test-copies: improve description of the G+C case
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46585
diff changeset
   697
45732
4ffe502673c3 copies: split creation of the graph and actual checking again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45704
diff changeset
   698
  $ hg up 'desc("c-1")'
4ffe502673c3 copies: split creation of the graph and actual checking again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45704
diff changeset
   699
  1 files updated, 0 files merged, 1 files removed, 0 files unresolved
4ffe502673c3 copies: split creation of the graph and actual checking again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45704
diff changeset
   700
  $ hg merge 'desc("g-1")'
4ffe502673c3 copies: split creation of the graph and actual checking again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45704
diff changeset
   701
  file 'd' was deleted in local [working copy] but was modified in other [merge rev].
4ffe502673c3 copies: split creation of the graph and actual checking again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45704
diff changeset
   702
  You can use (c)hanged version, leave (d)eleted, or leave (u)nresolved.
4ffe502673c3 copies: split creation of the graph and actual checking again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45704
diff changeset
   703
  What do you want to do? u
4ffe502673c3 copies: split creation of the graph and actual checking again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45704
diff changeset
   704
  0 files updated, 0 files merged, 0 files removed, 1 files unresolved
4ffe502673c3 copies: split creation of the graph and actual checking again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45704
diff changeset
   705
  use 'hg resolve' to retry unresolved file merges or 'hg merge --abort' to abandon
4ffe502673c3 copies: split creation of the graph and actual checking again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45704
diff changeset
   706
  [1]
4ffe502673c3 copies: split creation of the graph and actual checking again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45704
diff changeset
   707
  $ hg resolve -t :other d
4ffe502673c3 copies: split creation of the graph and actual checking again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45704
diff changeset
   708
  (no more unresolved files)
46586
a1a06dca6941 test-copies: improve description of the G+C case
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46585
diff changeset
   709
  $ hg ci -m "mCGm-0 $case_desc - one way"
45732
4ffe502673c3 copies: split creation of the graph and actual checking again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45704
diff changeset
   710
  created new head
4ffe502673c3 copies: split creation of the graph and actual checking again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45704
diff changeset
   711
4ffe502673c3 copies: split creation of the graph and actual checking again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45704
diff changeset
   712
  $ hg up 'desc("g-1")'
4ffe502673c3 copies: split creation of the graph and actual checking again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45704
diff changeset
   713
  0 files updated, 0 files merged, 0 files removed, 0 files unresolved
4ffe502673c3 copies: split creation of the graph and actual checking again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45704
diff changeset
   714
  $ hg merge 'desc("c-1")'
4ffe502673c3 copies: split creation of the graph and actual checking again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45704
diff changeset
   715
  file 'd' was deleted in other [merge rev] but was modified in local [working copy].
4ffe502673c3 copies: split creation of the graph and actual checking again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45704
diff changeset
   716
  You can use (c)hanged version, (d)elete, or leave (u)nresolved.
4ffe502673c3 copies: split creation of the graph and actual checking again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45704
diff changeset
   717
  What do you want to do? u
4ffe502673c3 copies: split creation of the graph and actual checking again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45704
diff changeset
   718
  0 files updated, 0 files merged, 0 files removed, 1 files unresolved
4ffe502673c3 copies: split creation of the graph and actual checking again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45704
diff changeset
   719
  use 'hg resolve' to retry unresolved file merges or 'hg merge --abort' to abandon
4ffe502673c3 copies: split creation of the graph and actual checking again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45704
diff changeset
   720
  [1]
4ffe502673c3 copies: split creation of the graph and actual checking again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45704
diff changeset
   721
  $ hg resolve -t :local d
4ffe502673c3 copies: split creation of the graph and actual checking again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45704
diff changeset
   722
  (no more unresolved files)
46586
a1a06dca6941 test-copies: improve description of the G+C case
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46585
diff changeset
   723
  $ hg ci -m "mGCm-0 $case_desc - the other way"
45732
4ffe502673c3 copies: split creation of the graph and actual checking again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45704
diff changeset
   724
  created new head
4ffe502673c3 copies: split creation of the graph and actual checking again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45704
diff changeset
   725
4ffe502673c3 copies: split creation of the graph and actual checking again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45704
diff changeset
   726
  $ hg log -G --rev '::(desc("mCGm")+desc("mGCm"))'
46594
74e2256a56b8 test-copies: remove revision number from log
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46593
diff changeset
   727
  @    mGCm-0 merge updated/deleted - revive the file (updated content) - the other way
45732
4ffe502673c3 copies: split creation of the graph and actual checking again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45704
diff changeset
   728
  |\
46594
74e2256a56b8 test-copies: remove revision number from log
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46593
diff changeset
   729
  +---o  mCGm-0 merge updated/deleted - revive the file (updated content) - one way
45732
4ffe502673c3 copies: split creation of the graph and actual checking again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45704
diff changeset
   730
  | |/
46594
74e2256a56b8 test-copies: remove revision number from log
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46593
diff changeset
   731
  | o  g-1: update d
45732
4ffe502673c3 copies: split creation of the graph and actual checking again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45704
diff changeset
   732
  | |
46594
74e2256a56b8 test-copies: remove revision number from log
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46593
diff changeset
   733
  o |  c-1 delete d
45732
4ffe502673c3 copies: split creation of the graph and actual checking again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45704
diff changeset
   734
  |/
46600
0ebfd02dafd5 test-copies: move the new files in the `i` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46599
diff changeset
   735
  o  i-2: c -move-> d, s -move-> t
45732
4ffe502673c3 copies: split creation of the graph and actual checking again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45704
diff changeset
   736
  |
46600
0ebfd02dafd5 test-copies: move the new files in the `i` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46599
diff changeset
   737
  o  i-1: a -move-> c, p -move-> s
45732
4ffe502673c3 copies: split creation of the graph and actual checking again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45704
diff changeset
   738
  |
46649
d7d64b8c8229 tests: correct a commit description in test-copies-chain-merge.t
Martin von Zweigbergk <martinvonz@google.com>
parents: 46607
diff changeset
   739
  o  i-0 initial commit: a b h p q r
45732
4ffe502673c3 copies: split creation of the graph and actual checking again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45704
diff changeset
   740
  
4ffe502673c3 copies: split creation of the graph and actual checking again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45704
diff changeset
   741
4ffe502673c3 copies: split creation of the graph and actual checking again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45704
diff changeset
   742
4ffe502673c3 copies: split creation of the graph and actual checking again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45704
diff changeset
   743
4ffe502673c3 copies: split creation of the graph and actual checking again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45704
diff changeset
   744
Comparing with merge restoring an untouched deleted file
4ffe502673c3 copies: split creation of the graph and actual checking again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45704
diff changeset
   745
--------------------------------------------------------
4ffe502673c3 copies: split creation of the graph and actual checking again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45704
diff changeset
   746
4ffe502673c3 copies: split creation of the graph and actual checking again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45704
diff changeset
   747
Merge:
4ffe502673c3 copies: split creation of the graph and actual checking again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45704
diff changeset
   748
- one removing a file (d)
4ffe502673c3 copies: split creation of the graph and actual checking again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45704
diff changeset
   749
- one leaving the file untouched
4ffe502673c3 copies: split creation of the graph and actual checking again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45704
diff changeset
   750
- the merge actively restore the file to the same content.
4ffe502673c3 copies: split creation of the graph and actual checking again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45704
diff changeset
   751
4ffe502673c3 copies: split creation of the graph and actual checking again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45704
diff changeset
   752
In this case, the file keep on living after the merge. So we should not drop its
4ffe502673c3 copies: split creation of the graph and actual checking again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45704
diff changeset
   753
copy tracing chain.
4ffe502673c3 copies: split creation of the graph and actual checking again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45704
diff changeset
   754
46587
311a18777f45 test-copies: improve description of the B+C "revert/restore" case
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46586
diff changeset
   755
  $ case_desc="merge explicitely revive deleted file - B side: unrelated change, C side: delete d (restored by merge)"
311a18777f45 test-copies: improve description of the B+C "revert/restore" case
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46586
diff changeset
   756
45732
4ffe502673c3 copies: split creation of the graph and actual checking again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45704
diff changeset
   757
  $ hg up 'desc("c-1")'
4ffe502673c3 copies: split creation of the graph and actual checking again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45704
diff changeset
   758
  0 files updated, 0 files merged, 1 files removed, 0 files unresolved
4ffe502673c3 copies: split creation of the graph and actual checking again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45704
diff changeset
   759
  $ hg merge 'desc("b-1")'
4ffe502673c3 copies: split creation of the graph and actual checking again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45704
diff changeset
   760
  1 files updated, 0 files merged, 0 files removed, 0 files unresolved
4ffe502673c3 copies: split creation of the graph and actual checking again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45704
diff changeset
   761
  (branch merge, don't forget to commit)
4ffe502673c3 copies: split creation of the graph and actual checking again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45704
diff changeset
   762
  $ hg revert --rev 'desc("b-1")' d
46587
311a18777f45 test-copies: improve description of the B+C "revert/restore" case
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46586
diff changeset
   763
  $ hg ci -m "mCB-revert-m-0 $case_desc - one way"
45732
4ffe502673c3 copies: split creation of the graph and actual checking again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45704
diff changeset
   764
  created new head
4ffe502673c3 copies: split creation of the graph and actual checking again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45704
diff changeset
   765
4ffe502673c3 copies: split creation of the graph and actual checking again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45704
diff changeset
   766
  $ hg up 'desc("b-1")'
4ffe502673c3 copies: split creation of the graph and actual checking again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45704
diff changeset
   767
  0 files updated, 0 files merged, 0 files removed, 0 files unresolved
4ffe502673c3 copies: split creation of the graph and actual checking again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45704
diff changeset
   768
  $ hg merge 'desc("c-1")'
4ffe502673c3 copies: split creation of the graph and actual checking again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45704
diff changeset
   769
  0 files updated, 0 files merged, 1 files removed, 0 files unresolved
4ffe502673c3 copies: split creation of the graph and actual checking again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45704
diff changeset
   770
  (branch merge, don't forget to commit)
4ffe502673c3 copies: split creation of the graph and actual checking again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45704
diff changeset
   771
  $ hg revert --rev 'desc("b-1")' d
46587
311a18777f45 test-copies: improve description of the B+C "revert/restore" case
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46586
diff changeset
   772
  $ hg ci -m "mBC-revert-m-0 $case_desc - the other way"
45732
4ffe502673c3 copies: split creation of the graph and actual checking again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45704
diff changeset
   773
  created new head
4ffe502673c3 copies: split creation of the graph and actual checking again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45704
diff changeset
   774
4ffe502673c3 copies: split creation of the graph and actual checking again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45704
diff changeset
   775
  $ hg log -G --rev '::(desc("mCB-revert-m")+desc("mBC-revert-m"))'
46594
74e2256a56b8 test-copies: remove revision number from log
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46593
diff changeset
   776
  @    mBC-revert-m-0 merge explicitely revive deleted file - B side: unrelated change, C side: delete d (restored by merge) - the other way
45732
4ffe502673c3 copies: split creation of the graph and actual checking again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45704
diff changeset
   777
  |\
46594
74e2256a56b8 test-copies: remove revision number from log
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46593
diff changeset
   778
  +---o  mCB-revert-m-0 merge explicitely revive deleted file - B side: unrelated change, C side: delete d (restored by merge) - one way
45732
4ffe502673c3 copies: split creation of the graph and actual checking again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45704
diff changeset
   779
  | |/
46594
74e2256a56b8 test-copies: remove revision number from log
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46593
diff changeset
   780
  | o  c-1 delete d
45732
4ffe502673c3 copies: split creation of the graph and actual checking again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45704
diff changeset
   781
  | |
46594
74e2256a56b8 test-copies: remove revision number from log
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46593
diff changeset
   782
  o |  b-1: b update
45732
4ffe502673c3 copies: split creation of the graph and actual checking again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45704
diff changeset
   783
  |/
46600
0ebfd02dafd5 test-copies: move the new files in the `i` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46599
diff changeset
   784
  o  i-2: c -move-> d, s -move-> t
45732
4ffe502673c3 copies: split creation of the graph and actual checking again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45704
diff changeset
   785
  |
46600
0ebfd02dafd5 test-copies: move the new files in the `i` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46599
diff changeset
   786
  o  i-1: a -move-> c, p -move-> s
45732
4ffe502673c3 copies: split creation of the graph and actual checking again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45704
diff changeset
   787
  |
46649
d7d64b8c8229 tests: correct a commit description in test-copies-chain-merge.t
Martin von Zweigbergk <martinvonz@google.com>
parents: 46607
diff changeset
   788
  o  i-0 initial commit: a b h p q r
45732
4ffe502673c3 copies: split creation of the graph and actual checking again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45704
diff changeset
   789
  
4ffe502673c3 copies: split creation of the graph and actual checking again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45704
diff changeset
   790
4ffe502673c3 copies: split creation of the graph and actual checking again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45704
diff changeset
   791
4ffe502673c3 copies: split creation of the graph and actual checking again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45704
diff changeset
   792
  $ hg up null --quiet
4ffe502673c3 copies: split creation of the graph and actual checking again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45704
diff changeset
   793
45821
ff7e0ca666e8 copies: make sure deleted copy info do not overwriting unrelated ones
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45801
diff changeset
   794
Merging a branch where a rename was deleted with a branch where the same file was renamed
ff7e0ca666e8 copies: make sure deleted copy info do not overwriting unrelated ones
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45801
diff changeset
   795
------------------------------------------------------------------------------------------
ff7e0ca666e8 copies: make sure deleted copy info do not overwriting unrelated ones
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45801
diff changeset
   796
ff7e0ca666e8 copies: make sure deleted copy info do not overwriting unrelated ones
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45801
diff changeset
   797
Create a "conflicting" merge where `d` get removed on one branch before its
ff7e0ca666e8 copies: make sure deleted copy info do not overwriting unrelated ones
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45801
diff changeset
   798
rename information actually conflict with the other branch.
ff7e0ca666e8 copies: make sure deleted copy info do not overwriting unrelated ones
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45801
diff changeset
   799
ff7e0ca666e8 copies: make sure deleted copy info do not overwriting unrelated ones
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45801
diff changeset
   800
(the copy information from the branch that was not deleted should win).
ff7e0ca666e8 copies: make sure deleted copy info do not overwriting unrelated ones
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45801
diff changeset
   801
46588
60c52bdb1784 test-copies: improve description of the C+H case
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46587
diff changeset
   802
  $ case_desc="simple merge - C side: d is the results of renames then deleted, H side: d is result of another rename (same content as the other branch)"
60c52bdb1784 test-copies: improve description of the C+H case
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46587
diff changeset
   803
45821
ff7e0ca666e8 copies: make sure deleted copy info do not overwriting unrelated ones
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45801
diff changeset
   804
  $ hg up 'desc("i-0")'
46599
46205a478a08 test-copies: add 3 new files with their own content
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46598
diff changeset
   805
  6 files updated, 0 files merged, 0 files removed, 0 files unresolved
45821
ff7e0ca666e8 copies: make sure deleted copy info do not overwriting unrelated ones
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45801
diff changeset
   806
  $ hg mv b d
ff7e0ca666e8 copies: make sure deleted copy info do not overwriting unrelated ones
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45801
diff changeset
   807
  $ hg ci -m "h-1: b -(move)-> d"
ff7e0ca666e8 copies: make sure deleted copy info do not overwriting unrelated ones
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45801
diff changeset
   808
  created new head
ff7e0ca666e8 copies: make sure deleted copy info do not overwriting unrelated ones
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45801
diff changeset
   809
ff7e0ca666e8 copies: make sure deleted copy info do not overwriting unrelated ones
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45801
diff changeset
   810
  $ hg up 'desc("c-1")'
46600
0ebfd02dafd5 test-copies: move the new files in the `i` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46599
diff changeset
   811
  2 files updated, 0 files merged, 3 files removed, 0 files unresolved
45821
ff7e0ca666e8 copies: make sure deleted copy info do not overwriting unrelated ones
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45801
diff changeset
   812
  $ hg merge 'desc("h-1")'
ff7e0ca666e8 copies: make sure deleted copy info do not overwriting unrelated ones
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45801
diff changeset
   813
  1 files updated, 0 files merged, 1 files removed, 0 files unresolved
ff7e0ca666e8 copies: make sure deleted copy info do not overwriting unrelated ones
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45801
diff changeset
   814
  (branch merge, don't forget to commit)
46588
60c52bdb1784 test-copies: improve description of the C+H case
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46587
diff changeset
   815
  $ hg ci -m "mCH-delete-before-conflict-m-0 $case_desc - one way"
45821
ff7e0ca666e8 copies: make sure deleted copy info do not overwriting unrelated ones
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45801
diff changeset
   816
ff7e0ca666e8 copies: make sure deleted copy info do not overwriting unrelated ones
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45801
diff changeset
   817
  $ hg up 'desc("h-1")'
46600
0ebfd02dafd5 test-copies: move the new files in the `i` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46599
diff changeset
   818
  2 files updated, 0 files merged, 1 files removed, 0 files unresolved
45821
ff7e0ca666e8 copies: make sure deleted copy info do not overwriting unrelated ones
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45801
diff changeset
   819
  $ hg merge 'desc("c-1")'
46600
0ebfd02dafd5 test-copies: move the new files in the `i` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46599
diff changeset
   820
  1 files updated, 0 files merged, 2 files removed, 0 files unresolved
45821
ff7e0ca666e8 copies: make sure deleted copy info do not overwriting unrelated ones
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45801
diff changeset
   821
  (branch merge, don't forget to commit)
46588
60c52bdb1784 test-copies: improve description of the C+H case
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46587
diff changeset
   822
  $ hg ci -m "mHC-delete-before-conflict-m-0 $case_desc - the other way"
45821
ff7e0ca666e8 copies: make sure deleted copy info do not overwriting unrelated ones
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45801
diff changeset
   823
  created new head
ff7e0ca666e8 copies: make sure deleted copy info do not overwriting unrelated ones
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45801
diff changeset
   824
  $ hg log -G --rev '::(desc("mCH-delete-before-conflict-m")+desc("mHC-delete-before-conflict-m"))'
46594
74e2256a56b8 test-copies: remove revision number from log
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46593
diff changeset
   825
  @    mHC-delete-before-conflict-m-0 simple merge - C side: d is the results of renames then deleted, H side: d is result of another rename (same content as the other branch) - the other way
45821
ff7e0ca666e8 copies: make sure deleted copy info do not overwriting unrelated ones
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45801
diff changeset
   826
  |\
46594
74e2256a56b8 test-copies: remove revision number from log
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46593
diff changeset
   827
  +---o  mCH-delete-before-conflict-m-0 simple merge - C side: d is the results of renames then deleted, H side: d is result of another rename (same content as the other branch) - one way
45821
ff7e0ca666e8 copies: make sure deleted copy info do not overwriting unrelated ones
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45801
diff changeset
   828
  | |/
46594
74e2256a56b8 test-copies: remove revision number from log
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46593
diff changeset
   829
  | o  h-1: b -(move)-> d
45821
ff7e0ca666e8 copies: make sure deleted copy info do not overwriting unrelated ones
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45801
diff changeset
   830
  | |
46594
74e2256a56b8 test-copies: remove revision number from log
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46593
diff changeset
   831
  o |  c-1 delete d
45821
ff7e0ca666e8 copies: make sure deleted copy info do not overwriting unrelated ones
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45801
diff changeset
   832
  | |
46600
0ebfd02dafd5 test-copies: move the new files in the `i` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46599
diff changeset
   833
  o |  i-2: c -move-> d, s -move-> t
45821
ff7e0ca666e8 copies: make sure deleted copy info do not overwriting unrelated ones
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45801
diff changeset
   834
  | |
46600
0ebfd02dafd5 test-copies: move the new files in the `i` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46599
diff changeset
   835
  o |  i-1: a -move-> c, p -move-> s
45821
ff7e0ca666e8 copies: make sure deleted copy info do not overwriting unrelated ones
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45801
diff changeset
   836
  |/
46649
d7d64b8c8229 tests: correct a commit description in test-copies-chain-merge.t
Martin von Zweigbergk <martinvonz@google.com>
parents: 46607
diff changeset
   837
  o  i-0 initial commit: a b h p q r
45821
ff7e0ca666e8 copies: make sure deleted copy info do not overwriting unrelated ones
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45801
diff changeset
   838
  
ff7e0ca666e8 copies: make sure deleted copy info do not overwriting unrelated ones
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45801
diff changeset
   839
46597
3aef76c3fd38 test-copies: add a "change during merge" variant to the A+E test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46596
diff changeset
   840
Variant of previous with extra changes introduced by the merge
3aef76c3fd38 test-copies: add a "change during merge" variant to the A+E test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46596
diff changeset
   841
--------------------------------------------------------------
3aef76c3fd38 test-copies: add a "change during merge" variant to the A+E test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46596
diff changeset
   842
3aef76c3fd38 test-copies: add a "change during merge" variant to the A+E test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46596
diff changeset
   843
Multiple cases above explicitely test cases where content are the same on both side during merge. In this section we will introduce variants for theses cases where new change are introduced to these file content during the merges.
3aef76c3fd38 test-copies: add a "change during merge" variant to the A+E test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46596
diff changeset
   844
3aef76c3fd38 test-copies: add a "change during merge" variant to the A+E test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46596
diff changeset
   845
3aef76c3fd38 test-copies: add a "change during merge" variant to the A+E test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46596
diff changeset
   846
Subcase: merge has same initial content on both side, but merge introduced a change
3aef76c3fd38 test-copies: add a "change during merge" variant to the A+E test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46596
diff changeset
   847
```````````````````````````````````````````````````````````````````````````````````
3aef76c3fd38 test-copies: add a "change during merge" variant to the A+E test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46596
diff changeset
   848
3aef76c3fd38 test-copies: add a "change during merge" variant to the A+E test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46596
diff changeset
   849
Same as `mAEm` and `mEAm` but with extra change to the file before commiting
3aef76c3fd38 test-copies: add a "change during merge" variant to the A+E test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46596
diff changeset
   850
3aef76c3fd38 test-copies: add a "change during merge" variant to the A+E test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46596
diff changeset
   851
- the "e-" branch renaming b to f (through 'g')
3aef76c3fd38 test-copies: add a "change during merge" variant to the A+E test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46596
diff changeset
   852
- the "a-" branch renaming d to f (through e)
3aef76c3fd38 test-copies: add a "change during merge" variant to the A+E test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46596
diff changeset
   853
3aef76c3fd38 test-copies: add a "change during merge" variant to the A+E test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46596
diff changeset
   854
  $ case_desc="merge with file update and copies info on both side - A side: rename d to f, E side: b to f, (same content for f in parent)"
3aef76c3fd38 test-copies: add a "change during merge" variant to the A+E test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46596
diff changeset
   855
3aef76c3fd38 test-copies: add a "change during merge" variant to the A+E test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46596
diff changeset
   856
  $ hg up 'desc("a-2")'
3aef76c3fd38 test-copies: add a "change during merge" variant to the A+E test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46596
diff changeset
   857
  2 files updated, 0 files merged, 1 files removed, 0 files unresolved
3aef76c3fd38 test-copies: add a "change during merge" variant to the A+E test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46596
diff changeset
   858
  $ hg merge 'desc("e-2")'
3aef76c3fd38 test-copies: add a "change during merge" variant to the A+E test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46596
diff changeset
   859
  1 files updated, 0 files merged, 1 files removed, 0 files unresolved (no-changeset !)
3aef76c3fd38 test-copies: add a "change during merge" variant to the A+E test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46596
diff changeset
   860
  0 files updated, 0 files merged, 1 files removed, 0 files unresolved (changeset !)
3aef76c3fd38 test-copies: add a "change during merge" variant to the A+E test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46596
diff changeset
   861
  (branch merge, don't forget to commit)
3aef76c3fd38 test-copies: add a "change during merge" variant to the A+E test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46596
diff changeset
   862
  $ echo "content change for mAE-change-m" > f
3aef76c3fd38 test-copies: add a "change during merge" variant to the A+E test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46596
diff changeset
   863
  $ hg ci -m "mAE-change-m-0 $case_desc - one way"
3aef76c3fd38 test-copies: add a "change during merge" variant to the A+E test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46596
diff changeset
   864
  created new head
3aef76c3fd38 test-copies: add a "change during merge" variant to the A+E test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46596
diff changeset
   865
  $ hg up 'desc("e-2")'
3aef76c3fd38 test-copies: add a "change during merge" variant to the A+E test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46596
diff changeset
   866
  2 files updated, 0 files merged, 0 files removed, 0 files unresolved
3aef76c3fd38 test-copies: add a "change during merge" variant to the A+E test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46596
diff changeset
   867
  $ hg merge 'desc("a-2")'
3aef76c3fd38 test-copies: add a "change during merge" variant to the A+E test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46596
diff changeset
   868
  1 files updated, 0 files merged, 1 files removed, 0 files unresolved (no-changeset !)
3aef76c3fd38 test-copies: add a "change during merge" variant to the A+E test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46596
diff changeset
   869
  0 files updated, 0 files merged, 1 files removed, 0 files unresolved (changeset !)
3aef76c3fd38 test-copies: add a "change during merge" variant to the A+E test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46596
diff changeset
   870
  (branch merge, don't forget to commit)
3aef76c3fd38 test-copies: add a "change during merge" variant to the A+E test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46596
diff changeset
   871
  $ echo "content change for mEA-change-m" > f
3aef76c3fd38 test-copies: add a "change during merge" variant to the A+E test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46596
diff changeset
   872
  $ hg ci -m "mEA-change-m-0 $case_desc - the other way"
3aef76c3fd38 test-copies: add a "change during merge" variant to the A+E test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46596
diff changeset
   873
  created new head
3aef76c3fd38 test-copies: add a "change during merge" variant to the A+E test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46596
diff changeset
   874
  $ hg log -G --rev '::(desc("mAE-change-m")+desc("mEA-change-m"))'
3aef76c3fd38 test-copies: add a "change during merge" variant to the A+E test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46596
diff changeset
   875
  @    mEA-change-m-0 merge with file update and copies info on both side - A side: rename d to f, E side: b to f, (same content for f in parent) - the other way
3aef76c3fd38 test-copies: add a "change during merge" variant to the A+E test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46596
diff changeset
   876
  |\
3aef76c3fd38 test-copies: add a "change during merge" variant to the A+E test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46596
diff changeset
   877
  +---o  mAE-change-m-0 merge with file update and copies info on both side - A side: rename d to f, E side: b to f, (same content for f in parent) - one way
3aef76c3fd38 test-copies: add a "change during merge" variant to the A+E test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46596
diff changeset
   878
  | |/
3aef76c3fd38 test-copies: add a "change during merge" variant to the A+E test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46596
diff changeset
   879
  | o  e-2 g -move-> f
3aef76c3fd38 test-copies: add a "change during merge" variant to the A+E test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46596
diff changeset
   880
  | |
3aef76c3fd38 test-copies: add a "change during merge" variant to the A+E test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46596
diff changeset
   881
  | o  e-1 b -move-> g
3aef76c3fd38 test-copies: add a "change during merge" variant to the A+E test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46596
diff changeset
   882
  | |
3aef76c3fd38 test-copies: add a "change during merge" variant to the A+E test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46596
diff changeset
   883
  o |  a-2: e -move-> f
3aef76c3fd38 test-copies: add a "change during merge" variant to the A+E test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46596
diff changeset
   884
  | |
3aef76c3fd38 test-copies: add a "change during merge" variant to the A+E test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46596
diff changeset
   885
  o |  a-1: d -move-> e
3aef76c3fd38 test-copies: add a "change during merge" variant to the A+E test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46596
diff changeset
   886
  |/
46600
0ebfd02dafd5 test-copies: move the new files in the `i` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46599
diff changeset
   887
  o  i-2: c -move-> d, s -move-> t
46597
3aef76c3fd38 test-copies: add a "change during merge" variant to the A+E test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46596
diff changeset
   888
  |
46600
0ebfd02dafd5 test-copies: move the new files in the `i` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46599
diff changeset
   889
  o  i-1: a -move-> c, p -move-> s
46597
3aef76c3fd38 test-copies: add a "change during merge" variant to the A+E test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46596
diff changeset
   890
  |
46649
d7d64b8c8229 tests: correct a commit description in test-copies-chain-merge.t
Martin von Zweigbergk <martinvonz@google.com>
parents: 46607
diff changeset
   891
  o  i-0 initial commit: a b h p q r
46597
3aef76c3fd38 test-copies: add a "change during merge" variant to the A+E test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46596
diff changeset
   892
  
3aef76c3fd38 test-copies: add a "change during merge" variant to the A+E test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46596
diff changeset
   893
46591
fbc466484fc3 test-copies: add test chaining multiple merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46590
diff changeset
   894
Decision from previous merge are properly chained with later merge
fbc466484fc3 test-copies: add test chaining multiple merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46590
diff changeset
   895
------------------------------------------------------------------
fbc466484fc3 test-copies: add test chaining multiple merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46590
diff changeset
   896
fbc466484fc3 test-copies: add test chaining multiple merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46590
diff changeset
   897
Subcase: chaining conflicting rename resolution
fbc466484fc3 test-copies: add test chaining multiple merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46590
diff changeset
   898
```````````````````````````````````````````````
fbc466484fc3 test-copies: add test chaining multiple merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46590
diff changeset
   899
fbc466484fc3 test-copies: add test chaining multiple merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46590
diff changeset
   900
The "mAEm" and "mEAm" case create a rename tracking conflict on file 'f'. We
fbc466484fc3 test-copies: add test chaining multiple merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46590
diff changeset
   901
add more change on the respective branch and merge again. These second merge
fbc466484fc3 test-copies: add test chaining multiple merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46590
diff changeset
   902
does not involve the file 'f' and the arbitration done within "mAEm" and "mEA"
fbc466484fc3 test-copies: add test chaining multiple merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46590
diff changeset
   903
about that file should stay unchanged.
fbc466484fc3 test-copies: add test chaining multiple merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46590
diff changeset
   904
fbc466484fc3 test-copies: add test chaining multiple merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46590
diff changeset
   905
  $ case_desc="chained merges (conflict -> simple) - same content everywhere"
fbc466484fc3 test-copies: add test chaining multiple merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46590
diff changeset
   906
fbc466484fc3 test-copies: add test chaining multiple merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46590
diff changeset
   907
(extra unrelated changes)
fbc466484fc3 test-copies: add test chaining multiple merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46590
diff changeset
   908
fbc466484fc3 test-copies: add test chaining multiple merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46590
diff changeset
   909
  $ hg up 'desc("a-2")'
46597
3aef76c3fd38 test-copies: add a "change during merge" variant to the A+E test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46596
diff changeset
   910
  2 files updated, 0 files merged, 0 files removed, 0 files unresolved
46591
fbc466484fc3 test-copies: add test chaining multiple merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46590
diff changeset
   911
  $ echo j > unrelated-j
fbc466484fc3 test-copies: add test chaining multiple merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46590
diff changeset
   912
  $ hg add unrelated-j
fbc466484fc3 test-copies: add test chaining multiple merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46590
diff changeset
   913
  $ hg ci -m 'j-1: unrelated changes (based on the "a" series of changes)'
fbc466484fc3 test-copies: add test chaining multiple merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46590
diff changeset
   914
  created new head
fbc466484fc3 test-copies: add test chaining multiple merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46590
diff changeset
   915
fbc466484fc3 test-copies: add test chaining multiple merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46590
diff changeset
   916
  $ hg up 'desc("e-2")'
fbc466484fc3 test-copies: add test chaining multiple merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46590
diff changeset
   917
  2 files updated, 0 files merged, 2 files removed, 0 files unresolved (no-changeset !)
fbc466484fc3 test-copies: add test chaining multiple merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46590
diff changeset
   918
  1 files updated, 0 files merged, 2 files removed, 0 files unresolved (changeset !)
fbc466484fc3 test-copies: add test chaining multiple merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46590
diff changeset
   919
  $ echo k > unrelated-k
fbc466484fc3 test-copies: add test chaining multiple merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46590
diff changeset
   920
  $ hg add unrelated-k
fbc466484fc3 test-copies: add test chaining multiple merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46590
diff changeset
   921
  $ hg ci -m 'k-1: unrelated changes (based on "e" changes)'
fbc466484fc3 test-copies: add test chaining multiple merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46590
diff changeset
   922
  created new head
fbc466484fc3 test-copies: add test chaining multiple merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46590
diff changeset
   923
fbc466484fc3 test-copies: add test chaining multiple merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46590
diff changeset
   924
(merge variant 1)
fbc466484fc3 test-copies: add test chaining multiple merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46590
diff changeset
   925
fbc466484fc3 test-copies: add test chaining multiple merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46590
diff changeset
   926
  $ hg up 'desc("mAEm")'
fbc466484fc3 test-copies: add test chaining multiple merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46590
diff changeset
   927
  1 files updated, 0 files merged, 2 files removed, 0 files unresolved (no-changeset !)
fbc466484fc3 test-copies: add test chaining multiple merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46590
diff changeset
   928
  0 files updated, 0 files merged, 2 files removed, 0 files unresolved (changeset !)
fbc466484fc3 test-copies: add test chaining multiple merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46590
diff changeset
   929
  $ hg merge 'desc("k-1")'
fbc466484fc3 test-copies: add test chaining multiple merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46590
diff changeset
   930
  1 files updated, 0 files merged, 0 files removed, 0 files unresolved
fbc466484fc3 test-copies: add test chaining multiple merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46590
diff changeset
   931
  (branch merge, don't forget to commit)
fbc466484fc3 test-copies: add test chaining multiple merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46590
diff changeset
   932
  $ hg ci -m "mAE,Km: $case_desc"
fbc466484fc3 test-copies: add test chaining multiple merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46590
diff changeset
   933
fbc466484fc3 test-copies: add test chaining multiple merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46590
diff changeset
   934
(merge variant 2)
fbc466484fc3 test-copies: add test chaining multiple merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46590
diff changeset
   935
fbc466484fc3 test-copies: add test chaining multiple merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46590
diff changeset
   936
  $ hg up 'desc("k-1")'
fbc466484fc3 test-copies: add test chaining multiple merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46590
diff changeset
   937
  2 files updated, 0 files merged, 0 files removed, 0 files unresolved (no-changeset !)
fbc466484fc3 test-copies: add test chaining multiple merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46590
diff changeset
   938
  1 files updated, 0 files merged, 0 files removed, 0 files unresolved (changeset !)
fbc466484fc3 test-copies: add test chaining multiple merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46590
diff changeset
   939
fbc466484fc3 test-copies: add test chaining multiple merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46590
diff changeset
   940
  $ hg merge 'desc("mAEm")'
fbc466484fc3 test-copies: add test chaining multiple merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46590
diff changeset
   941
  1 files updated, 0 files merged, 1 files removed, 0 files unresolved (no-changeset !)
fbc466484fc3 test-copies: add test chaining multiple merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46590
diff changeset
   942
  0 files updated, 0 files merged, 1 files removed, 0 files unresolved (changeset !)
fbc466484fc3 test-copies: add test chaining multiple merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46590
diff changeset
   943
  (branch merge, don't forget to commit)
fbc466484fc3 test-copies: add test chaining multiple merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46590
diff changeset
   944
  $ hg ci -m "mK,AEm: $case_desc"
fbc466484fc3 test-copies: add test chaining multiple merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46590
diff changeset
   945
  created new head
fbc466484fc3 test-copies: add test chaining multiple merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46590
diff changeset
   946
fbc466484fc3 test-copies: add test chaining multiple merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46590
diff changeset
   947
(merge variant 3)
fbc466484fc3 test-copies: add test chaining multiple merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46590
diff changeset
   948
fbc466484fc3 test-copies: add test chaining multiple merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46590
diff changeset
   949
  $ hg up 'desc("mEAm")'
fbc466484fc3 test-copies: add test chaining multiple merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46590
diff changeset
   950
  0 files updated, 0 files merged, 1 files removed, 0 files unresolved
fbc466484fc3 test-copies: add test chaining multiple merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46590
diff changeset
   951
  $ hg merge 'desc("j-1")'
fbc466484fc3 test-copies: add test chaining multiple merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46590
diff changeset
   952
  1 files updated, 0 files merged, 0 files removed, 0 files unresolved
fbc466484fc3 test-copies: add test chaining multiple merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46590
diff changeset
   953
  (branch merge, don't forget to commit)
fbc466484fc3 test-copies: add test chaining multiple merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46590
diff changeset
   954
  $ hg ci -m "mEA,Jm: $case_desc"
fbc466484fc3 test-copies: add test chaining multiple merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46590
diff changeset
   955
fbc466484fc3 test-copies: add test chaining multiple merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46590
diff changeset
   956
(merge variant 4)
fbc466484fc3 test-copies: add test chaining multiple merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46590
diff changeset
   957
fbc466484fc3 test-copies: add test chaining multiple merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46590
diff changeset
   958
  $ hg up 'desc("j-1")'
fbc466484fc3 test-copies: add test chaining multiple merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46590
diff changeset
   959
  2 files updated, 0 files merged, 0 files removed, 0 files unresolved (no-changeset !)
fbc466484fc3 test-copies: add test chaining multiple merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46590
diff changeset
   960
  1 files updated, 0 files merged, 0 files removed, 0 files unresolved (changeset !)
fbc466484fc3 test-copies: add test chaining multiple merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46590
diff changeset
   961
  $ hg merge 'desc("mEAm")'
fbc466484fc3 test-copies: add test chaining multiple merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46590
diff changeset
   962
  1 files updated, 0 files merged, 1 files removed, 0 files unresolved (no-changeset !)
fbc466484fc3 test-copies: add test chaining multiple merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46590
diff changeset
   963
  0 files updated, 0 files merged, 1 files removed, 0 files unresolved (changeset !)
fbc466484fc3 test-copies: add test chaining multiple merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46590
diff changeset
   964
  (branch merge, don't forget to commit)
fbc466484fc3 test-copies: add test chaining multiple merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46590
diff changeset
   965
  $ hg ci -m "mJ,EAm: $case_desc"
fbc466484fc3 test-copies: add test chaining multiple merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46590
diff changeset
   966
  created new head
fbc466484fc3 test-copies: add test chaining multiple merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46590
diff changeset
   967
fbc466484fc3 test-copies: add test chaining multiple merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46590
diff changeset
   968
fbc466484fc3 test-copies: add test chaining multiple merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46590
diff changeset
   969
  $ hg log -G --rev '::(desc("mAE,Km") + desc("mK,AEm") + desc("mEA,Jm") + desc("mJ,EAm"))'
46594
74e2256a56b8 test-copies: remove revision number from log
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46593
diff changeset
   970
  @    mJ,EAm: chained merges (conflict -> simple) - same content everywhere
46591
fbc466484fc3 test-copies: add test chaining multiple merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46590
diff changeset
   971
  |\
46594
74e2256a56b8 test-copies: remove revision number from log
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46593
diff changeset
   972
  +---o  mEA,Jm: chained merges (conflict -> simple) - same content everywhere
46591
fbc466484fc3 test-copies: add test chaining multiple merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46590
diff changeset
   973
  | |/
46594
74e2256a56b8 test-copies: remove revision number from log
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46593
diff changeset
   974
  | | o    mK,AEm: chained merges (conflict -> simple) - same content everywhere
46591
fbc466484fc3 test-copies: add test chaining multiple merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46590
diff changeset
   975
  | | |\
46594
74e2256a56b8 test-copies: remove revision number from log
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46593
diff changeset
   976
  | | +---o  mAE,Km: chained merges (conflict -> simple) - same content everywhere
46591
fbc466484fc3 test-copies: add test chaining multiple merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46590
diff changeset
   977
  | | | |/
46594
74e2256a56b8 test-copies: remove revision number from log
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46593
diff changeset
   978
  | | | o  k-1: unrelated changes (based on "e" changes)
46591
fbc466484fc3 test-copies: add test chaining multiple merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46590
diff changeset
   979
  | | | |
46594
74e2256a56b8 test-copies: remove revision number from log
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46593
diff changeset
   980
  | o | |  j-1: unrelated changes (based on the "a" series of changes)
46591
fbc466484fc3 test-copies: add test chaining multiple merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46590
diff changeset
   981
  | | | |
46594
74e2256a56b8 test-copies: remove revision number from log
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46593
diff changeset
   982
  o-----+  mEAm-0 merge with copies info on both side - A side: rename d to f, E side: b to f, (same content for f) - the other way
46591
fbc466484fc3 test-copies: add test chaining multiple merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46590
diff changeset
   983
  |/ / /
46594
74e2256a56b8 test-copies: remove revision number from log
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46593
diff changeset
   984
  | o /  mAEm-0 merge with copies info on both side - A side: rename d to f, E side: b to f, (same content for f) - one way
46591
fbc466484fc3 test-copies: add test chaining multiple merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46590
diff changeset
   985
  |/|/
46594
74e2256a56b8 test-copies: remove revision number from log
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46593
diff changeset
   986
  | o  e-2 g -move-> f
46591
fbc466484fc3 test-copies: add test chaining multiple merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46590
diff changeset
   987
  | |
46594
74e2256a56b8 test-copies: remove revision number from log
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46593
diff changeset
   988
  | o  e-1 b -move-> g
46591
fbc466484fc3 test-copies: add test chaining multiple merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46590
diff changeset
   989
  | |
46594
74e2256a56b8 test-copies: remove revision number from log
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46593
diff changeset
   990
  o |  a-2: e -move-> f
46591
fbc466484fc3 test-copies: add test chaining multiple merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46590
diff changeset
   991
  | |
46594
74e2256a56b8 test-copies: remove revision number from log
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46593
diff changeset
   992
  o |  a-1: d -move-> e
46591
fbc466484fc3 test-copies: add test chaining multiple merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46590
diff changeset
   993
  |/
46600
0ebfd02dafd5 test-copies: move the new files in the `i` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46599
diff changeset
   994
  o  i-2: c -move-> d, s -move-> t
46591
fbc466484fc3 test-copies: add test chaining multiple merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46590
diff changeset
   995
  |
46600
0ebfd02dafd5 test-copies: move the new files in the `i` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46599
diff changeset
   996
  o  i-1: a -move-> c, p -move-> s
46591
fbc466484fc3 test-copies: add test chaining multiple merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46590
diff changeset
   997
  |
46649
d7d64b8c8229 tests: correct a commit description in test-copies-chain-merge.t
Martin von Zweigbergk <martinvonz@google.com>
parents: 46607
diff changeset
   998
  o  i-0 initial commit: a b h p q r
46591
fbc466484fc3 test-copies: add test chaining multiple merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46590
diff changeset
   999
  
fbc466484fc3 test-copies: add test chaining multiple merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46590
diff changeset
  1000
46605
388a92023a1a test-copies: introduce merge chains test for the P/Q merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46604
diff changeset
  1001
Subcase: chaining conflicting rename resolution, with actual merging happening
388a92023a1a test-copies: introduce merge chains test for the P/Q merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46604
diff changeset
  1002
``````````````````````````````````````````````````````````````````````````````
388a92023a1a test-copies: introduce merge chains test for the P/Q merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46604
diff changeset
  1003
388a92023a1a test-copies: introduce merge chains test for the P/Q merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46604
diff changeset
  1004
The "mPQm" and "mQPm" case create a rename tracking conflict on file 't'. We
388a92023a1a test-copies: introduce merge chains test for the P/Q merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46604
diff changeset
  1005
add more change on the respective branch and merge again. These second merge
388a92023a1a test-copies: introduce merge chains test for the P/Q merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46604
diff changeset
  1006
does not involve the file 't' and the arbitration done within "mPQm" and "mQP"
388a92023a1a test-copies: introduce merge chains test for the P/Q merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46604
diff changeset
  1007
about that file should stay unchanged.
388a92023a1a test-copies: introduce merge chains test for the P/Q merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46604
diff changeset
  1008
388a92023a1a test-copies: introduce merge chains test for the P/Q merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46604
diff changeset
  1009
  $ case_desc="chained merges (conflict -> simple) - different content"
388a92023a1a test-copies: introduce merge chains test for the P/Q merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46604
diff changeset
  1010
388a92023a1a test-copies: introduce merge chains test for the P/Q merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46604
diff changeset
  1011
(extra unrelated changes)
388a92023a1a test-copies: introduce merge chains test for the P/Q merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46604
diff changeset
  1012
388a92023a1a test-copies: introduce merge chains test for the P/Q merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46604
diff changeset
  1013
  $ hg up 'desc("p-2")'
388a92023a1a test-copies: introduce merge chains test for the P/Q merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46604
diff changeset
  1014
  3 files updated, 0 files merged, 3 files removed, 0 files unresolved
388a92023a1a test-copies: introduce merge chains test for the P/Q merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46604
diff changeset
  1015
  $ echo s > unrelated-s
388a92023a1a test-copies: introduce merge chains test for the P/Q merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46604
diff changeset
  1016
  $ hg add unrelated-s
388a92023a1a test-copies: introduce merge chains test for the P/Q merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46604
diff changeset
  1017
  $ hg ci -m 's-1: unrelated changes (based on the "p" series of changes)'
388a92023a1a test-copies: introduce merge chains test for the P/Q merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46604
diff changeset
  1018
  created new head
388a92023a1a test-copies: introduce merge chains test for the P/Q merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46604
diff changeset
  1019
388a92023a1a test-copies: introduce merge chains test for the P/Q merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46604
diff changeset
  1020
  $ hg up 'desc("q-2")'
388a92023a1a test-copies: introduce merge chains test for the P/Q merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46604
diff changeset
  1021
  2 files updated, 0 files merged, 2 files removed, 0 files unresolved
388a92023a1a test-copies: introduce merge chains test for the P/Q merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46604
diff changeset
  1022
  $ echo t > unrelated-t
388a92023a1a test-copies: introduce merge chains test for the P/Q merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46604
diff changeset
  1023
  $ hg add unrelated-t
388a92023a1a test-copies: introduce merge chains test for the P/Q merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46604
diff changeset
  1024
  $ hg ci -m 't-1: unrelated changes (based on "q" changes)'
388a92023a1a test-copies: introduce merge chains test for the P/Q merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46604
diff changeset
  1025
  created new head
388a92023a1a test-copies: introduce merge chains test for the P/Q merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46604
diff changeset
  1026
388a92023a1a test-copies: introduce merge chains test for the P/Q merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46604
diff changeset
  1027
(merge variant 1)
388a92023a1a test-copies: introduce merge chains test for the P/Q merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46604
diff changeset
  1028
388a92023a1a test-copies: introduce merge chains test for the P/Q merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46604
diff changeset
  1029
  $ hg up 'desc("mPQm")'
388a92023a1a test-copies: introduce merge chains test for the P/Q merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46604
diff changeset
  1030
  1 files updated, 0 files merged, 2 files removed, 0 files unresolved
388a92023a1a test-copies: introduce merge chains test for the P/Q merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46604
diff changeset
  1031
  $ hg merge 'desc("t-1")'
388a92023a1a test-copies: introduce merge chains test for the P/Q merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46604
diff changeset
  1032
  1 files updated, 0 files merged, 0 files removed, 0 files unresolved
388a92023a1a test-copies: introduce merge chains test for the P/Q merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46604
diff changeset
  1033
  (branch merge, don't forget to commit)
388a92023a1a test-copies: introduce merge chains test for the P/Q merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46604
diff changeset
  1034
  $ hg ci -m "mPQ,Tm: $case_desc"
388a92023a1a test-copies: introduce merge chains test for the P/Q merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46604
diff changeset
  1035
388a92023a1a test-copies: introduce merge chains test for the P/Q merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46604
diff changeset
  1036
(merge variant 2)
388a92023a1a test-copies: introduce merge chains test for the P/Q merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46604
diff changeset
  1037
388a92023a1a test-copies: introduce merge chains test for the P/Q merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46604
diff changeset
  1038
  $ hg up 'desc("t-1")'
388a92023a1a test-copies: introduce merge chains test for the P/Q merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46604
diff changeset
  1039
  2 files updated, 0 files merged, 0 files removed, 0 files unresolved
388a92023a1a test-copies: introduce merge chains test for the P/Q merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46604
diff changeset
  1040
388a92023a1a test-copies: introduce merge chains test for the P/Q merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46604
diff changeset
  1041
  $ hg merge 'desc("mPQm")'
388a92023a1a test-copies: introduce merge chains test for the P/Q merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46604
diff changeset
  1042
  1 files updated, 0 files merged, 1 files removed, 0 files unresolved
388a92023a1a test-copies: introduce merge chains test for the P/Q merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46604
diff changeset
  1043
  (branch merge, don't forget to commit)
388a92023a1a test-copies: introduce merge chains test for the P/Q merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46604
diff changeset
  1044
  $ hg ci -m "mT,PQm: $case_desc"
388a92023a1a test-copies: introduce merge chains test for the P/Q merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46604
diff changeset
  1045
  created new head
388a92023a1a test-copies: introduce merge chains test for the P/Q merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46604
diff changeset
  1046
388a92023a1a test-copies: introduce merge chains test for the P/Q merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46604
diff changeset
  1047
(merge variant 3)
388a92023a1a test-copies: introduce merge chains test for the P/Q merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46604
diff changeset
  1048
388a92023a1a test-copies: introduce merge chains test for the P/Q merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46604
diff changeset
  1049
  $ hg up 'desc("mQPm")'
388a92023a1a test-copies: introduce merge chains test for the P/Q merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46604
diff changeset
  1050
  1 files updated, 0 files merged, 1 files removed, 0 files unresolved
388a92023a1a test-copies: introduce merge chains test for the P/Q merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46604
diff changeset
  1051
  $ hg merge 'desc("s-1")'
388a92023a1a test-copies: introduce merge chains test for the P/Q merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46604
diff changeset
  1052
  1 files updated, 0 files merged, 0 files removed, 0 files unresolved
388a92023a1a test-copies: introduce merge chains test for the P/Q merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46604
diff changeset
  1053
  (branch merge, don't forget to commit)
388a92023a1a test-copies: introduce merge chains test for the P/Q merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46604
diff changeset
  1054
  $ hg ci -m "mQP,Sm: $case_desc"
388a92023a1a test-copies: introduce merge chains test for the P/Q merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46604
diff changeset
  1055
388a92023a1a test-copies: introduce merge chains test for the P/Q merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46604
diff changeset
  1056
(merge variant 4)
388a92023a1a test-copies: introduce merge chains test for the P/Q merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46604
diff changeset
  1057
388a92023a1a test-copies: introduce merge chains test for the P/Q merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46604
diff changeset
  1058
  $ hg up 'desc("s-1")'
388a92023a1a test-copies: introduce merge chains test for the P/Q merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46604
diff changeset
  1059
  2 files updated, 0 files merged, 0 files removed, 0 files unresolved
388a92023a1a test-copies: introduce merge chains test for the P/Q merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46604
diff changeset
  1060
  $ hg merge 'desc("mQPm")'
388a92023a1a test-copies: introduce merge chains test for the P/Q merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46604
diff changeset
  1061
  1 files updated, 0 files merged, 1 files removed, 0 files unresolved
388a92023a1a test-copies: introduce merge chains test for the P/Q merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46604
diff changeset
  1062
  (branch merge, don't forget to commit)
388a92023a1a test-copies: introduce merge chains test for the P/Q merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46604
diff changeset
  1063
  $ hg ci -m "mS,QPm: $case_desc"
388a92023a1a test-copies: introduce merge chains test for the P/Q merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46604
diff changeset
  1064
  created new head
388a92023a1a test-copies: introduce merge chains test for the P/Q merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46604
diff changeset
  1065
  $ hg up null --quiet
388a92023a1a test-copies: introduce merge chains test for the P/Q merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46604
diff changeset
  1066
388a92023a1a test-copies: introduce merge chains test for the P/Q merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46604
diff changeset
  1067
388a92023a1a test-copies: introduce merge chains test for the P/Q merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46604
diff changeset
  1068
  $ hg log -G --rev '::(desc("mPQ,Tm") + desc("mT,PQm") + desc("mQP,Sm") + desc("mS,QPm"))'
388a92023a1a test-copies: introduce merge chains test for the P/Q merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46604
diff changeset
  1069
  o    mS,QPm: chained merges (conflict -> simple) - different content
388a92023a1a test-copies: introduce merge chains test for the P/Q merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46604
diff changeset
  1070
  |\
388a92023a1a test-copies: introduce merge chains test for the P/Q merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46604
diff changeset
  1071
  +---o  mQP,Sm: chained merges (conflict -> simple) - different content
388a92023a1a test-copies: introduce merge chains test for the P/Q merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46604
diff changeset
  1072
  | |/
388a92023a1a test-copies: introduce merge chains test for the P/Q merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46604
diff changeset
  1073
  | | o    mT,PQm: chained merges (conflict -> simple) - different content
388a92023a1a test-copies: introduce merge chains test for the P/Q merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46604
diff changeset
  1074
  | | |\
388a92023a1a test-copies: introduce merge chains test for the P/Q merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46604
diff changeset
  1075
  | | +---o  mPQ,Tm: chained merges (conflict -> simple) - different content
388a92023a1a test-copies: introduce merge chains test for the P/Q merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46604
diff changeset
  1076
  | | | |/
388a92023a1a test-copies: introduce merge chains test for the P/Q merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46604
diff changeset
  1077
  | | | o  t-1: unrelated changes (based on "q" changes)
388a92023a1a test-copies: introduce merge chains test for the P/Q merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46604
diff changeset
  1078
  | | | |
388a92023a1a test-copies: introduce merge chains test for the P/Q merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46604
diff changeset
  1079
  | o | |  s-1: unrelated changes (based on the "p" series of changes)
388a92023a1a test-copies: introduce merge chains test for the P/Q merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46604
diff changeset
  1080
  | | | |
388a92023a1a test-copies: introduce merge chains test for the P/Q merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46604
diff changeset
  1081
  o-----+  mQPm-0 merge with copies info on both side - P side: rename t to v, Q side: r to v, (different content) - the other way
388a92023a1a test-copies: introduce merge chains test for the P/Q merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46604
diff changeset
  1082
  |/ / /
388a92023a1a test-copies: introduce merge chains test for the P/Q merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46604
diff changeset
  1083
  | o /  mPQm-0 merge with copies info on both side - P side: rename t to v, Q side: r to v, (different content) - one way
388a92023a1a test-copies: introduce merge chains test for the P/Q merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46604
diff changeset
  1084
  |/|/
388a92023a1a test-copies: introduce merge chains test for the P/Q merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46604
diff changeset
  1085
  | o  q-2 w -move-> v
388a92023a1a test-copies: introduce merge chains test for the P/Q merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46604
diff changeset
  1086
  | |
388a92023a1a test-copies: introduce merge chains test for the P/Q merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46604
diff changeset
  1087
  | o  q-1 r -move-> w
388a92023a1a test-copies: introduce merge chains test for the P/Q merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46604
diff changeset
  1088
  | |
388a92023a1a test-copies: introduce merge chains test for the P/Q merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46604
diff changeset
  1089
  o |  p-2: u -move-> v
388a92023a1a test-copies: introduce merge chains test for the P/Q merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46604
diff changeset
  1090
  | |
388a92023a1a test-copies: introduce merge chains test for the P/Q merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46604
diff changeset
  1091
  o |  p-1: t -move-> u
388a92023a1a test-copies: introduce merge chains test for the P/Q merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46604
diff changeset
  1092
  |/
388a92023a1a test-copies: introduce merge chains test for the P/Q merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46604
diff changeset
  1093
  o  i-2: c -move-> d, s -move-> t
388a92023a1a test-copies: introduce merge chains test for the P/Q merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46604
diff changeset
  1094
  |
388a92023a1a test-copies: introduce merge chains test for the P/Q merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46604
diff changeset
  1095
  o  i-1: a -move-> c, p -move-> s
388a92023a1a test-copies: introduce merge chains test for the P/Q merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46604
diff changeset
  1096
  |
46649
d7d64b8c8229 tests: correct a commit description in test-copies-chain-merge.t
Martin von Zweigbergk <martinvonz@google.com>
parents: 46607
diff changeset
  1097
  o  i-0 initial commit: a b h p q r
46605
388a92023a1a test-copies: introduce merge chains test for the P/Q merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46604
diff changeset
  1098
  
388a92023a1a test-copies: introduce merge chains test for the P/Q merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46604
diff changeset
  1099
46592
3805b13ad7fe test-copies: add test chaining multiple merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46591
diff changeset
  1100
Subcase: chaining salvage information during a merge
3805b13ad7fe test-copies: add test chaining multiple merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46591
diff changeset
  1101
````````````````````````````````````````````````````
3805b13ad7fe test-copies: add test chaining multiple merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46591
diff changeset
  1102
3805b13ad7fe test-copies: add test chaining multiple merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46591
diff changeset
  1103
We add more change on the branch were the file was deleted. merging again
3805b13ad7fe test-copies: add test chaining multiple merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46591
diff changeset
  1104
should preserve the fact eh file was salvaged.
3805b13ad7fe test-copies: add test chaining multiple merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46591
diff changeset
  1105
3805b13ad7fe test-copies: add test chaining multiple merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46591
diff changeset
  1106
  $ case_desc="chained merges (salvaged -> simple) - same content (when the file exists)"
3805b13ad7fe test-copies: add test chaining multiple merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46591
diff changeset
  1107
3805b13ad7fe test-copies: add test chaining multiple merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46591
diff changeset
  1108
(creating the change)
3805b13ad7fe test-copies: add test chaining multiple merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46591
diff changeset
  1109
3805b13ad7fe test-copies: add test chaining multiple merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46591
diff changeset
  1110
  $ hg up 'desc("c-1")'
46605
388a92023a1a test-copies: introduce merge chains test for the P/Q merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46604
diff changeset
  1111
  5 files updated, 0 files merged, 0 files removed, 0 files unresolved
46592
3805b13ad7fe test-copies: add test chaining multiple merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46591
diff changeset
  1112
  $ echo l > unrelated-l
3805b13ad7fe test-copies: add test chaining multiple merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46591
diff changeset
  1113
  $ hg add unrelated-l
3805b13ad7fe test-copies: add test chaining multiple merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46591
diff changeset
  1114
  $ hg ci -m 'l-1: unrelated changes (based on "c" changes)'
3805b13ad7fe test-copies: add test chaining multiple merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46591
diff changeset
  1115
  created new head
3805b13ad7fe test-copies: add test chaining multiple merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46591
diff changeset
  1116
3805b13ad7fe test-copies: add test chaining multiple merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46591
diff changeset
  1117
(Merge variant 1)
3805b13ad7fe test-copies: add test chaining multiple merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46591
diff changeset
  1118
3805b13ad7fe test-copies: add test chaining multiple merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46591
diff changeset
  1119
  $ hg up 'desc("mBC-revert-m")'
3805b13ad7fe test-copies: add test chaining multiple merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46591
diff changeset
  1120
  2 files updated, 0 files merged, 1 files removed, 0 files unresolved
3805b13ad7fe test-copies: add test chaining multiple merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46591
diff changeset
  1121
  $ hg merge 'desc("l-1")'
3805b13ad7fe test-copies: add test chaining multiple merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46591
diff changeset
  1122
  1 files updated, 0 files merged, 0 files removed, 0 files unresolved
3805b13ad7fe test-copies: add test chaining multiple merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46591
diff changeset
  1123
  (branch merge, don't forget to commit)
3805b13ad7fe test-copies: add test chaining multiple merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46591
diff changeset
  1124
  $ hg ci -m "mBC+revert,Lm: $case_desc"
3805b13ad7fe test-copies: add test chaining multiple merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46591
diff changeset
  1125
3805b13ad7fe test-copies: add test chaining multiple merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46591
diff changeset
  1126
(Merge variant 2)
3805b13ad7fe test-copies: add test chaining multiple merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46591
diff changeset
  1127
3805b13ad7fe test-copies: add test chaining multiple merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46591
diff changeset
  1128
  $ hg up 'desc("mCB-revert-m")'
3805b13ad7fe test-copies: add test chaining multiple merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46591
diff changeset
  1129
  0 files updated, 0 files merged, 1 files removed, 0 files unresolved
3805b13ad7fe test-copies: add test chaining multiple merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46591
diff changeset
  1130
  $ hg merge 'desc("l-1")'
3805b13ad7fe test-copies: add test chaining multiple merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46591
diff changeset
  1131
  1 files updated, 0 files merged, 0 files removed, 0 files unresolved
3805b13ad7fe test-copies: add test chaining multiple merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46591
diff changeset
  1132
  (branch merge, don't forget to commit)
3805b13ad7fe test-copies: add test chaining multiple merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46591
diff changeset
  1133
  $ hg ci -m "mCB+revert,Lm: $case_desc"
3805b13ad7fe test-copies: add test chaining multiple merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46591
diff changeset
  1134
3805b13ad7fe test-copies: add test chaining multiple merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46591
diff changeset
  1135
(Merge variant 3)
3805b13ad7fe test-copies: add test chaining multiple merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46591
diff changeset
  1136
3805b13ad7fe test-copies: add test chaining multiple merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46591
diff changeset
  1137
  $ hg up 'desc("l-1")'
3805b13ad7fe test-copies: add test chaining multiple merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46591
diff changeset
  1138
  1 files updated, 0 files merged, 1 files removed, 0 files unresolved
3805b13ad7fe test-copies: add test chaining multiple merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46591
diff changeset
  1139
3805b13ad7fe test-copies: add test chaining multiple merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46591
diff changeset
  1140
  $ hg merge 'desc("mBC-revert-m")'
3805b13ad7fe test-copies: add test chaining multiple merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46591
diff changeset
  1141
  2 files updated, 0 files merged, 0 files removed, 0 files unresolved
3805b13ad7fe test-copies: add test chaining multiple merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46591
diff changeset
  1142
  (branch merge, don't forget to commit)
3805b13ad7fe test-copies: add test chaining multiple merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46591
diff changeset
  1143
  $ hg ci -m "mL,BC+revertm: $case_desc"
3805b13ad7fe test-copies: add test chaining multiple merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46591
diff changeset
  1144
  created new head
3805b13ad7fe test-copies: add test chaining multiple merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46591
diff changeset
  1145
3805b13ad7fe test-copies: add test chaining multiple merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46591
diff changeset
  1146
(Merge variant 4)
3805b13ad7fe test-copies: add test chaining multiple merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46591
diff changeset
  1147
3805b13ad7fe test-copies: add test chaining multiple merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46591
diff changeset
  1148
  $ hg up 'desc("l-1")'
3805b13ad7fe test-copies: add test chaining multiple merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46591
diff changeset
  1149
  1 files updated, 0 files merged, 1 files removed, 0 files unresolved
3805b13ad7fe test-copies: add test chaining multiple merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46591
diff changeset
  1150
3805b13ad7fe test-copies: add test chaining multiple merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46591
diff changeset
  1151
  $ hg merge 'desc("mCB-revert-m")'
3805b13ad7fe test-copies: add test chaining multiple merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46591
diff changeset
  1152
  2 files updated, 0 files merged, 0 files removed, 0 files unresolved
3805b13ad7fe test-copies: add test chaining multiple merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46591
diff changeset
  1153
  (branch merge, don't forget to commit)
3805b13ad7fe test-copies: add test chaining multiple merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46591
diff changeset
  1154
  $ hg ci -m "mL,CB+revertm: $case_desc"
3805b13ad7fe test-copies: add test chaining multiple merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46591
diff changeset
  1155
  created new head
3805b13ad7fe test-copies: add test chaining multiple merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46591
diff changeset
  1156
3805b13ad7fe test-copies: add test chaining multiple merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46591
diff changeset
  1157
  $ hg log -G --rev '::(desc("mBC+revert,Lm") + desc("mCB+revert,Lm") + desc("mL,BC+revertm") + desc("mL,CB+revertm"))'
46594
74e2256a56b8 test-copies: remove revision number from log
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46593
diff changeset
  1158
  @    mL,CB+revertm: chained merges (salvaged -> simple) - same content (when the file exists)
46592
3805b13ad7fe test-copies: add test chaining multiple merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46591
diff changeset
  1159
  |\
46594
74e2256a56b8 test-copies: remove revision number from log
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46593
diff changeset
  1160
  | | o  mL,BC+revertm: chained merges (salvaged -> simple) - same content (when the file exists)
46592
3805b13ad7fe test-copies: add test chaining multiple merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46591
diff changeset
  1161
  | |/|
46594
74e2256a56b8 test-copies: remove revision number from log
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46593
diff changeset
  1162
  +-+---o  mCB+revert,Lm: chained merges (salvaged -> simple) - same content (when the file exists)
46592
3805b13ad7fe test-copies: add test chaining multiple merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46591
diff changeset
  1163
  | | |
46594
74e2256a56b8 test-copies: remove revision number from log
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46593
diff changeset
  1164
  | +---o  mBC+revert,Lm: chained merges (salvaged -> simple) - same content (when the file exists)
46592
3805b13ad7fe test-copies: add test chaining multiple merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46591
diff changeset
  1165
  | | |/
46594
74e2256a56b8 test-copies: remove revision number from log
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46593
diff changeset
  1166
  | o |  l-1: unrelated changes (based on "c" changes)
46592
3805b13ad7fe test-copies: add test chaining multiple merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46591
diff changeset
  1167
  | | |
46594
74e2256a56b8 test-copies: remove revision number from log
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46593
diff changeset
  1168
  | | o  mBC-revert-m-0 merge explicitely revive deleted file - B side: unrelated change, C side: delete d (restored by merge) - the other way
46592
3805b13ad7fe test-copies: add test chaining multiple merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46591
diff changeset
  1169
  | |/|
46594
74e2256a56b8 test-copies: remove revision number from log
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46593
diff changeset
  1170
  o---+  mCB-revert-m-0 merge explicitely revive deleted file - B side: unrelated change, C side: delete d (restored by merge) - one way
46592
3805b13ad7fe test-copies: add test chaining multiple merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46591
diff changeset
  1171
  |/ /
46594
74e2256a56b8 test-copies: remove revision number from log
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46593
diff changeset
  1172
  o |  c-1 delete d
46592
3805b13ad7fe test-copies: add test chaining multiple merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46591
diff changeset
  1173
  | |
46594
74e2256a56b8 test-copies: remove revision number from log
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46593
diff changeset
  1174
  | o  b-1: b update
46592
3805b13ad7fe test-copies: add test chaining multiple merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46591
diff changeset
  1175
  |/
46600
0ebfd02dafd5 test-copies: move the new files in the `i` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46599
diff changeset
  1176
  o  i-2: c -move-> d, s -move-> t
46592
3805b13ad7fe test-copies: add test chaining multiple merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46591
diff changeset
  1177
  |
46600
0ebfd02dafd5 test-copies: move the new files in the `i` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46599
diff changeset
  1178
  o  i-1: a -move-> c, p -move-> s
46592
3805b13ad7fe test-copies: add test chaining multiple merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46591
diff changeset
  1179
  |
46649
d7d64b8c8229 tests: correct a commit description in test-copies-chain-merge.t
Martin von Zweigbergk <martinvonz@google.com>
parents: 46607
diff changeset
  1180
  o  i-0 initial commit: a b h p q r
46592
3805b13ad7fe test-copies: add test chaining multiple merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46591
diff changeset
  1181
  
3805b13ad7fe test-copies: add test chaining multiple merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46591
diff changeset
  1182
3805b13ad7fe test-copies: add test chaining multiple merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46591
diff changeset
  1183
46593
075b2499e3d6 test-copies: add test chaining multiple merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46592
diff changeset
  1184
Subcase: chaining "merged" information during a merge
075b2499e3d6 test-copies: add test chaining multiple merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46592
diff changeset
  1185
``````````````````````````````````````````````````````
46592
3805b13ad7fe test-copies: add test chaining multiple merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46591
diff changeset
  1186
46593
075b2499e3d6 test-copies: add test chaining multiple merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46592
diff changeset
  1187
When a non-rename change are merged with a copy overwrite, the merge pick the copy source from (p1) as the reference. We should preserve this information in subsequent merges.
075b2499e3d6 test-copies: add test chaining multiple merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46592
diff changeset
  1188
075b2499e3d6 test-copies: add test chaining multiple merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46592
diff changeset
  1189
  $ case_desc="chained merges (copy-overwrite -> simple) - same content"
075b2499e3d6 test-copies: add test chaining multiple merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46592
diff changeset
  1190
075b2499e3d6 test-copies: add test chaining multiple merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46592
diff changeset
  1191
(extra unrelated changes)
075b2499e3d6 test-copies: add test chaining multiple merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46592
diff changeset
  1192
075b2499e3d6 test-copies: add test chaining multiple merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46592
diff changeset
  1193
  $ hg up 'desc("f-2")'
075b2499e3d6 test-copies: add test chaining multiple merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46592
diff changeset
  1194
  2 files updated, 0 files merged, 2 files removed, 0 files unresolved (no-changeset !)
075b2499e3d6 test-copies: add test chaining multiple merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46592
diff changeset
  1195
  1 files updated, 0 files merged, 2 files removed, 0 files unresolved (changeset !)
075b2499e3d6 test-copies: add test chaining multiple merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46592
diff changeset
  1196
  $ echo n > unrelated-n
075b2499e3d6 test-copies: add test chaining multiple merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46592
diff changeset
  1197
  $ hg add unrelated-n
075b2499e3d6 test-copies: add test chaining multiple merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46592
diff changeset
  1198
  $ hg ci -m 'n-1: unrelated changes (based on the "f" series of changes)'
075b2499e3d6 test-copies: add test chaining multiple merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46592
diff changeset
  1199
  created new head
075b2499e3d6 test-copies: add test chaining multiple merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46592
diff changeset
  1200
075b2499e3d6 test-copies: add test chaining multiple merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46592
diff changeset
  1201
  $ hg up 'desc("g-1")'
075b2499e3d6 test-copies: add test chaining multiple merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46592
diff changeset
  1202
  2 files updated, 0 files merged, 1 files removed, 0 files unresolved
075b2499e3d6 test-copies: add test chaining multiple merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46592
diff changeset
  1203
  $ echo o > unrelated-o
075b2499e3d6 test-copies: add test chaining multiple merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46592
diff changeset
  1204
  $ hg add unrelated-o
075b2499e3d6 test-copies: add test chaining multiple merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46592
diff changeset
  1205
  $ hg ci -m 'o-1: unrelated changes (based on "g" changes)'
075b2499e3d6 test-copies: add test chaining multiple merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46592
diff changeset
  1206
  created new head
075b2499e3d6 test-copies: add test chaining multiple merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46592
diff changeset
  1207
075b2499e3d6 test-copies: add test chaining multiple merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46592
diff changeset
  1208
(merge variant 1)
075b2499e3d6 test-copies: add test chaining multiple merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46592
diff changeset
  1209
075b2499e3d6 test-copies: add test chaining multiple merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46592
diff changeset
  1210
  $ hg up 'desc("mFGm")'
075b2499e3d6 test-copies: add test chaining multiple merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46592
diff changeset
  1211
  1 files updated, 0 files merged, 2 files removed, 0 files unresolved (no-changeset !)
075b2499e3d6 test-copies: add test chaining multiple merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46592
diff changeset
  1212
  0 files updated, 0 files merged, 2 files removed, 0 files unresolved (changeset !)
075b2499e3d6 test-copies: add test chaining multiple merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46592
diff changeset
  1213
  $ hg merge 'desc("o-1")'
075b2499e3d6 test-copies: add test chaining multiple merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46592
diff changeset
  1214
  1 files updated, 0 files merged, 0 files removed, 0 files unresolved
075b2499e3d6 test-copies: add test chaining multiple merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46592
diff changeset
  1215
  (branch merge, don't forget to commit)
075b2499e3d6 test-copies: add test chaining multiple merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46592
diff changeset
  1216
  $ hg ci -m "mFG,Om: $case_desc"
075b2499e3d6 test-copies: add test chaining multiple merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46592
diff changeset
  1217
075b2499e3d6 test-copies: add test chaining multiple merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46592
diff changeset
  1218
(merge variant 2)
075b2499e3d6 test-copies: add test chaining multiple merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46592
diff changeset
  1219
075b2499e3d6 test-copies: add test chaining multiple merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46592
diff changeset
  1220
  $ hg up 'desc("o-1")'
075b2499e3d6 test-copies: add test chaining multiple merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46592
diff changeset
  1221
  2 files updated, 0 files merged, 0 files removed, 0 files unresolved (no-changeset !)
075b2499e3d6 test-copies: add test chaining multiple merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46592
diff changeset
  1222
  1 files updated, 0 files merged, 0 files removed, 0 files unresolved (changeset !)
075b2499e3d6 test-copies: add test chaining multiple merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46592
diff changeset
  1223
  $ hg merge 'desc("FGm")'
075b2499e3d6 test-copies: add test chaining multiple merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46592
diff changeset
  1224
  1 files updated, 0 files merged, 1 files removed, 0 files unresolved (no-changeset !)
075b2499e3d6 test-copies: add test chaining multiple merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46592
diff changeset
  1225
  0 files updated, 0 files merged, 1 files removed, 0 files unresolved (changeset !)
075b2499e3d6 test-copies: add test chaining multiple merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46592
diff changeset
  1226
  (branch merge, don't forget to commit)
075b2499e3d6 test-copies: add test chaining multiple merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46592
diff changeset
  1227
  $ hg ci -m "mO,FGm: $case_desc"
075b2499e3d6 test-copies: add test chaining multiple merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46592
diff changeset
  1228
  created new head
075b2499e3d6 test-copies: add test chaining multiple merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46592
diff changeset
  1229
075b2499e3d6 test-copies: add test chaining multiple merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46592
diff changeset
  1230
(merge variant 3)
075b2499e3d6 test-copies: add test chaining multiple merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46592
diff changeset
  1231
075b2499e3d6 test-copies: add test chaining multiple merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46592
diff changeset
  1232
  $ hg up 'desc("mGFm")'
075b2499e3d6 test-copies: add test chaining multiple merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46592
diff changeset
  1233
  0 files updated, 0 files merged, 1 files removed, 0 files unresolved
075b2499e3d6 test-copies: add test chaining multiple merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46592
diff changeset
  1234
  $ hg merge 'desc("n-1")'
075b2499e3d6 test-copies: add test chaining multiple merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46592
diff changeset
  1235
  1 files updated, 0 files merged, 0 files removed, 0 files unresolved
075b2499e3d6 test-copies: add test chaining multiple merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46592
diff changeset
  1236
  (branch merge, don't forget to commit)
075b2499e3d6 test-copies: add test chaining multiple merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46592
diff changeset
  1237
  $ hg ci -m "mGF,Nm: $case_desc"
075b2499e3d6 test-copies: add test chaining multiple merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46592
diff changeset
  1238
075b2499e3d6 test-copies: add test chaining multiple merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46592
diff changeset
  1239
(merge variant 4)
075b2499e3d6 test-copies: add test chaining multiple merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46592
diff changeset
  1240
075b2499e3d6 test-copies: add test chaining multiple merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46592
diff changeset
  1241
  $ hg up 'desc("n-1")'
075b2499e3d6 test-copies: add test chaining multiple merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46592
diff changeset
  1242
  1 files updated, 0 files merged, 0 files removed, 0 files unresolved
075b2499e3d6 test-copies: add test chaining multiple merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46592
diff changeset
  1243
  $ hg merge 'desc("mGFm")'
075b2499e3d6 test-copies: add test chaining multiple merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46592
diff changeset
  1244
  1 files updated, 0 files merged, 0 files removed, 0 files unresolved
075b2499e3d6 test-copies: add test chaining multiple merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46592
diff changeset
  1245
  (branch merge, don't forget to commit)
075b2499e3d6 test-copies: add test chaining multiple merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46592
diff changeset
  1246
  $ hg ci -m "mN,GFm: $case_desc"
075b2499e3d6 test-copies: add test chaining multiple merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46592
diff changeset
  1247
  created new head
075b2499e3d6 test-copies: add test chaining multiple merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46592
diff changeset
  1248
075b2499e3d6 test-copies: add test chaining multiple merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46592
diff changeset
  1249
  $ hg log -G --rev '::(desc("mFG,Om") + desc("mO,FGm") + desc("mGF,Nm") + desc("mN,GFm"))'
46594
74e2256a56b8 test-copies: remove revision number from log
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46593
diff changeset
  1250
  @    mN,GFm: chained merges (copy-overwrite -> simple) - same content
46593
075b2499e3d6 test-copies: add test chaining multiple merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46592
diff changeset
  1251
  |\
46594
74e2256a56b8 test-copies: remove revision number from log
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46593
diff changeset
  1252
  +---o  mGF,Nm: chained merges (copy-overwrite -> simple) - same content
46593
075b2499e3d6 test-copies: add test chaining multiple merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46592
diff changeset
  1253
  | |/
46594
74e2256a56b8 test-copies: remove revision number from log
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46593
diff changeset
  1254
  | | o    mO,FGm: chained merges (copy-overwrite -> simple) - same content
46593
075b2499e3d6 test-copies: add test chaining multiple merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46592
diff changeset
  1255
  | | |\
46594
74e2256a56b8 test-copies: remove revision number from log
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46593
diff changeset
  1256
  | | +---o  mFG,Om: chained merges (copy-overwrite -> simple) - same content
46593
075b2499e3d6 test-copies: add test chaining multiple merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46592
diff changeset
  1257
  | | | |/
46594
74e2256a56b8 test-copies: remove revision number from log
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46593
diff changeset
  1258
  | | | o  o-1: unrelated changes (based on "g" changes)
46593
075b2499e3d6 test-copies: add test chaining multiple merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46592
diff changeset
  1259
  | | | |
46594
74e2256a56b8 test-copies: remove revision number from log
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46593
diff changeset
  1260
  | o | |  n-1: unrelated changes (based on the "f" series of changes)
46593
075b2499e3d6 test-copies: add test chaining multiple merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46592
diff changeset
  1261
  | | | |
46594
74e2256a56b8 test-copies: remove revision number from log
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46593
diff changeset
  1262
  o-----+  mGFm-0 merge - G side: content change, F side: copy overwrite, no content change - the other way
46593
075b2499e3d6 test-copies: add test chaining multiple merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46592
diff changeset
  1263
  |/ / /
46594
74e2256a56b8 test-copies: remove revision number from log
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46593
diff changeset
  1264
  | o /  mFGm-0 merge - G side: content change, F side: copy overwrite, no content change - one way
46593
075b2499e3d6 test-copies: add test chaining multiple merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46592
diff changeset
  1265
  |/|/
46594
74e2256a56b8 test-copies: remove revision number from log
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46593
diff changeset
  1266
  | o  g-1: update d
46593
075b2499e3d6 test-copies: add test chaining multiple merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46592
diff changeset
  1267
  | |
46594
74e2256a56b8 test-copies: remove revision number from log
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46593
diff changeset
  1268
  o |  f-2: rename i -> d
46593
075b2499e3d6 test-copies: add test chaining multiple merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46592
diff changeset
  1269
  | |
46594
74e2256a56b8 test-copies: remove revision number from log
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46593
diff changeset
  1270
  o |  f-1: rename h -> i
46593
075b2499e3d6 test-copies: add test chaining multiple merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46592
diff changeset
  1271
  |/
46600
0ebfd02dafd5 test-copies: move the new files in the `i` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46599
diff changeset
  1272
  o  i-2: c -move-> d, s -move-> t
46593
075b2499e3d6 test-copies: add test chaining multiple merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46592
diff changeset
  1273
  |
46600
0ebfd02dafd5 test-copies: move the new files in the `i` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46599
diff changeset
  1274
  o  i-1: a -move-> c, p -move-> s
46593
075b2499e3d6 test-copies: add test chaining multiple merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46592
diff changeset
  1275
  |
46649
d7d64b8c8229 tests: correct a commit description in test-copies-chain-merge.t
Martin von Zweigbergk <martinvonz@google.com>
parents: 46607
diff changeset
  1276
  o  i-0 initial commit: a b h p q r
46593
075b2499e3d6 test-copies: add test chaining multiple merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46592
diff changeset
  1277
  
45733
ee3fd9021fac test: move upgrade run and check earlier in test-copies-chain-merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45732
diff changeset
  1278
46598
664bee002d1a test-copies: introduce merge chaing test for the A/E + change tests
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46597
diff changeset
  1279
Subcase: chaining conflicting rename resolution, with extra change during the merge
664bee002d1a test-copies: introduce merge chaing test for the A/E + change tests
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46597
diff changeset
  1280
```````````````````````````````````````````````````````````````````````````````````
664bee002d1a test-copies: introduce merge chaing test for the A/E + change tests
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46597
diff changeset
  1281
664bee002d1a test-copies: introduce merge chaing test for the A/E + change tests
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46597
diff changeset
  1282
The "mEA-change-m-0" and "mAE-change-m-0" case create a rename tracking conflict on file 'f'. We
664bee002d1a test-copies: introduce merge chaing test for the A/E + change tests
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46597
diff changeset
  1283
add more change on the respective branch and merge again. These second merge
664bee002d1a test-copies: introduce merge chaing test for the A/E + change tests
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46597
diff changeset
  1284
does not involve the file 'f' and the arbitration done within "mAEm" and "mEA"
664bee002d1a test-copies: introduce merge chaing test for the A/E + change tests
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46597
diff changeset
  1285
about that file should stay unchanged.
664bee002d1a test-copies: introduce merge chaing test for the A/E + change tests
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46597
diff changeset
  1286
664bee002d1a test-copies: introduce merge chaing test for the A/E + change tests
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46597
diff changeset
  1287
  $ case_desc="chained merges (conflict+change -> simple) - same content on both branch in the initial merge"
664bee002d1a test-copies: introduce merge chaing test for the A/E + change tests
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46597
diff changeset
  1288
664bee002d1a test-copies: introduce merge chaing test for the A/E + change tests
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46597
diff changeset
  1289
664bee002d1a test-copies: introduce merge chaing test for the A/E + change tests
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46597
diff changeset
  1290
(merge variant 1)
664bee002d1a test-copies: introduce merge chaing test for the A/E + change tests
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46597
diff changeset
  1291
664bee002d1a test-copies: introduce merge chaing test for the A/E + change tests
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46597
diff changeset
  1292
  $ hg up 'desc("mAE-change-m")'
664bee002d1a test-copies: introduce merge chaing test for the A/E + change tests
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46597
diff changeset
  1293
  2 files updated, 0 files merged, 3 files removed, 0 files unresolved
664bee002d1a test-copies: introduce merge chaing test for the A/E + change tests
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46597
diff changeset
  1294
  $ hg merge 'desc("k-1")'
664bee002d1a test-copies: introduce merge chaing test for the A/E + change tests
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46597
diff changeset
  1295
  1 files updated, 0 files merged, 0 files removed, 0 files unresolved
664bee002d1a test-copies: introduce merge chaing test for the A/E + change tests
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46597
diff changeset
  1296
  (branch merge, don't forget to commit)
664bee002d1a test-copies: introduce merge chaing test for the A/E + change tests
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46597
diff changeset
  1297
  $ hg ci -m "mAE-change,Km: $case_desc"
664bee002d1a test-copies: introduce merge chaing test for the A/E + change tests
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46597
diff changeset
  1298
664bee002d1a test-copies: introduce merge chaing test for the A/E + change tests
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46597
diff changeset
  1299
(merge variant 2)
664bee002d1a test-copies: introduce merge chaing test for the A/E + change tests
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46597
diff changeset
  1300
664bee002d1a test-copies: introduce merge chaing test for the A/E + change tests
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46597
diff changeset
  1301
  $ hg up 'desc("k-1")'
664bee002d1a test-copies: introduce merge chaing test for the A/E + change tests
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46597
diff changeset
  1302
  2 files updated, 0 files merged, 0 files removed, 0 files unresolved
664bee002d1a test-copies: introduce merge chaing test for the A/E + change tests
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46597
diff changeset
  1303
664bee002d1a test-copies: introduce merge chaing test for the A/E + change tests
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46597
diff changeset
  1304
  $ hg merge 'desc("mAE-change-m")'
664bee002d1a test-copies: introduce merge chaing test for the A/E + change tests
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46597
diff changeset
  1305
  1 files updated, 0 files merged, 1 files removed, 0 files unresolved
664bee002d1a test-copies: introduce merge chaing test for the A/E + change tests
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46597
diff changeset
  1306
  (branch merge, don't forget to commit)
664bee002d1a test-copies: introduce merge chaing test for the A/E + change tests
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46597
diff changeset
  1307
  $ hg ci -m "mK,AE-change-m: $case_desc"
664bee002d1a test-copies: introduce merge chaing test for the A/E + change tests
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46597
diff changeset
  1308
  created new head
664bee002d1a test-copies: introduce merge chaing test for the A/E + change tests
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46597
diff changeset
  1309
664bee002d1a test-copies: introduce merge chaing test for the A/E + change tests
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46597
diff changeset
  1310
(merge variant 3)
664bee002d1a test-copies: introduce merge chaing test for the A/E + change tests
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46597
diff changeset
  1311
664bee002d1a test-copies: introduce merge chaing test for the A/E + change tests
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46597
diff changeset
  1312
  $ hg up 'desc("mEA-change-m")'
664bee002d1a test-copies: introduce merge chaing test for the A/E + change tests
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46597
diff changeset
  1313
  1 files updated, 0 files merged, 1 files removed, 0 files unresolved
664bee002d1a test-copies: introduce merge chaing test for the A/E + change tests
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46597
diff changeset
  1314
  $ hg merge 'desc("j-1")'
664bee002d1a test-copies: introduce merge chaing test for the A/E + change tests
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46597
diff changeset
  1315
  1 files updated, 0 files merged, 0 files removed, 0 files unresolved
664bee002d1a test-copies: introduce merge chaing test for the A/E + change tests
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46597
diff changeset
  1316
  (branch merge, don't forget to commit)
664bee002d1a test-copies: introduce merge chaing test for the A/E + change tests
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46597
diff changeset
  1317
  $ hg ci -m "mEA-change,Jm: $case_desc"
664bee002d1a test-copies: introduce merge chaing test for the A/E + change tests
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46597
diff changeset
  1318
664bee002d1a test-copies: introduce merge chaing test for the A/E + change tests
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46597
diff changeset
  1319
(merge variant 4)
664bee002d1a test-copies: introduce merge chaing test for the A/E + change tests
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46597
diff changeset
  1320
664bee002d1a test-copies: introduce merge chaing test for the A/E + change tests
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46597
diff changeset
  1321
  $ hg up 'desc("j-1")'
664bee002d1a test-copies: introduce merge chaing test for the A/E + change tests
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46597
diff changeset
  1322
  2 files updated, 0 files merged, 0 files removed, 0 files unresolved
664bee002d1a test-copies: introduce merge chaing test for the A/E + change tests
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46597
diff changeset
  1323
  $ hg merge 'desc("mEA-change-m")'
664bee002d1a test-copies: introduce merge chaing test for the A/E + change tests
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46597
diff changeset
  1324
  1 files updated, 0 files merged, 1 files removed, 0 files unresolved
664bee002d1a test-copies: introduce merge chaing test for the A/E + change tests
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46597
diff changeset
  1325
  (branch merge, don't forget to commit)
664bee002d1a test-copies: introduce merge chaing test for the A/E + change tests
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46597
diff changeset
  1326
  $ hg ci -m "mJ,EA-change-m: $case_desc"
664bee002d1a test-copies: introduce merge chaing test for the A/E + change tests
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46597
diff changeset
  1327
  created new head
664bee002d1a test-copies: introduce merge chaing test for the A/E + change tests
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46597
diff changeset
  1328
664bee002d1a test-copies: introduce merge chaing test for the A/E + change tests
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46597
diff changeset
  1329
664bee002d1a test-copies: introduce merge chaing test for the A/E + change tests
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46597
diff changeset
  1330
  $ hg log -G --rev '::(desc("mAE-change,Km") + desc("mK,AE-change-m") + desc("mEA-change,Jm") + desc("mJ,EA-change-m"))'
664bee002d1a test-copies: introduce merge chaing test for the A/E + change tests
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46597
diff changeset
  1331
  @    mJ,EA-change-m: chained merges (conflict+change -> simple) - same content on both branch in the initial merge
664bee002d1a test-copies: introduce merge chaing test for the A/E + change tests
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46597
diff changeset
  1332
  |\
664bee002d1a test-copies: introduce merge chaing test for the A/E + change tests
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46597
diff changeset
  1333
  +---o  mEA-change,Jm: chained merges (conflict+change -> simple) - same content on both branch in the initial merge
664bee002d1a test-copies: introduce merge chaing test for the A/E + change tests
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46597
diff changeset
  1334
  | |/
664bee002d1a test-copies: introduce merge chaing test for the A/E + change tests
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46597
diff changeset
  1335
  | | o    mK,AE-change-m: chained merges (conflict+change -> simple) - same content on both branch in the initial merge
664bee002d1a test-copies: introduce merge chaing test for the A/E + change tests
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46597
diff changeset
  1336
  | | |\
664bee002d1a test-copies: introduce merge chaing test for the A/E + change tests
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46597
diff changeset
  1337
  | | +---o  mAE-change,Km: chained merges (conflict+change -> simple) - same content on both branch in the initial merge
664bee002d1a test-copies: introduce merge chaing test for the A/E + change tests
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46597
diff changeset
  1338
  | | | |/
664bee002d1a test-copies: introduce merge chaing test for the A/E + change tests
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46597
diff changeset
  1339
  | | | o  k-1: unrelated changes (based on "e" changes)
664bee002d1a test-copies: introduce merge chaing test for the A/E + change tests
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46597
diff changeset
  1340
  | | | |
664bee002d1a test-copies: introduce merge chaing test for the A/E + change tests
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46597
diff changeset
  1341
  | o | |  j-1: unrelated changes (based on the "a" series of changes)
664bee002d1a test-copies: introduce merge chaing test for the A/E + change tests
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46597
diff changeset
  1342
  | | | |
664bee002d1a test-copies: introduce merge chaing test for the A/E + change tests
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46597
diff changeset
  1343
  o-----+  mEA-change-m-0 merge with file update and copies info on both side - A side: rename d to f, E side: b to f, (same content for f in parent) - the other way
664bee002d1a test-copies: introduce merge chaing test for the A/E + change tests
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46597
diff changeset
  1344
  |/ / /
664bee002d1a test-copies: introduce merge chaing test for the A/E + change tests
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46597
diff changeset
  1345
  | o /  mAE-change-m-0 merge with file update and copies info on both side - A side: rename d to f, E side: b to f, (same content for f in parent) - one way
664bee002d1a test-copies: introduce merge chaing test for the A/E + change tests
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46597
diff changeset
  1346
  |/|/
664bee002d1a test-copies: introduce merge chaing test for the A/E + change tests
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46597
diff changeset
  1347
  | o  e-2 g -move-> f
664bee002d1a test-copies: introduce merge chaing test for the A/E + change tests
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46597
diff changeset
  1348
  | |
664bee002d1a test-copies: introduce merge chaing test for the A/E + change tests
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46597
diff changeset
  1349
  | o  e-1 b -move-> g
664bee002d1a test-copies: introduce merge chaing test for the A/E + change tests
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46597
diff changeset
  1350
  | |
664bee002d1a test-copies: introduce merge chaing test for the A/E + change tests
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46597
diff changeset
  1351
  o |  a-2: e -move-> f
664bee002d1a test-copies: introduce merge chaing test for the A/E + change tests
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46597
diff changeset
  1352
  | |
664bee002d1a test-copies: introduce merge chaing test for the A/E + change tests
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46597
diff changeset
  1353
  o |  a-1: d -move-> e
664bee002d1a test-copies: introduce merge chaing test for the A/E + change tests
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46597
diff changeset
  1354
  |/
46600
0ebfd02dafd5 test-copies: move the new files in the `i` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46599
diff changeset
  1355
  o  i-2: c -move-> d, s -move-> t
46598
664bee002d1a test-copies: introduce merge chaing test for the A/E + change tests
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46597
diff changeset
  1356
  |
46600
0ebfd02dafd5 test-copies: move the new files in the `i` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46599
diff changeset
  1357
  o  i-1: a -move-> c, p -move-> s
46598
664bee002d1a test-copies: introduce merge chaing test for the A/E + change tests
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46597
diff changeset
  1358
  |
46649
d7d64b8c8229 tests: correct a commit description in test-copies-chain-merge.t
Martin von Zweigbergk <martinvonz@google.com>
parents: 46607
diff changeset
  1359
  o  i-0 initial commit: a b h p q r
46598
664bee002d1a test-copies: introduce merge chaing test for the A/E + change tests
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46597
diff changeset
  1360
  
664bee002d1a test-copies: introduce merge chaing test for the A/E + change tests
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46597
diff changeset
  1361
46185
5f00eb608957 copies-tests: add a summary of all cases created in test-copies-chain-merge.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46160
diff changeset
  1362
Summary of all created cases
5f00eb608957 copies-tests: add a summary of all cases created in test-copies-chain-merge.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46160
diff changeset
  1363
----------------------------
5f00eb608957 copies-tests: add a summary of all cases created in test-copies-chain-merge.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46160
diff changeset
  1364
46186
5f27924a201d copies-tests: update to null in test-copies-chain-merge.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46185
diff changeset
  1365
  $ hg up --quiet null
5f27924a201d copies-tests: update to null in test-copies-chain-merge.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46185
diff changeset
  1366
46185
5f00eb608957 copies-tests: add a summary of all cases created in test-copies-chain-merge.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46160
diff changeset
  1367
(This exists to help keeping a compact list of the various cases we have built)
5f00eb608957 copies-tests: add a summary of all cases created in test-copies-chain-merge.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46160
diff changeset
  1368
5f00eb608957 copies-tests: add a summary of all cases created in test-copies-chain-merge.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46160
diff changeset
  1369
  $ hg log -T '{desc|firstline}\n'| sort
5f00eb608957 copies-tests: add a summary of all cases created in test-copies-chain-merge.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46160
diff changeset
  1370
  a-1: d -move-> e
5f00eb608957 copies-tests: add a summary of all cases created in test-copies-chain-merge.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46160
diff changeset
  1371
  a-2: e -move-> f
5f00eb608957 copies-tests: add a summary of all cases created in test-copies-chain-merge.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46160
diff changeset
  1372
  b-1: b update
5f00eb608957 copies-tests: add a summary of all cases created in test-copies-chain-merge.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46160
diff changeset
  1373
  c-1 delete d
5f00eb608957 copies-tests: add a summary of all cases created in test-copies-chain-merge.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46160
diff changeset
  1374
  d-1 delete d
5f00eb608957 copies-tests: add a summary of all cases created in test-copies-chain-merge.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46160
diff changeset
  1375
  d-2 re-add d
5f00eb608957 copies-tests: add a summary of all cases created in test-copies-chain-merge.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46160
diff changeset
  1376
  e-1 b -move-> g
5f00eb608957 copies-tests: add a summary of all cases created in test-copies-chain-merge.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46160
diff changeset
  1377
  e-2 g -move-> f
5f00eb608957 copies-tests: add a summary of all cases created in test-copies-chain-merge.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46160
diff changeset
  1378
  f-1: rename h -> i
5f00eb608957 copies-tests: add a summary of all cases created in test-copies-chain-merge.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46160
diff changeset
  1379
  f-2: rename i -> d
5f00eb608957 copies-tests: add a summary of all cases created in test-copies-chain-merge.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46160
diff changeset
  1380
  g-1: update d
5f00eb608957 copies-tests: add a summary of all cases created in test-copies-chain-merge.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46160
diff changeset
  1381
  h-1: b -(move)-> d
46649
d7d64b8c8229 tests: correct a commit description in test-copies-chain-merge.t
Martin von Zweigbergk <martinvonz@google.com>
parents: 46607
diff changeset
  1382
  i-0 initial commit: a b h p q r
46600
0ebfd02dafd5 test-copies: move the new files in the `i` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46599
diff changeset
  1383
  i-1: a -move-> c, p -move-> s
0ebfd02dafd5 test-copies: move the new files in the `i` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46599
diff changeset
  1384
  i-2: c -move-> d, s -move-> t
46591
fbc466484fc3 test-copies: add test chaining multiple merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46590
diff changeset
  1385
  j-1: unrelated changes (based on the "a" series of changes)
fbc466484fc3 test-copies: add test chaining multiple merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46590
diff changeset
  1386
  k-1: unrelated changes (based on "e" changes)
46592
3805b13ad7fe test-copies: add test chaining multiple merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46591
diff changeset
  1387
  l-1: unrelated changes (based on "c" changes)
46580
e20977208924 test-copies: improve description of the A+B case
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46579
diff changeset
  1388
  mABm-0 simple merge - A side: multiple renames, B side: unrelated update - the other way
46591
fbc466484fc3 test-copies: add test chaining multiple merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46590
diff changeset
  1389
  mAE,Km: chained merges (conflict -> simple) - same content everywhere
46598
664bee002d1a test-copies: introduce merge chaing test for the A/E + change tests
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46597
diff changeset
  1390
  mAE-change,Km: chained merges (conflict+change -> simple) - same content on both branch in the initial merge
46597
3aef76c3fd38 test-copies: add a "change during merge" variant to the A+E test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46596
diff changeset
  1391
  mAE-change-m-0 merge with file update and copies info on both side - A side: rename d to f, E side: b to f, (same content for f in parent) - one way
46583
19f490690880 test-copies: improve description of the A+E case
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46582
diff changeset
  1392
  mAEm-0 merge with copies info on both side - A side: rename d to f, E side: b to f, (same content for f) - one way
46580
e20977208924 test-copies: improve description of the A+B case
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46579
diff changeset
  1393
  mBAm-0 simple merge - A side: multiple renames, B side: unrelated update - one way
46592
3805b13ad7fe test-copies: add test chaining multiple merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46591
diff changeset
  1394
  mBC+revert,Lm: chained merges (salvaged -> simple) - same content (when the file exists)
46587
311a18777f45 test-copies: improve description of the B+C "revert/restore" case
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46586
diff changeset
  1395
  mBC-revert-m-0 merge explicitely revive deleted file - B side: unrelated change, C side: delete d (restored by merge) - the other way
46581
979838adc46b test-copies: improve description of the B+C case
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46580
diff changeset
  1396
  mBCm-0 simple merge - C side: delete a file with copies history , B side: unrelated update - one way
46185
5f00eb608957 copies-tests: add a summary of all cases created in test-copies-chain-merge.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46160
diff changeset
  1397
  mBCm-1 re-add d
46582
9a58f9eed303 test-copies: improve description of the B+D case
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46581
diff changeset
  1398
  mBDm-0 simple merge - B side: unrelated update, D side: delete and recreate a file (with different content) - one way
46589
f8888f5c8c50 test-copies: improve description of the B+F case
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46588
diff changeset
  1399
  mBFm-0 simple merge - B side: unrelated change, F side: overwrite d with a copy (from h->i->d) - one way
46604
c7baff95808c test-copies: add a case involving the `b` and a new `r` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46603
diff changeset
  1400
  mBRm-0 simple merge - B side: unrelated change, R side: overwrite d with a copy (from r->x->t) different content - one way
46592
3805b13ad7fe test-copies: add test chaining multiple merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46591
diff changeset
  1401
  mCB+revert,Lm: chained merges (salvaged -> simple) - same content (when the file exists)
46587
311a18777f45 test-copies: improve description of the B+C "revert/restore" case
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46586
diff changeset
  1402
  mCB-revert-m-0 merge explicitely revive deleted file - B side: unrelated change, C side: delete d (restored by merge) - one way
46581
979838adc46b test-copies: improve description of the B+C case
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46580
diff changeset
  1403
  mCBm-0 simple merge - C side: delete a file with copies history , B side: unrelated update - the other way
46185
5f00eb608957 copies-tests: add a summary of all cases created in test-copies-chain-merge.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46160
diff changeset
  1404
  mCBm-1 re-add d
46586
a1a06dca6941 test-copies: improve description of the G+C case
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46585
diff changeset
  1405
  mCGm-0 merge updated/deleted - revive the file (updated content) - one way
46588
60c52bdb1784 test-copies: improve description of the C+H case
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46587
diff changeset
  1406
  mCH-delete-before-conflict-m-0 simple merge - C side: d is the results of renames then deleted, H side: d is result of another rename (same content as the other branch) - one way
46582
9a58f9eed303 test-copies: improve description of the B+D case
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46581
diff changeset
  1407
  mDBm-0 simple merge - B side: unrelated update, D side: delete and recreate a file (with different content) - the other way
46584
1e96fdcc8bc1 test-copies: improve description of the D+G case
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46583
diff changeset
  1408
  mDGm-0 actual content merge, copies on one side - D side: delete and re-add (different content), G side: update content - one way
46591
fbc466484fc3 test-copies: add test chaining multiple merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46590
diff changeset
  1409
  mEA,Jm: chained merges (conflict -> simple) - same content everywhere
46598
664bee002d1a test-copies: introduce merge chaing test for the A/E + change tests
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46597
diff changeset
  1410
  mEA-change,Jm: chained merges (conflict+change -> simple) - same content on both branch in the initial merge
46597
3aef76c3fd38 test-copies: add a "change during merge" variant to the A+E test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46596
diff changeset
  1411
  mEA-change-m-0 merge with file update and copies info on both side - A side: rename d to f, E side: b to f, (same content for f in parent) - the other way
46583
19f490690880 test-copies: improve description of the A+E case
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46582
diff changeset
  1412
  mEAm-0 merge with copies info on both side - A side: rename d to f, E side: b to f, (same content for f) - the other way
46589
f8888f5c8c50 test-copies: improve description of the B+F case
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46588
diff changeset
  1413
  mFBm-0 simple merge - B side: unrelated change, F side: overwrite d with a copy (from h->i->d) - the other way
46593
075b2499e3d6 test-copies: add test chaining multiple merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46592
diff changeset
  1414
  mFG,Om: chained merges (copy-overwrite -> simple) - same content
46585
2f99dedf96b1 test-copies: improve description of the G+F case
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46584
diff changeset
  1415
  mFGm-0 merge - G side: content change, F side: copy overwrite, no content change - one way
46586
a1a06dca6941 test-copies: improve description of the G+C case
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46585
diff changeset
  1416
  mGCm-0 merge updated/deleted - revive the file (updated content) - the other way
46584
1e96fdcc8bc1 test-copies: improve description of the D+G case
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46583
diff changeset
  1417
  mGDm-0 actual content merge, copies on one side - D side: delete and re-add (different content), G side: update content - the other way
46593
075b2499e3d6 test-copies: add test chaining multiple merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46592
diff changeset
  1418
  mGF,Nm: chained merges (copy-overwrite -> simple) - same content
46585
2f99dedf96b1 test-copies: improve description of the G+F case
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46584
diff changeset
  1419
  mGFm-0 merge - G side: content change, F side: copy overwrite, no content change - the other way
46588
60c52bdb1784 test-copies: improve description of the C+H case
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46587
diff changeset
  1420
  mHC-delete-before-conflict-m-0 simple merge - C side: d is the results of renames then deleted, H side: d is result of another rename (same content as the other branch) - the other way
46598
664bee002d1a test-copies: introduce merge chaing test for the A/E + change tests
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46597
diff changeset
  1421
  mJ,EA-change-m: chained merges (conflict+change -> simple) - same content on both branch in the initial merge
46591
fbc466484fc3 test-copies: add test chaining multiple merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46590
diff changeset
  1422
  mJ,EAm: chained merges (conflict -> simple) - same content everywhere
46598
664bee002d1a test-copies: introduce merge chaing test for the A/E + change tests
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46597
diff changeset
  1423
  mK,AE-change-m: chained merges (conflict+change -> simple) - same content on both branch in the initial merge
46591
fbc466484fc3 test-copies: add test chaining multiple merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46590
diff changeset
  1424
  mK,AEm: chained merges (conflict -> simple) - same content everywhere
46592
3805b13ad7fe test-copies: add test chaining multiple merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46591
diff changeset
  1425
  mL,BC+revertm: chained merges (salvaged -> simple) - same content (when the file exists)
3805b13ad7fe test-copies: add test chaining multiple merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46591
diff changeset
  1426
  mL,CB+revertm: chained merges (salvaged -> simple) - same content (when the file exists)
46593
075b2499e3d6 test-copies: add test chaining multiple merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46592
diff changeset
  1427
  mN,GFm: chained merges (copy-overwrite -> simple) - same content
075b2499e3d6 test-copies: add test chaining multiple merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46592
diff changeset
  1428
  mO,FGm: chained merges (copy-overwrite -> simple) - same content
46605
388a92023a1a test-copies: introduce merge chains test for the P/Q merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46604
diff changeset
  1429
  mPQ,Tm: chained merges (conflict -> simple) - different content
46603
a1273bea99cc test-copies: introduce case combining the `p` and `q` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46602
diff changeset
  1430
  mPQm-0 merge with copies info on both side - P side: rename t to v, Q side: r to v, (different content) - one way
46605
388a92023a1a test-copies: introduce merge chains test for the P/Q merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46604
diff changeset
  1431
  mQP,Sm: chained merges (conflict -> simple) - different content
46603
a1273bea99cc test-copies: introduce case combining the `p` and `q` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46602
diff changeset
  1432
  mQPm-0 merge with copies info on both side - P side: rename t to v, Q side: r to v, (different content) - the other way
46604
c7baff95808c test-copies: add a case involving the `b` and a new `r` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46603
diff changeset
  1433
  mRBm-0 simple merge - B side: unrelated change, R side: overwrite d with a copy (from r->x->t) different content - the other way
46605
388a92023a1a test-copies: introduce merge chains test for the P/Q merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46604
diff changeset
  1434
  mS,QPm: chained merges (conflict -> simple) - different content
388a92023a1a test-copies: introduce merge chains test for the P/Q merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46604
diff changeset
  1435
  mT,PQm: chained merges (conflict -> simple) - different content
46593
075b2499e3d6 test-copies: add test chaining multiple merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46592
diff changeset
  1436
  n-1: unrelated changes (based on the "f" series of changes)
075b2499e3d6 test-copies: add test chaining multiple merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46592
diff changeset
  1437
  o-1: unrelated changes (based on "g" changes)
46601
067307d6589d test-copies: add a `p` branch similar to the `a` but on the new files
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46600
diff changeset
  1438
  p-1: t -move-> u
067307d6589d test-copies: add a `p` branch similar to the `a` but on the new files
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46600
diff changeset
  1439
  p-2: u -move-> v
46602
eb60dadd1be1 test-copies: add a `q` branch similar to the `e` but on the new files
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46601
diff changeset
  1440
  q-1 r -move-> w
eb60dadd1be1 test-copies: add a `q` branch similar to the `e` but on the new files
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46601
diff changeset
  1441
  q-2 w -move-> v
46604
c7baff95808c test-copies: add a case involving the `b` and a new `r` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46603
diff changeset
  1442
  r-1: rename r -> x
c7baff95808c test-copies: add a case involving the `b` and a new `r` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46603
diff changeset
  1443
  r-2: rename t -> x
46605
388a92023a1a test-copies: introduce merge chains test for the P/Q merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46604
diff changeset
  1444
  s-1: unrelated changes (based on the "p" series of changes)
388a92023a1a test-copies: introduce merge chains test for the P/Q merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46604
diff changeset
  1445
  t-1: unrelated changes (based on "q" changes)
46185
5f00eb608957 copies-tests: add a summary of all cases created in test-copies-chain-merge.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46160
diff changeset
  1446
5f00eb608957 copies-tests: add a summary of all cases created in test-copies-chain-merge.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46160
diff changeset
  1447
45733
ee3fd9021fac test: move upgrade run and check earlier in test-copies-chain-merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45732
diff changeset
  1448
Test that sidedata computations during upgrades are correct
ee3fd9021fac test: move upgrade run and check earlier in test-copies-chain-merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45732
diff changeset
  1449
===========================================================
ee3fd9021fac test: move upgrade run and check earlier in test-copies-chain-merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45732
diff changeset
  1450
ee3fd9021fac test: move upgrade run and check earlier in test-copies-chain-merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45732
diff changeset
  1451
We upgrade a repository that is not using sidedata (the filelog case) and
ee3fd9021fac test: move upgrade run and check earlier in test-copies-chain-merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45732
diff changeset
  1452
 check that the same side data have been generated as if they were computed at
ee3fd9021fac test: move upgrade run and check earlier in test-copies-chain-merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45732
diff changeset
  1453
 commit time.
ee3fd9021fac test: move upgrade run and check earlier in test-copies-chain-merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45732
diff changeset
  1454
ee3fd9021fac test: move upgrade run and check earlier in test-copies-chain-merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45732
diff changeset
  1455
45735
edf4fa06df94 upgrade: allow sidedata upgrade to modify revision flag
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45733
diff changeset
  1456
#if upgraded
45733
ee3fd9021fac test: move upgrade run and check earlier in test-copies-chain-merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45732
diff changeset
  1457
  $ cat >> $HGRCPATH << EOF
ee3fd9021fac test: move upgrade run and check earlier in test-copies-chain-merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45732
diff changeset
  1458
  > [format]
ee3fd9021fac test: move upgrade run and check earlier in test-copies-chain-merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45732
diff changeset
  1459
  > exp-use-side-data = yes
ee3fd9021fac test: move upgrade run and check earlier in test-copies-chain-merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45732
diff changeset
  1460
  > exp-use-copies-side-data-changeset = yes
ee3fd9021fac test: move upgrade run and check earlier in test-copies-chain-merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45732
diff changeset
  1461
  > EOF
ee3fd9021fac test: move upgrade run and check earlier in test-copies-chain-merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45732
diff changeset
  1462
  $ hg debugformat -v
ee3fd9021fac test: move upgrade run and check earlier in test-copies-chain-merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45732
diff changeset
  1463
  format-variant     repo config default
ee3fd9021fac test: move upgrade run and check earlier in test-copies-chain-merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45732
diff changeset
  1464
  fncache:            yes    yes     yes
ee3fd9021fac test: move upgrade run and check earlier in test-copies-chain-merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45732
diff changeset
  1465
  dotencode:          yes    yes     yes
ee3fd9021fac test: move upgrade run and check earlier in test-copies-chain-merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45732
diff changeset
  1466
  generaldelta:       yes    yes     yes
46334
6e81446bf1d9 share: move share safe functionality out of experimental
Pulkit Goyal <7895pulkit@gmail.com>
parents: 46186
diff changeset
  1467
  share-safe:          no     no      no
45733
ee3fd9021fac test: move upgrade run and check earlier in test-copies-chain-merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45732
diff changeset
  1468
  sparserevlog:       yes    yes     yes
ee3fd9021fac test: move upgrade run and check earlier in test-copies-chain-merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45732
diff changeset
  1469
  persistent-nodemap:  no     no      no
ee3fd9021fac test: move upgrade run and check earlier in test-copies-chain-merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45732
diff changeset
  1470
  copies-sdc:          no    yes      no
46718
fd55a9eb1507 revlogv2: allow upgrading to v2
Raphaël Gomès <rgomes@octobus.net>
parents: 46657
diff changeset
  1471
  revlog-v2:           no    yes      no
45733
ee3fd9021fac test: move upgrade run and check earlier in test-copies-chain-merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45732
diff changeset
  1472
  plain-cl-delta:     yes    yes     yes
ee3fd9021fac test: move upgrade run and check earlier in test-copies-chain-merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45732
diff changeset
  1473
  compression:        * (glob)
ee3fd9021fac test: move upgrade run and check earlier in test-copies-chain-merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45732
diff changeset
  1474
  compression-level:  default default default
ee3fd9021fac test: move upgrade run and check earlier in test-copies-chain-merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45732
diff changeset
  1475
  $ hg debugupgraderepo --run --quiet
ee3fd9021fac test: move upgrade run and check earlier in test-copies-chain-merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45732
diff changeset
  1476
  upgrade will perform the following actions:
ee3fd9021fac test: move upgrade run and check earlier in test-copies-chain-merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45732
diff changeset
  1477
  
ee3fd9021fac test: move upgrade run and check earlier in test-copies-chain-merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45732
diff changeset
  1478
  requirements
ee3fd9021fac test: move upgrade run and check earlier in test-copies-chain-merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45732
diff changeset
  1479
     preserved: * (glob)
46718
fd55a9eb1507 revlogv2: allow upgrading to v2
Raphaël Gomès <rgomes@octobus.net>
parents: 46657
diff changeset
  1480
     removed: revlogv1
fd55a9eb1507 revlogv2: allow upgrading to v2
Raphaël Gomès <rgomes@octobus.net>
parents: 46657
diff changeset
  1481
     added: exp-copies-sidedata-changeset, exp-revlogv2.2, exp-sidedata-flag
45733
ee3fd9021fac test: move upgrade run and check earlier in test-copies-chain-merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45732
diff changeset
  1482
  
46039
6c960b708ac4 upgrade: display the list of processed revlog before proceeding
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46017
diff changeset
  1483
  processed revlogs:
6c960b708ac4 upgrade: display the list of processed revlog before proceeding
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46017
diff changeset
  1484
    - all-filelogs
6c960b708ac4 upgrade: display the list of processed revlog before proceeding
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46017
diff changeset
  1485
    - changelog
6c960b708ac4 upgrade: display the list of processed revlog before proceeding
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46017
diff changeset
  1486
    - manifest
6c960b708ac4 upgrade: display the list of processed revlog before proceeding
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46017
diff changeset
  1487
  
45733
ee3fd9021fac test: move upgrade run and check earlier in test-copies-chain-merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45732
diff changeset
  1488
#endif
ee3fd9021fac test: move upgrade run and check earlier in test-copies-chain-merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45732
diff changeset
  1489
46657
dde86beca388 copies: tests and fix parallel computation of changed file information
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46649
diff changeset
  1490
#if upgraded-parallel
dde86beca388 copies: tests and fix parallel computation of changed file information
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46649
diff changeset
  1491
  $ cat >> $HGRCPATH << EOF
dde86beca388 copies: tests and fix parallel computation of changed file information
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46649
diff changeset
  1492
  > [format]
dde86beca388 copies: tests and fix parallel computation of changed file information
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46649
diff changeset
  1493
  > exp-use-side-data = yes
dde86beca388 copies: tests and fix parallel computation of changed file information
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46649
diff changeset
  1494
  > exp-use-copies-side-data-changeset = yes
dde86beca388 copies: tests and fix parallel computation of changed file information
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46649
diff changeset
  1495
  > [experimental]
dde86beca388 copies: tests and fix parallel computation of changed file information
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46649
diff changeset
  1496
  > worker.repository-upgrade=yes
dde86beca388 copies: tests and fix parallel computation of changed file information
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46649
diff changeset
  1497
  > [worker]
dde86beca388 copies: tests and fix parallel computation of changed file information
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46649
diff changeset
  1498
  > enabled=yes
dde86beca388 copies: tests and fix parallel computation of changed file information
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46649
diff changeset
  1499
  > numcpus=8
dde86beca388 copies: tests and fix parallel computation of changed file information
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46649
diff changeset
  1500
  > EOF
dde86beca388 copies: tests and fix parallel computation of changed file information
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46649
diff changeset
  1501
  $ hg debugformat -v
dde86beca388 copies: tests and fix parallel computation of changed file information
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46649
diff changeset
  1502
  format-variant     repo config default
dde86beca388 copies: tests and fix parallel computation of changed file information
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46649
diff changeset
  1503
  fncache:            yes    yes     yes
dde86beca388 copies: tests and fix parallel computation of changed file information
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46649
diff changeset
  1504
  dotencode:          yes    yes     yes
dde86beca388 copies: tests and fix parallel computation of changed file information
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46649
diff changeset
  1505
  generaldelta:       yes    yes     yes
dde86beca388 copies: tests and fix parallel computation of changed file information
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46649
diff changeset
  1506
  share-safe:          no     no      no
dde86beca388 copies: tests and fix parallel computation of changed file information
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46649
diff changeset
  1507
  sparserevlog:       yes    yes     yes
dde86beca388 copies: tests and fix parallel computation of changed file information
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46649
diff changeset
  1508
  persistent-nodemap:  no     no      no
dde86beca388 copies: tests and fix parallel computation of changed file information
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46649
diff changeset
  1509
  copies-sdc:          no    yes      no
46718
fd55a9eb1507 revlogv2: allow upgrading to v2
Raphaël Gomès <rgomes@octobus.net>
parents: 46657
diff changeset
  1510
  revlog-v2:           no    yes      no
46657
dde86beca388 copies: tests and fix parallel computation of changed file information
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46649
diff changeset
  1511
  plain-cl-delta:     yes    yes     yes
dde86beca388 copies: tests and fix parallel computation of changed file information
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46649
diff changeset
  1512
  compression:        * (glob)
dde86beca388 copies: tests and fix parallel computation of changed file information
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46649
diff changeset
  1513
  compression-level:  default default default
dde86beca388 copies: tests and fix parallel computation of changed file information
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46649
diff changeset
  1514
  $ hg debugupgraderepo --run --quiet
dde86beca388 copies: tests and fix parallel computation of changed file information
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46649
diff changeset
  1515
  upgrade will perform the following actions:
dde86beca388 copies: tests and fix parallel computation of changed file information
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46649
diff changeset
  1516
  
dde86beca388 copies: tests and fix parallel computation of changed file information
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46649
diff changeset
  1517
  requirements
dde86beca388 copies: tests and fix parallel computation of changed file information
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46649
diff changeset
  1518
     preserved: * (glob)
46718
fd55a9eb1507 revlogv2: allow upgrading to v2
Raphaël Gomès <rgomes@octobus.net>
parents: 46657
diff changeset
  1519
     removed: revlogv1
fd55a9eb1507 revlogv2: allow upgrading to v2
Raphaël Gomès <rgomes@octobus.net>
parents: 46657
diff changeset
  1520
     added: exp-copies-sidedata-changeset, exp-revlogv2.2, exp-sidedata-flag
46657
dde86beca388 copies: tests and fix parallel computation of changed file information
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46649
diff changeset
  1521
  
dde86beca388 copies: tests and fix parallel computation of changed file information
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46649
diff changeset
  1522
  processed revlogs:
dde86beca388 copies: tests and fix parallel computation of changed file information
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46649
diff changeset
  1523
    - all-filelogs
dde86beca388 copies: tests and fix parallel computation of changed file information
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46649
diff changeset
  1524
    - changelog
dde86beca388 copies: tests and fix parallel computation of changed file information
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46649
diff changeset
  1525
    - manifest
dde86beca388 copies: tests and fix parallel computation of changed file information
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46649
diff changeset
  1526
  
dde86beca388 copies: tests and fix parallel computation of changed file information
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46649
diff changeset
  1527
#endif
dde86beca388 copies: tests and fix parallel computation of changed file information
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46649
diff changeset
  1528
45733
ee3fd9021fac test: move upgrade run and check earlier in test-copies-chain-merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45732
diff changeset
  1529
45735
edf4fa06df94 upgrade: allow sidedata upgrade to modify revision flag
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45733
diff changeset
  1530
#if no-compatibility no-filelog no-changeset
45733
ee3fd9021fac test: move upgrade run and check earlier in test-copies-chain-merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45732
diff changeset
  1531
46538
c2435280ca63 copy-tracing: add a --compute flag to debugchangedfiles
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46334
diff changeset
  1532
  $ hg debugchangedfiles --compute 0
c2435280ca63 copy-tracing: add a --compute flag to debugchangedfiles
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46334
diff changeset
  1533
  added      : a, ;
c2435280ca63 copy-tracing: add a --compute flag to debugchangedfiles
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46334
diff changeset
  1534
  added      : b, ;
c2435280ca63 copy-tracing: add a --compute flag to debugchangedfiles
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46334
diff changeset
  1535
  added      : h, ;
46599
46205a478a08 test-copies: add 3 new files with their own content
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46598
diff changeset
  1536
  added      : p, ;
46205a478a08 test-copies: add 3 new files with their own content
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46598
diff changeset
  1537
  added      : q, ;
46205a478a08 test-copies: add 3 new files with their own content
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46598
diff changeset
  1538
  added      : r, ;
46538
c2435280ca63 copy-tracing: add a --compute flag to debugchangedfiles
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46334
diff changeset
  1539
45733
ee3fd9021fac test: move upgrade run and check earlier in test-copies-chain-merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45732
diff changeset
  1540
  $ for rev in `hg log --rev 'all()' -T '{rev}\n'`; do
46595
cb15216a52f5 test-copies: use "case-id" instead of revision number when listing sidedata
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46594
diff changeset
  1541
  >     case_id=`hg log -r $rev -T '{word(0, desc, ":")}\n'`
cb15216a52f5 test-copies: use "case-id" instead of revision number when listing sidedata
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46594
diff changeset
  1542
  >     echo "##### revision \"$case_id\" #####"
45733
ee3fd9021fac test: move upgrade run and check earlier in test-copies-chain-merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45732
diff changeset
  1543
  >     hg debugsidedata -c -v -- $rev
ee3fd9021fac test: move upgrade run and check earlier in test-copies-chain-merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45732
diff changeset
  1544
  >     hg debugchangedfiles $rev
ee3fd9021fac test: move upgrade run and check earlier in test-copies-chain-merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45732
diff changeset
  1545
  > done
46595
cb15216a52f5 test-copies: use "case-id" instead of revision number when listing sidedata
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46594
diff changeset
  1546
  ##### revision "i-0 initial commit" #####
45733
ee3fd9021fac test: move upgrade run and check earlier in test-copies-chain-merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45732
diff changeset
  1547
  1 sidedata entries
46599
46205a478a08 test-copies: add 3 new files with their own content
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46598
diff changeset
  1548
   entry-0014 size 64
46205a478a08 test-copies: add 3 new files with their own content
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46598
diff changeset
  1549
    '\x00\x00\x00\x06\x04\x00\x00\x00\x01\x00\x00\x00\x00\x04\x00\x00\x00\x02\x00\x00\x00\x00\x04\x00\x00\x00\x03\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x00\x04\x00\x00\x00\x06\x00\x00\x00\x00abhpqr'
45733
ee3fd9021fac test: move upgrade run and check earlier in test-copies-chain-merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45732
diff changeset
  1550
  added      : a, ;
ee3fd9021fac test: move upgrade run and check earlier in test-copies-chain-merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45732
diff changeset
  1551
  added      : b, ;
ee3fd9021fac test: move upgrade run and check earlier in test-copies-chain-merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45732
diff changeset
  1552
  added      : h, ;
46599
46205a478a08 test-copies: add 3 new files with their own content
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46598
diff changeset
  1553
  added      : p, ;
46205a478a08 test-copies: add 3 new files with their own content
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46598
diff changeset
  1554
  added      : q, ;
46205a478a08 test-copies: add 3 new files with their own content
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46598
diff changeset
  1555
  added      : r, ;
46595
cb15216a52f5 test-copies: use "case-id" instead of revision number when listing sidedata
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46594
diff changeset
  1556
  ##### revision "i-1" #####
45733
ee3fd9021fac test: move upgrade run and check earlier in test-copies-chain-merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45732
diff changeset
  1557
  1 sidedata entries
46600
0ebfd02dafd5 test-copies: move the new files in the `i` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46599
diff changeset
  1558
   entry-0014 size 44
0ebfd02dafd5 test-copies: move the new files in the `i` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46599
diff changeset
  1559
    '\x00\x00\x00\x04\x0c\x00\x00\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x02\x00\x00\x00\x00\x0c\x00\x00\x00\x03\x00\x00\x00\x00\x06\x00\x00\x00\x04\x00\x00\x00\x02acps'
45733
ee3fd9021fac test: move upgrade run and check earlier in test-copies-chain-merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45732
diff changeset
  1560
  removed    : a, ;
ee3fd9021fac test: move upgrade run and check earlier in test-copies-chain-merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45732
diff changeset
  1561
  added    p1: c, a;
46600
0ebfd02dafd5 test-copies: move the new files in the `i` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46599
diff changeset
  1562
  removed    : p, ;
0ebfd02dafd5 test-copies: move the new files in the `i` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46599
diff changeset
  1563
  added    p1: s, p;
46595
cb15216a52f5 test-copies: use "case-id" instead of revision number when listing sidedata
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46594
diff changeset
  1564
  ##### revision "i-2" #####
45733
ee3fd9021fac test: move upgrade run and check earlier in test-copies-chain-merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45732
diff changeset
  1565
  1 sidedata entries
46600
0ebfd02dafd5 test-copies: move the new files in the `i` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46599
diff changeset
  1566
   entry-0014 size 44
0ebfd02dafd5 test-copies: move the new files in the `i` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46599
diff changeset
  1567
    '\x00\x00\x00\x04\x0c\x00\x00\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x02\x00\x00\x00\x00\x0c\x00\x00\x00\x03\x00\x00\x00\x00\x06\x00\x00\x00\x04\x00\x00\x00\x02cdst'
45733
ee3fd9021fac test: move upgrade run and check earlier in test-copies-chain-merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45732
diff changeset
  1568
  removed    : c, ;
ee3fd9021fac test: move upgrade run and check earlier in test-copies-chain-merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45732
diff changeset
  1569
  added    p1: d, c;
46600
0ebfd02dafd5 test-copies: move the new files in the `i` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46599
diff changeset
  1570
  removed    : s, ;
0ebfd02dafd5 test-copies: move the new files in the `i` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46599
diff changeset
  1571
  added    p1: t, s;
46595
cb15216a52f5 test-copies: use "case-id" instead of revision number when listing sidedata
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46594
diff changeset
  1572
  ##### revision "a-1" #####
45733
ee3fd9021fac test: move upgrade run and check earlier in test-copies-chain-merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45732
diff changeset
  1573
  1 sidedata entries
ee3fd9021fac test: move upgrade run and check earlier in test-copies-chain-merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45732
diff changeset
  1574
   entry-0014 size 24
ee3fd9021fac test: move upgrade run and check earlier in test-copies-chain-merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45732
diff changeset
  1575
    '\x00\x00\x00\x02\x0c\x00\x00\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x02\x00\x00\x00\x00de'
ee3fd9021fac test: move upgrade run and check earlier in test-copies-chain-merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45732
diff changeset
  1576
  removed    : d, ;
ee3fd9021fac test: move upgrade run and check earlier in test-copies-chain-merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45732
diff changeset
  1577
  added    p1: e, d;
46595
cb15216a52f5 test-copies: use "case-id" instead of revision number when listing sidedata
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46594
diff changeset
  1578
  ##### revision "a-2" #####
45733
ee3fd9021fac test: move upgrade run and check earlier in test-copies-chain-merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45732
diff changeset
  1579
  1 sidedata entries
ee3fd9021fac test: move upgrade run and check earlier in test-copies-chain-merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45732
diff changeset
  1580
   entry-0014 size 24
ee3fd9021fac test: move upgrade run and check earlier in test-copies-chain-merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45732
diff changeset
  1581
    '\x00\x00\x00\x02\x0c\x00\x00\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x02\x00\x00\x00\x00ef'
ee3fd9021fac test: move upgrade run and check earlier in test-copies-chain-merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45732
diff changeset
  1582
  removed    : e, ;
ee3fd9021fac test: move upgrade run and check earlier in test-copies-chain-merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45732
diff changeset
  1583
  added    p1: f, e;
46595
cb15216a52f5 test-copies: use "case-id" instead of revision number when listing sidedata
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46594
diff changeset
  1584
  ##### revision "b-1" #####
45733
ee3fd9021fac test: move upgrade run and check earlier in test-copies-chain-merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45732
diff changeset
  1585
  1 sidedata entries
ee3fd9021fac test: move upgrade run and check earlier in test-copies-chain-merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45732
diff changeset
  1586
   entry-0014 size 14
ee3fd9021fac test: move upgrade run and check earlier in test-copies-chain-merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45732
diff changeset
  1587
    '\x00\x00\x00\x01\x14\x00\x00\x00\x01\x00\x00\x00\x00b'
ee3fd9021fac test: move upgrade run and check earlier in test-copies-chain-merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45732
diff changeset
  1588
  touched    : b, ;
46595
cb15216a52f5 test-copies: use "case-id" instead of revision number when listing sidedata
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46594
diff changeset
  1589
  ##### revision "c-1 delete d" #####
45733
ee3fd9021fac test: move upgrade run and check earlier in test-copies-chain-merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45732
diff changeset
  1590
  1 sidedata entries
ee3fd9021fac test: move upgrade run and check earlier in test-copies-chain-merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45732
diff changeset
  1591
   entry-0014 size 14
ee3fd9021fac test: move upgrade run and check earlier in test-copies-chain-merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45732
diff changeset
  1592
    '\x00\x00\x00\x01\x0c\x00\x00\x00\x01\x00\x00\x00\x00d'
ee3fd9021fac test: move upgrade run and check earlier in test-copies-chain-merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45732
diff changeset
  1593
  removed    : d, ;
46595
cb15216a52f5 test-copies: use "case-id" instead of revision number when listing sidedata
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46594
diff changeset
  1594
  ##### revision "d-1 delete d" #####
45733
ee3fd9021fac test: move upgrade run and check earlier in test-copies-chain-merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45732
diff changeset
  1595
  1 sidedata entries
ee3fd9021fac test: move upgrade run and check earlier in test-copies-chain-merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45732
diff changeset
  1596
   entry-0014 size 14
ee3fd9021fac test: move upgrade run and check earlier in test-copies-chain-merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45732
diff changeset
  1597
    '\x00\x00\x00\x01\x0c\x00\x00\x00\x01\x00\x00\x00\x00d'
ee3fd9021fac test: move upgrade run and check earlier in test-copies-chain-merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45732
diff changeset
  1598
  removed    : d, ;
46595
cb15216a52f5 test-copies: use "case-id" instead of revision number when listing sidedata
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46594
diff changeset
  1599
  ##### revision "d-2 re-add d" #####
45733
ee3fd9021fac test: move upgrade run and check earlier in test-copies-chain-merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45732
diff changeset
  1600
  1 sidedata entries
ee3fd9021fac test: move upgrade run and check earlier in test-copies-chain-merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45732
diff changeset
  1601
   entry-0014 size 14
ee3fd9021fac test: move upgrade run and check earlier in test-copies-chain-merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45732
diff changeset
  1602
    '\x00\x00\x00\x01\x04\x00\x00\x00\x01\x00\x00\x00\x00d'
ee3fd9021fac test: move upgrade run and check earlier in test-copies-chain-merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45732
diff changeset
  1603
  added      : d, ;
46595
cb15216a52f5 test-copies: use "case-id" instead of revision number when listing sidedata
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46594
diff changeset
  1604
  ##### revision "e-1 b -move-> g" #####
45733
ee3fd9021fac test: move upgrade run and check earlier in test-copies-chain-merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45732
diff changeset
  1605
  1 sidedata entries
ee3fd9021fac test: move upgrade run and check earlier in test-copies-chain-merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45732
diff changeset
  1606
   entry-0014 size 24
ee3fd9021fac test: move upgrade run and check earlier in test-copies-chain-merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45732
diff changeset
  1607
    '\x00\x00\x00\x02\x0c\x00\x00\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x02\x00\x00\x00\x00bg'
ee3fd9021fac test: move upgrade run and check earlier in test-copies-chain-merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45732
diff changeset
  1608
  removed    : b, ;
ee3fd9021fac test: move upgrade run and check earlier in test-copies-chain-merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45732
diff changeset
  1609
  added    p1: g, b;
46595
cb15216a52f5 test-copies: use "case-id" instead of revision number when listing sidedata
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46594
diff changeset
  1610
  ##### revision "e-2 g -move-> f" #####
45733
ee3fd9021fac test: move upgrade run and check earlier in test-copies-chain-merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45732
diff changeset
  1611
  1 sidedata entries
ee3fd9021fac test: move upgrade run and check earlier in test-copies-chain-merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45732
diff changeset
  1612
   entry-0014 size 24
ee3fd9021fac test: move upgrade run and check earlier in test-copies-chain-merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45732
diff changeset
  1613
    '\x00\x00\x00\x02\x06\x00\x00\x00\x01\x00\x00\x00\x01\x0c\x00\x00\x00\x02\x00\x00\x00\x00fg'
ee3fd9021fac test: move upgrade run and check earlier in test-copies-chain-merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45732
diff changeset
  1614
  added    p1: f, g;
ee3fd9021fac test: move upgrade run and check earlier in test-copies-chain-merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45732
diff changeset
  1615
  removed    : g, ;
46601
067307d6589d test-copies: add a `p` branch similar to the `a` but on the new files
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46600
diff changeset
  1616
  ##### revision "p-1" #####
067307d6589d test-copies: add a `p` branch similar to the `a` but on the new files
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46600
diff changeset
  1617
  1 sidedata entries
067307d6589d test-copies: add a `p` branch similar to the `a` but on the new files
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46600
diff changeset
  1618
   entry-0014 size 24
067307d6589d test-copies: add a `p` branch similar to the `a` but on the new files
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46600
diff changeset
  1619
    '\x00\x00\x00\x02\x0c\x00\x00\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x02\x00\x00\x00\x00tu'
067307d6589d test-copies: add a `p` branch similar to the `a` but on the new files
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46600
diff changeset
  1620
  removed    : t, ;
067307d6589d test-copies: add a `p` branch similar to the `a` but on the new files
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46600
diff changeset
  1621
  added    p1: u, t;
067307d6589d test-copies: add a `p` branch similar to the `a` but on the new files
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46600
diff changeset
  1622
  ##### revision "p-2" #####
067307d6589d test-copies: add a `p` branch similar to the `a` but on the new files
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46600
diff changeset
  1623
  1 sidedata entries
067307d6589d test-copies: add a `p` branch similar to the `a` but on the new files
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46600
diff changeset
  1624
   entry-0014 size 24
067307d6589d test-copies: add a `p` branch similar to the `a` but on the new files
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46600
diff changeset
  1625
    '\x00\x00\x00\x02\x0c\x00\x00\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x02\x00\x00\x00\x00uv'
067307d6589d test-copies: add a `p` branch similar to the `a` but on the new files
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46600
diff changeset
  1626
  removed    : u, ;
067307d6589d test-copies: add a `p` branch similar to the `a` but on the new files
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46600
diff changeset
  1627
  added    p1: v, u;
46602
eb60dadd1be1 test-copies: add a `q` branch similar to the `e` but on the new files
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46601
diff changeset
  1628
  ##### revision "q-1 r -move-> w" #####
eb60dadd1be1 test-copies: add a `q` branch similar to the `e` but on the new files
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46601
diff changeset
  1629
  1 sidedata entries
eb60dadd1be1 test-copies: add a `q` branch similar to the `e` but on the new files
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46601
diff changeset
  1630
   entry-0014 size 24
eb60dadd1be1 test-copies: add a `q` branch similar to the `e` but on the new files
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46601
diff changeset
  1631
    '\x00\x00\x00\x02\x0c\x00\x00\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x02\x00\x00\x00\x00rw'
eb60dadd1be1 test-copies: add a `q` branch similar to the `e` but on the new files
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46601
diff changeset
  1632
  removed    : r, ;
eb60dadd1be1 test-copies: add a `q` branch similar to the `e` but on the new files
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46601
diff changeset
  1633
  added    p1: w, r;
eb60dadd1be1 test-copies: add a `q` branch similar to the `e` but on the new files
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46601
diff changeset
  1634
  ##### revision "q-2 w -move-> v" #####
eb60dadd1be1 test-copies: add a `q` branch similar to the `e` but on the new files
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46601
diff changeset
  1635
  1 sidedata entries
eb60dadd1be1 test-copies: add a `q` branch similar to the `e` but on the new files
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46601
diff changeset
  1636
   entry-0014 size 24
eb60dadd1be1 test-copies: add a `q` branch similar to the `e` but on the new files
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46601
diff changeset
  1637
    '\x00\x00\x00\x02\x06\x00\x00\x00\x01\x00\x00\x00\x01\x0c\x00\x00\x00\x02\x00\x00\x00\x00vw'
eb60dadd1be1 test-copies: add a `q` branch similar to the `e` but on the new files
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46601
diff changeset
  1638
  added    p1: v, w;
eb60dadd1be1 test-copies: add a `q` branch similar to the `e` but on the new files
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46601
diff changeset
  1639
  removed    : w, ;
46595
cb15216a52f5 test-copies: use "case-id" instead of revision number when listing sidedata
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46594
diff changeset
  1640
  ##### revision "mBAm-0 simple merge - A side" #####
45733
ee3fd9021fac test: move upgrade run and check earlier in test-copies-chain-merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45732
diff changeset
  1641
  1 sidedata entries
ee3fd9021fac test: move upgrade run and check earlier in test-copies-chain-merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45732
diff changeset
  1642
   entry-0014 size 4
ee3fd9021fac test: move upgrade run and check earlier in test-copies-chain-merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45732
diff changeset
  1643
    '\x00\x00\x00\x00'
46595
cb15216a52f5 test-copies: use "case-id" instead of revision number when listing sidedata
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46594
diff changeset
  1644
  ##### revision "mABm-0 simple merge - A side" #####
45733
ee3fd9021fac test: move upgrade run and check earlier in test-copies-chain-merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45732
diff changeset
  1645
  1 sidedata entries
ee3fd9021fac test: move upgrade run and check earlier in test-copies-chain-merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45732
diff changeset
  1646
   entry-0014 size 4
ee3fd9021fac test: move upgrade run and check earlier in test-copies-chain-merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45732
diff changeset
  1647
    '\x00\x00\x00\x00'
46595
cb15216a52f5 test-copies: use "case-id" instead of revision number when listing sidedata
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46594
diff changeset
  1648
  ##### revision "mBCm-0 simple merge - C side" #####
45733
ee3fd9021fac test: move upgrade run and check earlier in test-copies-chain-merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45732
diff changeset
  1649
  1 sidedata entries
ee3fd9021fac test: move upgrade run and check earlier in test-copies-chain-merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45732
diff changeset
  1650
   entry-0014 size 4
ee3fd9021fac test: move upgrade run and check earlier in test-copies-chain-merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45732
diff changeset
  1651
    '\x00\x00\x00\x00'
46595
cb15216a52f5 test-copies: use "case-id" instead of revision number when listing sidedata
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46594
diff changeset
  1652
  ##### revision "mBCm-1 re-add d" #####
45733
ee3fd9021fac test: move upgrade run and check earlier in test-copies-chain-merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45732
diff changeset
  1653
  1 sidedata entries
ee3fd9021fac test: move upgrade run and check earlier in test-copies-chain-merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45732
diff changeset
  1654
   entry-0014 size 14
ee3fd9021fac test: move upgrade run and check earlier in test-copies-chain-merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45732
diff changeset
  1655
    '\x00\x00\x00\x01\x04\x00\x00\x00\x01\x00\x00\x00\x00d'
ee3fd9021fac test: move upgrade run and check earlier in test-copies-chain-merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45732
diff changeset
  1656
  added      : d, ;
46595
cb15216a52f5 test-copies: use "case-id" instead of revision number when listing sidedata
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46594
diff changeset
  1657
  ##### revision "mCBm-0 simple merge - C side" #####
45733
ee3fd9021fac test: move upgrade run and check earlier in test-copies-chain-merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45732
diff changeset
  1658
  1 sidedata entries
ee3fd9021fac test: move upgrade run and check earlier in test-copies-chain-merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45732
diff changeset
  1659
   entry-0014 size 4
ee3fd9021fac test: move upgrade run and check earlier in test-copies-chain-merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45732
diff changeset
  1660
    '\x00\x00\x00\x00'
46595
cb15216a52f5 test-copies: use "case-id" instead of revision number when listing sidedata
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46594
diff changeset
  1661
  ##### revision "mCBm-1 re-add d" #####
45733
ee3fd9021fac test: move upgrade run and check earlier in test-copies-chain-merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45732
diff changeset
  1662
  1 sidedata entries
ee3fd9021fac test: move upgrade run and check earlier in test-copies-chain-merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45732
diff changeset
  1663
   entry-0014 size 14
ee3fd9021fac test: move upgrade run and check earlier in test-copies-chain-merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45732
diff changeset
  1664
    '\x00\x00\x00\x01\x04\x00\x00\x00\x01\x00\x00\x00\x00d'
ee3fd9021fac test: move upgrade run and check earlier in test-copies-chain-merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45732
diff changeset
  1665
  added      : d, ;
46595
cb15216a52f5 test-copies: use "case-id" instead of revision number when listing sidedata
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46594
diff changeset
  1666
  ##### revision "mBDm-0 simple merge - B side" #####
45733
ee3fd9021fac test: move upgrade run and check earlier in test-copies-chain-merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45732
diff changeset
  1667
  1 sidedata entries
ee3fd9021fac test: move upgrade run and check earlier in test-copies-chain-merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45732
diff changeset
  1668
   entry-0014 size 4
ee3fd9021fac test: move upgrade run and check earlier in test-copies-chain-merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45732
diff changeset
  1669
    '\x00\x00\x00\x00'
46595
cb15216a52f5 test-copies: use "case-id" instead of revision number when listing sidedata
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46594
diff changeset
  1670
  ##### revision "mDBm-0 simple merge - B side" #####
45733
ee3fd9021fac test: move upgrade run and check earlier in test-copies-chain-merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45732
diff changeset
  1671
  1 sidedata entries
ee3fd9021fac test: move upgrade run and check earlier in test-copies-chain-merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45732
diff changeset
  1672
   entry-0014 size 4
ee3fd9021fac test: move upgrade run and check earlier in test-copies-chain-merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45732
diff changeset
  1673
    '\x00\x00\x00\x00'
46595
cb15216a52f5 test-copies: use "case-id" instead of revision number when listing sidedata
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46594
diff changeset
  1674
  ##### revision "mAEm-0 merge with copies info on both side - A side" #####
45733
ee3fd9021fac test: move upgrade run and check earlier in test-copies-chain-merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45732
diff changeset
  1675
  1 sidedata entries
ee3fd9021fac test: move upgrade run and check earlier in test-copies-chain-merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45732
diff changeset
  1676
   entry-0014 size 14
ee3fd9021fac test: move upgrade run and check earlier in test-copies-chain-merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45732
diff changeset
  1677
    '\x00\x00\x00\x01\x08\x00\x00\x00\x01\x00\x00\x00\x00f'
ee3fd9021fac test: move upgrade run and check earlier in test-copies-chain-merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45732
diff changeset
  1678
  merged     : f, ;
46595
cb15216a52f5 test-copies: use "case-id" instead of revision number when listing sidedata
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46594
diff changeset
  1679
  ##### revision "mEAm-0 merge with copies info on both side - A side" #####
45733
ee3fd9021fac test: move upgrade run and check earlier in test-copies-chain-merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45732
diff changeset
  1680
  1 sidedata entries
ee3fd9021fac test: move upgrade run and check earlier in test-copies-chain-merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45732
diff changeset
  1681
   entry-0014 size 14
ee3fd9021fac test: move upgrade run and check earlier in test-copies-chain-merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45732
diff changeset
  1682
    '\x00\x00\x00\x01\x08\x00\x00\x00\x01\x00\x00\x00\x00f'
ee3fd9021fac test: move upgrade run and check earlier in test-copies-chain-merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45732
diff changeset
  1683
  merged     : f, ;
46603
a1273bea99cc test-copies: introduce case combining the `p` and `q` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46602
diff changeset
  1684
  ##### revision "mPQm-0 merge with copies info on both side - P side" #####
a1273bea99cc test-copies: introduce case combining the `p` and `q` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46602
diff changeset
  1685
  1 sidedata entries
a1273bea99cc test-copies: introduce case combining the `p` and `q` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46602
diff changeset
  1686
   entry-0014 size 14
a1273bea99cc test-copies: introduce case combining the `p` and `q` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46602
diff changeset
  1687
    '\x00\x00\x00\x01\x08\x00\x00\x00\x01\x00\x00\x00\x00v'
a1273bea99cc test-copies: introduce case combining the `p` and `q` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46602
diff changeset
  1688
  merged     : v, ;
a1273bea99cc test-copies: introduce case combining the `p` and `q` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46602
diff changeset
  1689
  ##### revision "mQPm-0 merge with copies info on both side - P side" #####
a1273bea99cc test-copies: introduce case combining the `p` and `q` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46602
diff changeset
  1690
  1 sidedata entries
a1273bea99cc test-copies: introduce case combining the `p` and `q` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46602
diff changeset
  1691
   entry-0014 size 14
a1273bea99cc test-copies: introduce case combining the `p` and `q` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46602
diff changeset
  1692
    '\x00\x00\x00\x01\x08\x00\x00\x00\x01\x00\x00\x00\x00v'
a1273bea99cc test-copies: introduce case combining the `p` and `q` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46602
diff changeset
  1693
  merged     : v, ;
46595
cb15216a52f5 test-copies: use "case-id" instead of revision number when listing sidedata
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46594
diff changeset
  1694
  ##### revision "f-1" #####
45733
ee3fd9021fac test: move upgrade run and check earlier in test-copies-chain-merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45732
diff changeset
  1695
  1 sidedata entries
ee3fd9021fac test: move upgrade run and check earlier in test-copies-chain-merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45732
diff changeset
  1696
   entry-0014 size 24
ee3fd9021fac test: move upgrade run and check earlier in test-copies-chain-merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45732
diff changeset
  1697
    '\x00\x00\x00\x02\x0c\x00\x00\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x02\x00\x00\x00\x00hi'
ee3fd9021fac test: move upgrade run and check earlier in test-copies-chain-merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45732
diff changeset
  1698
  removed    : h, ;
ee3fd9021fac test: move upgrade run and check earlier in test-copies-chain-merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45732
diff changeset
  1699
  added    p1: i, h;
46595
cb15216a52f5 test-copies: use "case-id" instead of revision number when listing sidedata
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46594
diff changeset
  1700
  ##### revision "f-2" #####
45733
ee3fd9021fac test: move upgrade run and check earlier in test-copies-chain-merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45732
diff changeset
  1701
  1 sidedata entries
ee3fd9021fac test: move upgrade run and check earlier in test-copies-chain-merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45732
diff changeset
  1702
   entry-0014 size 24
ee3fd9021fac test: move upgrade run and check earlier in test-copies-chain-merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45732
diff changeset
  1703
    '\x00\x00\x00\x02\x16\x00\x00\x00\x01\x00\x00\x00\x01\x0c\x00\x00\x00\x02\x00\x00\x00\x00di'
ee3fd9021fac test: move upgrade run and check earlier in test-copies-chain-merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45732
diff changeset
  1704
  touched  p1: d, i;
ee3fd9021fac test: move upgrade run and check earlier in test-copies-chain-merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45732
diff changeset
  1705
  removed    : i, ;
46595
cb15216a52f5 test-copies: use "case-id" instead of revision number when listing sidedata
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46594
diff changeset
  1706
  ##### revision "mBFm-0 simple merge - B side" #####
45733
ee3fd9021fac test: move upgrade run and check earlier in test-copies-chain-merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45732
diff changeset
  1707
  1 sidedata entries
ee3fd9021fac test: move upgrade run and check earlier in test-copies-chain-merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45732
diff changeset
  1708
   entry-0014 size 4
ee3fd9021fac test: move upgrade run and check earlier in test-copies-chain-merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45732
diff changeset
  1709
    '\x00\x00\x00\x00'
46595
cb15216a52f5 test-copies: use "case-id" instead of revision number when listing sidedata
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46594
diff changeset
  1710
  ##### revision "mFBm-0 simple merge - B side" #####
45733
ee3fd9021fac test: move upgrade run and check earlier in test-copies-chain-merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45732
diff changeset
  1711
  1 sidedata entries
ee3fd9021fac test: move upgrade run and check earlier in test-copies-chain-merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45732
diff changeset
  1712
   entry-0014 size 4
ee3fd9021fac test: move upgrade run and check earlier in test-copies-chain-merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45732
diff changeset
  1713
    '\x00\x00\x00\x00'
46604
c7baff95808c test-copies: add a case involving the `b` and a new `r` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46603
diff changeset
  1714
  ##### revision "r-1" #####
c7baff95808c test-copies: add a case involving the `b` and a new `r` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46603
diff changeset
  1715
  1 sidedata entries
c7baff95808c test-copies: add a case involving the `b` and a new `r` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46603
diff changeset
  1716
   entry-0014 size 24
c7baff95808c test-copies: add a case involving the `b` and a new `r` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46603
diff changeset
  1717
    '\x00\x00\x00\x02\x0c\x00\x00\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x02\x00\x00\x00\x00rx'
c7baff95808c test-copies: add a case involving the `b` and a new `r` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46603
diff changeset
  1718
  removed    : r, ;
c7baff95808c test-copies: add a case involving the `b` and a new `r` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46603
diff changeset
  1719
  added    p1: x, r;
c7baff95808c test-copies: add a case involving the `b` and a new `r` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46603
diff changeset
  1720
  ##### revision "r-2" #####
c7baff95808c test-copies: add a case involving the `b` and a new `r` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46603
diff changeset
  1721
  1 sidedata entries
c7baff95808c test-copies: add a case involving the `b` and a new `r` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46603
diff changeset
  1722
   entry-0014 size 24
c7baff95808c test-copies: add a case involving the `b` and a new `r` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46603
diff changeset
  1723
    '\x00\x00\x00\x02\x16\x00\x00\x00\x01\x00\x00\x00\x01\x0c\x00\x00\x00\x02\x00\x00\x00\x00tx'
c7baff95808c test-copies: add a case involving the `b` and a new `r` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46603
diff changeset
  1724
  touched  p1: t, x;
c7baff95808c test-copies: add a case involving the `b` and a new `r` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46603
diff changeset
  1725
  removed    : x, ;
c7baff95808c test-copies: add a case involving the `b` and a new `r` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46603
diff changeset
  1726
  ##### revision "mBRm-0 simple merge - B side" #####
c7baff95808c test-copies: add a case involving the `b` and a new `r` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46603
diff changeset
  1727
  1 sidedata entries
c7baff95808c test-copies: add a case involving the `b` and a new `r` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46603
diff changeset
  1728
   entry-0014 size 4
c7baff95808c test-copies: add a case involving the `b` and a new `r` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46603
diff changeset
  1729
    '\x00\x00\x00\x00'
c7baff95808c test-copies: add a case involving the `b` and a new `r` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46603
diff changeset
  1730
  ##### revision "mRBm-0 simple merge - B side" #####
c7baff95808c test-copies: add a case involving the `b` and a new `r` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46603
diff changeset
  1731
  1 sidedata entries
c7baff95808c test-copies: add a case involving the `b` and a new `r` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46603
diff changeset
  1732
   entry-0014 size 4
c7baff95808c test-copies: add a case involving the `b` and a new `r` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46603
diff changeset
  1733
    '\x00\x00\x00\x00'
46595
cb15216a52f5 test-copies: use "case-id" instead of revision number when listing sidedata
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46594
diff changeset
  1734
  ##### revision "g-1" #####
45733
ee3fd9021fac test: move upgrade run and check earlier in test-copies-chain-merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45732
diff changeset
  1735
  1 sidedata entries
ee3fd9021fac test: move upgrade run and check earlier in test-copies-chain-merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45732
diff changeset
  1736
   entry-0014 size 14
ee3fd9021fac test: move upgrade run and check earlier in test-copies-chain-merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45732
diff changeset
  1737
    '\x00\x00\x00\x01\x14\x00\x00\x00\x01\x00\x00\x00\x00d'
ee3fd9021fac test: move upgrade run and check earlier in test-copies-chain-merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45732
diff changeset
  1738
  touched    : d, ;
46595
cb15216a52f5 test-copies: use "case-id" instead of revision number when listing sidedata
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46594
diff changeset
  1739
  ##### revision "mDGm-0 actual content merge, copies on one side - D side" #####
45733
ee3fd9021fac test: move upgrade run and check earlier in test-copies-chain-merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45732
diff changeset
  1740
  1 sidedata entries
ee3fd9021fac test: move upgrade run and check earlier in test-copies-chain-merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45732
diff changeset
  1741
   entry-0014 size 14
ee3fd9021fac test: move upgrade run and check earlier in test-copies-chain-merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45732
diff changeset
  1742
    '\x00\x00\x00\x01\x08\x00\x00\x00\x01\x00\x00\x00\x00d'
ee3fd9021fac test: move upgrade run and check earlier in test-copies-chain-merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45732
diff changeset
  1743
  merged     : d, ;
46595
cb15216a52f5 test-copies: use "case-id" instead of revision number when listing sidedata
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46594
diff changeset
  1744
  ##### revision "mGDm-0 actual content merge, copies on one side - D side" #####
45733
ee3fd9021fac test: move upgrade run and check earlier in test-copies-chain-merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45732
diff changeset
  1745
  1 sidedata entries
ee3fd9021fac test: move upgrade run and check earlier in test-copies-chain-merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45732
diff changeset
  1746
   entry-0014 size 14
ee3fd9021fac test: move upgrade run and check earlier in test-copies-chain-merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45732
diff changeset
  1747
    '\x00\x00\x00\x01\x08\x00\x00\x00\x01\x00\x00\x00\x00d'
ee3fd9021fac test: move upgrade run and check earlier in test-copies-chain-merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45732
diff changeset
  1748
  merged     : d, ;
46595
cb15216a52f5 test-copies: use "case-id" instead of revision number when listing sidedata
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46594
diff changeset
  1749
  ##### revision "mFGm-0 merge - G side" #####
45733
ee3fd9021fac test: move upgrade run and check earlier in test-copies-chain-merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45732
diff changeset
  1750
  1 sidedata entries
ee3fd9021fac test: move upgrade run and check earlier in test-copies-chain-merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45732
diff changeset
  1751
   entry-0014 size 14
ee3fd9021fac test: move upgrade run and check earlier in test-copies-chain-merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45732
diff changeset
  1752
    '\x00\x00\x00\x01\x08\x00\x00\x00\x01\x00\x00\x00\x00d'
ee3fd9021fac test: move upgrade run and check earlier in test-copies-chain-merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45732
diff changeset
  1753
  merged     : d, ;
46595
cb15216a52f5 test-copies: use "case-id" instead of revision number when listing sidedata
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46594
diff changeset
  1754
  ##### revision "mGFm-0 merge - G side" #####
45733
ee3fd9021fac test: move upgrade run and check earlier in test-copies-chain-merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45732
diff changeset
  1755
  1 sidedata entries
ee3fd9021fac test: move upgrade run and check earlier in test-copies-chain-merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45732
diff changeset
  1756
   entry-0014 size 14
ee3fd9021fac test: move upgrade run and check earlier in test-copies-chain-merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45732
diff changeset
  1757
    '\x00\x00\x00\x01\x08\x00\x00\x00\x01\x00\x00\x00\x00d'
ee3fd9021fac test: move upgrade run and check earlier in test-copies-chain-merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45732
diff changeset
  1758
  merged     : d, ;
46595
cb15216a52f5 test-copies: use "case-id" instead of revision number when listing sidedata
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46594
diff changeset
  1759
  ##### revision "mCGm-0 merge updated/deleted - revive the file (updated content) - one way" #####
45733
ee3fd9021fac test: move upgrade run and check earlier in test-copies-chain-merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45732
diff changeset
  1760
  1 sidedata entries
ee3fd9021fac test: move upgrade run and check earlier in test-copies-chain-merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45732
diff changeset
  1761
   entry-0014 size 14
ee3fd9021fac test: move upgrade run and check earlier in test-copies-chain-merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45732
diff changeset
  1762
    '\x00\x00\x00\x01\x10\x00\x00\x00\x01\x00\x00\x00\x00d'
ee3fd9021fac test: move upgrade run and check earlier in test-copies-chain-merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45732
diff changeset
  1763
  salvaged   : d, ;
46595
cb15216a52f5 test-copies: use "case-id" instead of revision number when listing sidedata
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46594
diff changeset
  1764
  ##### revision "mGCm-0 merge updated/deleted - revive the file (updated content) - the other way" #####
45733
ee3fd9021fac test: move upgrade run and check earlier in test-copies-chain-merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45732
diff changeset
  1765
  1 sidedata entries
ee3fd9021fac test: move upgrade run and check earlier in test-copies-chain-merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45732
diff changeset
  1766
   entry-0014 size 14
ee3fd9021fac test: move upgrade run and check earlier in test-copies-chain-merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45732
diff changeset
  1767
    '\x00\x00\x00\x01\x10\x00\x00\x00\x01\x00\x00\x00\x00d'
ee3fd9021fac test: move upgrade run and check earlier in test-copies-chain-merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45732
diff changeset
  1768
  salvaged   : d, ;
46595
cb15216a52f5 test-copies: use "case-id" instead of revision number when listing sidedata
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46594
diff changeset
  1769
  ##### revision "mCB-revert-m-0 merge explicitely revive deleted file - B side" #####
45733
ee3fd9021fac test: move upgrade run and check earlier in test-copies-chain-merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45732
diff changeset
  1770
  1 sidedata entries
ee3fd9021fac test: move upgrade run and check earlier in test-copies-chain-merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45732
diff changeset
  1771
   entry-0014 size 14
ee3fd9021fac test: move upgrade run and check earlier in test-copies-chain-merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45732
diff changeset
  1772
    '\x00\x00\x00\x01\x10\x00\x00\x00\x01\x00\x00\x00\x00d'
ee3fd9021fac test: move upgrade run and check earlier in test-copies-chain-merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45732
diff changeset
  1773
  salvaged   : d, ;
46595
cb15216a52f5 test-copies: use "case-id" instead of revision number when listing sidedata
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46594
diff changeset
  1774
  ##### revision "mBC-revert-m-0 merge explicitely revive deleted file - B side" #####
45733
ee3fd9021fac test: move upgrade run and check earlier in test-copies-chain-merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45732
diff changeset
  1775
  1 sidedata entries
ee3fd9021fac test: move upgrade run and check earlier in test-copies-chain-merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45732
diff changeset
  1776
   entry-0014 size 14
ee3fd9021fac test: move upgrade run and check earlier in test-copies-chain-merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45732
diff changeset
  1777
    '\x00\x00\x00\x01\x10\x00\x00\x00\x01\x00\x00\x00\x00d'
ee3fd9021fac test: move upgrade run and check earlier in test-copies-chain-merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45732
diff changeset
  1778
  salvaged   : d, ;
46595
cb15216a52f5 test-copies: use "case-id" instead of revision number when listing sidedata
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46594
diff changeset
  1779
  ##### revision "h-1" #####
45821
ff7e0ca666e8 copies: make sure deleted copy info do not overwriting unrelated ones
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45801
diff changeset
  1780
  1 sidedata entries
ff7e0ca666e8 copies: make sure deleted copy info do not overwriting unrelated ones
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45801
diff changeset
  1781
   entry-0014 size 24
ff7e0ca666e8 copies: make sure deleted copy info do not overwriting unrelated ones
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45801
diff changeset
  1782
    '\x00\x00\x00\x02\x0c\x00\x00\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x02\x00\x00\x00\x00bd'
ff7e0ca666e8 copies: make sure deleted copy info do not overwriting unrelated ones
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45801
diff changeset
  1783
  removed    : b, ;
ff7e0ca666e8 copies: make sure deleted copy info do not overwriting unrelated ones
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45801
diff changeset
  1784
  added    p1: d, b;
46595
cb15216a52f5 test-copies: use "case-id" instead of revision number when listing sidedata
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46594
diff changeset
  1785
  ##### revision "mCH-delete-before-conflict-m-0 simple merge - C side" #####
45821
ff7e0ca666e8 copies: make sure deleted copy info do not overwriting unrelated ones
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45801
diff changeset
  1786
  1 sidedata entries
ff7e0ca666e8 copies: make sure deleted copy info do not overwriting unrelated ones
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45801
diff changeset
  1787
   entry-0014 size 4
ff7e0ca666e8 copies: make sure deleted copy info do not overwriting unrelated ones
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45801
diff changeset
  1788
    '\x00\x00\x00\x00'
46595
cb15216a52f5 test-copies: use "case-id" instead of revision number when listing sidedata
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46594
diff changeset
  1789
  ##### revision "mHC-delete-before-conflict-m-0 simple merge - C side" #####
45821
ff7e0ca666e8 copies: make sure deleted copy info do not overwriting unrelated ones
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45801
diff changeset
  1790
  1 sidedata entries
ff7e0ca666e8 copies: make sure deleted copy info do not overwriting unrelated ones
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45801
diff changeset
  1791
   entry-0014 size 4
ff7e0ca666e8 copies: make sure deleted copy info do not overwriting unrelated ones
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45801
diff changeset
  1792
    '\x00\x00\x00\x00'
46597
3aef76c3fd38 test-copies: add a "change during merge" variant to the A+E test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46596
diff changeset
  1793
  ##### revision "mAE-change-m-0 merge with file update and copies info on both side - A side" #####
3aef76c3fd38 test-copies: add a "change during merge" variant to the A+E test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46596
diff changeset
  1794
  1 sidedata entries
3aef76c3fd38 test-copies: add a "change during merge" variant to the A+E test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46596
diff changeset
  1795
   entry-0014 size 14
3aef76c3fd38 test-copies: add a "change during merge" variant to the A+E test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46596
diff changeset
  1796
    '\x00\x00\x00\x01\x08\x00\x00\x00\x01\x00\x00\x00\x00f'
3aef76c3fd38 test-copies: add a "change during merge" variant to the A+E test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46596
diff changeset
  1797
  merged     : f, ;
3aef76c3fd38 test-copies: add a "change during merge" variant to the A+E test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46596
diff changeset
  1798
  ##### revision "mEA-change-m-0 merge with file update and copies info on both side - A side" #####
3aef76c3fd38 test-copies: add a "change during merge" variant to the A+E test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46596
diff changeset
  1799
  1 sidedata entries
3aef76c3fd38 test-copies: add a "change during merge" variant to the A+E test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46596
diff changeset
  1800
   entry-0014 size 14
3aef76c3fd38 test-copies: add a "change during merge" variant to the A+E test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46596
diff changeset
  1801
    '\x00\x00\x00\x01\x08\x00\x00\x00\x01\x00\x00\x00\x00f'
3aef76c3fd38 test-copies: add a "change during merge" variant to the A+E test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46596
diff changeset
  1802
  merged     : f, ;
46595
cb15216a52f5 test-copies: use "case-id" instead of revision number when listing sidedata
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46594
diff changeset
  1803
  ##### revision "j-1" #####
46591
fbc466484fc3 test-copies: add test chaining multiple merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46590
diff changeset
  1804
  1 sidedata entries
fbc466484fc3 test-copies: add test chaining multiple merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46590
diff changeset
  1805
   entry-0014 size 24
fbc466484fc3 test-copies: add test chaining multiple merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46590
diff changeset
  1806
    '\x00\x00\x00\x01\x04\x00\x00\x00\x0b\x00\x00\x00\x00unrelated-j'
fbc466484fc3 test-copies: add test chaining multiple merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46590
diff changeset
  1807
  added      : unrelated-j, ;
46595
cb15216a52f5 test-copies: use "case-id" instead of revision number when listing sidedata
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46594
diff changeset
  1808
  ##### revision "k-1" #####
46591
fbc466484fc3 test-copies: add test chaining multiple merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46590
diff changeset
  1809
  1 sidedata entries
fbc466484fc3 test-copies: add test chaining multiple merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46590
diff changeset
  1810
   entry-0014 size 24
fbc466484fc3 test-copies: add test chaining multiple merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46590
diff changeset
  1811
    '\x00\x00\x00\x01\x04\x00\x00\x00\x0b\x00\x00\x00\x00unrelated-k'
fbc466484fc3 test-copies: add test chaining multiple merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46590
diff changeset
  1812
  added      : unrelated-k, ;
46595
cb15216a52f5 test-copies: use "case-id" instead of revision number when listing sidedata
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46594
diff changeset
  1813
  ##### revision "mAE,Km" #####
46591
fbc466484fc3 test-copies: add test chaining multiple merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46590
diff changeset
  1814
  1 sidedata entries
fbc466484fc3 test-copies: add test chaining multiple merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46590
diff changeset
  1815
   entry-0014 size 4
fbc466484fc3 test-copies: add test chaining multiple merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46590
diff changeset
  1816
    '\x00\x00\x00\x00'
46595
cb15216a52f5 test-copies: use "case-id" instead of revision number when listing sidedata
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46594
diff changeset
  1817
  ##### revision "mK,AEm" #####
46591
fbc466484fc3 test-copies: add test chaining multiple merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46590
diff changeset
  1818
  1 sidedata entries
fbc466484fc3 test-copies: add test chaining multiple merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46590
diff changeset
  1819
   entry-0014 size 4
fbc466484fc3 test-copies: add test chaining multiple merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46590
diff changeset
  1820
    '\x00\x00\x00\x00'
46595
cb15216a52f5 test-copies: use "case-id" instead of revision number when listing sidedata
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46594
diff changeset
  1821
  ##### revision "mEA,Jm" #####
46591
fbc466484fc3 test-copies: add test chaining multiple merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46590
diff changeset
  1822
  1 sidedata entries
fbc466484fc3 test-copies: add test chaining multiple merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46590
diff changeset
  1823
   entry-0014 size 4
fbc466484fc3 test-copies: add test chaining multiple merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46590
diff changeset
  1824
    '\x00\x00\x00\x00'
46595
cb15216a52f5 test-copies: use "case-id" instead of revision number when listing sidedata
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46594
diff changeset
  1825
  ##### revision "mJ,EAm" #####
46591
fbc466484fc3 test-copies: add test chaining multiple merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46590
diff changeset
  1826
  1 sidedata entries
fbc466484fc3 test-copies: add test chaining multiple merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46590
diff changeset
  1827
   entry-0014 size 4
fbc466484fc3 test-copies: add test chaining multiple merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46590
diff changeset
  1828
    '\x00\x00\x00\x00'
46605
388a92023a1a test-copies: introduce merge chains test for the P/Q merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46604
diff changeset
  1829
  ##### revision "s-1" #####
388a92023a1a test-copies: introduce merge chains test for the P/Q merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46604
diff changeset
  1830
  1 sidedata entries
388a92023a1a test-copies: introduce merge chains test for the P/Q merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46604
diff changeset
  1831
   entry-0014 size 24
388a92023a1a test-copies: introduce merge chains test for the P/Q merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46604
diff changeset
  1832
    '\x00\x00\x00\x01\x04\x00\x00\x00\x0b\x00\x00\x00\x00unrelated-s'
388a92023a1a test-copies: introduce merge chains test for the P/Q merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46604
diff changeset
  1833
  added      : unrelated-s, ;
388a92023a1a test-copies: introduce merge chains test for the P/Q merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46604
diff changeset
  1834
  ##### revision "t-1" #####
388a92023a1a test-copies: introduce merge chains test for the P/Q merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46604
diff changeset
  1835
  1 sidedata entries
388a92023a1a test-copies: introduce merge chains test for the P/Q merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46604
diff changeset
  1836
   entry-0014 size 24
388a92023a1a test-copies: introduce merge chains test for the P/Q merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46604
diff changeset
  1837
    '\x00\x00\x00\x01\x04\x00\x00\x00\x0b\x00\x00\x00\x00unrelated-t'
388a92023a1a test-copies: introduce merge chains test for the P/Q merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46604
diff changeset
  1838
  added      : unrelated-t, ;
388a92023a1a test-copies: introduce merge chains test for the P/Q merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46604
diff changeset
  1839
  ##### revision "mPQ,Tm" #####
388a92023a1a test-copies: introduce merge chains test for the P/Q merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46604
diff changeset
  1840
  1 sidedata entries
388a92023a1a test-copies: introduce merge chains test for the P/Q merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46604
diff changeset
  1841
   entry-0014 size 4
388a92023a1a test-copies: introduce merge chains test for the P/Q merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46604
diff changeset
  1842
    '\x00\x00\x00\x00'
388a92023a1a test-copies: introduce merge chains test for the P/Q merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46604
diff changeset
  1843
  ##### revision "mT,PQm" #####
388a92023a1a test-copies: introduce merge chains test for the P/Q merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46604
diff changeset
  1844
  1 sidedata entries
388a92023a1a test-copies: introduce merge chains test for the P/Q merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46604
diff changeset
  1845
   entry-0014 size 4
388a92023a1a test-copies: introduce merge chains test for the P/Q merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46604
diff changeset
  1846
    '\x00\x00\x00\x00'
388a92023a1a test-copies: introduce merge chains test for the P/Q merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46604
diff changeset
  1847
  ##### revision "mQP,Sm" #####
388a92023a1a test-copies: introduce merge chains test for the P/Q merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46604
diff changeset
  1848
  1 sidedata entries
388a92023a1a test-copies: introduce merge chains test for the P/Q merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46604
diff changeset
  1849
   entry-0014 size 4
388a92023a1a test-copies: introduce merge chains test for the P/Q merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46604
diff changeset
  1850
    '\x00\x00\x00\x00'
388a92023a1a test-copies: introduce merge chains test for the P/Q merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46604
diff changeset
  1851
  ##### revision "mS,QPm" #####
388a92023a1a test-copies: introduce merge chains test for the P/Q merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46604
diff changeset
  1852
  1 sidedata entries
388a92023a1a test-copies: introduce merge chains test for the P/Q merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46604
diff changeset
  1853
   entry-0014 size 4
388a92023a1a test-copies: introduce merge chains test for the P/Q merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46604
diff changeset
  1854
    '\x00\x00\x00\x00'
46595
cb15216a52f5 test-copies: use "case-id" instead of revision number when listing sidedata
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46594
diff changeset
  1855
  ##### revision "l-1" #####
46592
3805b13ad7fe test-copies: add test chaining multiple merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46591
diff changeset
  1856
  1 sidedata entries
3805b13ad7fe test-copies: add test chaining multiple merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46591
diff changeset
  1857
   entry-0014 size 24
3805b13ad7fe test-copies: add test chaining multiple merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46591
diff changeset
  1858
    '\x00\x00\x00\x01\x04\x00\x00\x00\x0b\x00\x00\x00\x00unrelated-l'
3805b13ad7fe test-copies: add test chaining multiple merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46591
diff changeset
  1859
  added      : unrelated-l, ;
46595
cb15216a52f5 test-copies: use "case-id" instead of revision number when listing sidedata
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46594
diff changeset
  1860
  ##### revision "mBC+revert,Lm" #####
46592
3805b13ad7fe test-copies: add test chaining multiple merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46591
diff changeset
  1861
  1 sidedata entries
3805b13ad7fe test-copies: add test chaining multiple merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46591
diff changeset
  1862
   entry-0014 size 4
3805b13ad7fe test-copies: add test chaining multiple merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46591
diff changeset
  1863
    '\x00\x00\x00\x00'
46595
cb15216a52f5 test-copies: use "case-id" instead of revision number when listing sidedata
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46594
diff changeset
  1864
  ##### revision "mCB+revert,Lm" #####
46592
3805b13ad7fe test-copies: add test chaining multiple merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46591
diff changeset
  1865
  1 sidedata entries
3805b13ad7fe test-copies: add test chaining multiple merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46591
diff changeset
  1866
   entry-0014 size 4
3805b13ad7fe test-copies: add test chaining multiple merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46591
diff changeset
  1867
    '\x00\x00\x00\x00'
46595
cb15216a52f5 test-copies: use "case-id" instead of revision number when listing sidedata
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46594
diff changeset
  1868
  ##### revision "mL,BC+revertm" #####
46592
3805b13ad7fe test-copies: add test chaining multiple merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46591
diff changeset
  1869
  1 sidedata entries
3805b13ad7fe test-copies: add test chaining multiple merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46591
diff changeset
  1870
   entry-0014 size 4
3805b13ad7fe test-copies: add test chaining multiple merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46591
diff changeset
  1871
    '\x00\x00\x00\x00'
46595
cb15216a52f5 test-copies: use "case-id" instead of revision number when listing sidedata
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46594
diff changeset
  1872
  ##### revision "mL,CB+revertm" #####
46592
3805b13ad7fe test-copies: add test chaining multiple merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46591
diff changeset
  1873
  1 sidedata entries
3805b13ad7fe test-copies: add test chaining multiple merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46591
diff changeset
  1874
   entry-0014 size 4
3805b13ad7fe test-copies: add test chaining multiple merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46591
diff changeset
  1875
    '\x00\x00\x00\x00'
46595
cb15216a52f5 test-copies: use "case-id" instead of revision number when listing sidedata
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46594
diff changeset
  1876
  ##### revision "n-1" #####
46593
075b2499e3d6 test-copies: add test chaining multiple merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46592
diff changeset
  1877
  1 sidedata entries
075b2499e3d6 test-copies: add test chaining multiple merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46592
diff changeset
  1878
   entry-0014 size 24
075b2499e3d6 test-copies: add test chaining multiple merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46592
diff changeset
  1879
    '\x00\x00\x00\x01\x04\x00\x00\x00\x0b\x00\x00\x00\x00unrelated-n'
075b2499e3d6 test-copies: add test chaining multiple merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46592
diff changeset
  1880
  added      : unrelated-n, ;
46595
cb15216a52f5 test-copies: use "case-id" instead of revision number when listing sidedata
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46594
diff changeset
  1881
  ##### revision "o-1" #####
46593
075b2499e3d6 test-copies: add test chaining multiple merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46592
diff changeset
  1882
  1 sidedata entries
075b2499e3d6 test-copies: add test chaining multiple merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46592
diff changeset
  1883
   entry-0014 size 24
075b2499e3d6 test-copies: add test chaining multiple merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46592
diff changeset
  1884
    '\x00\x00\x00\x01\x04\x00\x00\x00\x0b\x00\x00\x00\x00unrelated-o'
075b2499e3d6 test-copies: add test chaining multiple merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46592
diff changeset
  1885
  added      : unrelated-o, ;
46595
cb15216a52f5 test-copies: use "case-id" instead of revision number when listing sidedata
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46594
diff changeset
  1886
  ##### revision "mFG,Om" #####
46593
075b2499e3d6 test-copies: add test chaining multiple merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46592
diff changeset
  1887
  1 sidedata entries
075b2499e3d6 test-copies: add test chaining multiple merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46592
diff changeset
  1888
   entry-0014 size 4
075b2499e3d6 test-copies: add test chaining multiple merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46592
diff changeset
  1889
    '\x00\x00\x00\x00'
46595
cb15216a52f5 test-copies: use "case-id" instead of revision number when listing sidedata
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46594
diff changeset
  1890
  ##### revision "mO,FGm" #####
46593
075b2499e3d6 test-copies: add test chaining multiple merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46592
diff changeset
  1891
  1 sidedata entries
075b2499e3d6 test-copies: add test chaining multiple merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46592
diff changeset
  1892
   entry-0014 size 4
075b2499e3d6 test-copies: add test chaining multiple merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46592
diff changeset
  1893
    '\x00\x00\x00\x00'
46595
cb15216a52f5 test-copies: use "case-id" instead of revision number when listing sidedata
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46594
diff changeset
  1894
  ##### revision "mGF,Nm" #####
46593
075b2499e3d6 test-copies: add test chaining multiple merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46592
diff changeset
  1895
  1 sidedata entries
075b2499e3d6 test-copies: add test chaining multiple merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46592
diff changeset
  1896
   entry-0014 size 4
075b2499e3d6 test-copies: add test chaining multiple merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46592
diff changeset
  1897
    '\x00\x00\x00\x00'
46595
cb15216a52f5 test-copies: use "case-id" instead of revision number when listing sidedata
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46594
diff changeset
  1898
  ##### revision "mN,GFm" #####
46593
075b2499e3d6 test-copies: add test chaining multiple merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46592
diff changeset
  1899
  1 sidedata entries
075b2499e3d6 test-copies: add test chaining multiple merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46592
diff changeset
  1900
   entry-0014 size 4
075b2499e3d6 test-copies: add test chaining multiple merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46592
diff changeset
  1901
    '\x00\x00\x00\x00'
46598
664bee002d1a test-copies: introduce merge chaing test for the A/E + change tests
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46597
diff changeset
  1902
  ##### revision "mAE-change,Km" #####
664bee002d1a test-copies: introduce merge chaing test for the A/E + change tests
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46597
diff changeset
  1903
  1 sidedata entries
664bee002d1a test-copies: introduce merge chaing test for the A/E + change tests
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46597
diff changeset
  1904
   entry-0014 size 4
664bee002d1a test-copies: introduce merge chaing test for the A/E + change tests
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46597
diff changeset
  1905
    '\x00\x00\x00\x00'
664bee002d1a test-copies: introduce merge chaing test for the A/E + change tests
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46597
diff changeset
  1906
  ##### revision "mK,AE-change-m" #####
664bee002d1a test-copies: introduce merge chaing test for the A/E + change tests
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46597
diff changeset
  1907
  1 sidedata entries
664bee002d1a test-copies: introduce merge chaing test for the A/E + change tests
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46597
diff changeset
  1908
   entry-0014 size 4
664bee002d1a test-copies: introduce merge chaing test for the A/E + change tests
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46597
diff changeset
  1909
    '\x00\x00\x00\x00'
664bee002d1a test-copies: introduce merge chaing test for the A/E + change tests
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46597
diff changeset
  1910
  ##### revision "mEA-change,Jm" #####
664bee002d1a test-copies: introduce merge chaing test for the A/E + change tests
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46597
diff changeset
  1911
  1 sidedata entries
664bee002d1a test-copies: introduce merge chaing test for the A/E + change tests
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46597
diff changeset
  1912
   entry-0014 size 4
664bee002d1a test-copies: introduce merge chaing test for the A/E + change tests
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46597
diff changeset
  1913
    '\x00\x00\x00\x00'
664bee002d1a test-copies: introduce merge chaing test for the A/E + change tests
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46597
diff changeset
  1914
  ##### revision "mJ,EA-change-m" #####
664bee002d1a test-copies: introduce merge chaing test for the A/E + change tests
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46597
diff changeset
  1915
  1 sidedata entries
664bee002d1a test-copies: introduce merge chaing test for the A/E + change tests
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46597
diff changeset
  1916
   entry-0014 size 4
664bee002d1a test-copies: introduce merge chaing test for the A/E + change tests
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46597
diff changeset
  1917
    '\x00\x00\x00\x00'
45733
ee3fd9021fac test: move upgrade run and check earlier in test-copies-chain-merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45732
diff changeset
  1918
ee3fd9021fac test: move upgrade run and check earlier in test-copies-chain-merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45732
diff changeset
  1919
#endif
ee3fd9021fac test: move upgrade run and check earlier in test-copies-chain-merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45732
diff changeset
  1920
ee3fd9021fac test: move upgrade run and check earlier in test-copies-chain-merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45732
diff changeset
  1921
45732
4ffe502673c3 copies: split creation of the graph and actual checking again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45704
diff changeset
  1922
Test copy information chaining
4ffe502673c3 copies: split creation of the graph and actual checking again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45704
diff changeset
  1923
==============================
4ffe502673c3 copies: split creation of the graph and actual checking again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45704
diff changeset
  1924
46159
929054848d6c copies: properly match result during changeset centric copy tracing
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46039
diff changeset
  1925
Check that matching only affect the destination and not intermediate path
929054848d6c copies: properly match result during changeset centric copy tracing
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46039
diff changeset
  1926
-------------------------------------------------------------------------
929054848d6c copies: properly match result during changeset centric copy tracing
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46039
diff changeset
  1927
929054848d6c copies: properly match result during changeset centric copy tracing
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46039
diff changeset
  1928
The two status call should give the same value for f
929054848d6c copies: properly match result during changeset centric copy tracing
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46039
diff changeset
  1929
929054848d6c copies: properly match result during changeset centric copy tracing
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46039
diff changeset
  1930
  $ hg status --copies --rev 'desc("i-0")' --rev 'desc("a-2")'
929054848d6c copies: properly match result during changeset centric copy tracing
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46039
diff changeset
  1931
  A f
929054848d6c copies: properly match result during changeset centric copy tracing
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46039
diff changeset
  1932
    a
46600
0ebfd02dafd5 test-copies: move the new files in the `i` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46599
diff changeset
  1933
  A t
0ebfd02dafd5 test-copies: move the new files in the `i` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46599
diff changeset
  1934
    p
46159
929054848d6c copies: properly match result during changeset centric copy tracing
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46039
diff changeset
  1935
  R a
46600
0ebfd02dafd5 test-copies: move the new files in the `i` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46599
diff changeset
  1936
  R p
46159
929054848d6c copies: properly match result during changeset centric copy tracing
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46039
diff changeset
  1937
  $ hg status --copies --rev 'desc("i-0")' --rev 'desc("a-2")' f
929054848d6c copies: properly match result during changeset centric copy tracing
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46039
diff changeset
  1938
  A f
929054848d6c copies: properly match result during changeset centric copy tracing
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46039
diff changeset
  1939
    a (no-changeset no-compatibility !)
929054848d6c copies: properly match result during changeset centric copy tracing
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46039
diff changeset
  1940
45732
4ffe502673c3 copies: split creation of the graph and actual checking again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45704
diff changeset
  1941
merging with unrelated change does not interfere with the renames
4ffe502673c3 copies: split creation of the graph and actual checking again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45704
diff changeset
  1942
---------------------------------------------------------------
4ffe502673c3 copies: split creation of the graph and actual checking again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45704
diff changeset
  1943
4ffe502673c3 copies: split creation of the graph and actual checking again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45704
diff changeset
  1944
- rename on one side
4ffe502673c3 copies: split creation of the graph and actual checking again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45704
diff changeset
  1945
- unrelated change on the other side
4ffe502673c3 copies: split creation of the graph and actual checking again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45704
diff changeset
  1946
4ffe502673c3 copies: split creation of the graph and actual checking again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45704
diff changeset
  1947
  $ hg log -G --rev '::(desc("mABm")+desc("mBAm"))'
46594
74e2256a56b8 test-copies: remove revision number from log
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46593
diff changeset
  1948
  o    mABm-0 simple merge - A side: multiple renames, B side: unrelated update - the other way
45732
4ffe502673c3 copies: split creation of the graph and actual checking again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45704
diff changeset
  1949
  |\
46594
74e2256a56b8 test-copies: remove revision number from log
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46593
diff changeset
  1950
  +---o  mBAm-0 simple merge - A side: multiple renames, B side: unrelated update - one way
45732
4ffe502673c3 copies: split creation of the graph and actual checking again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45704
diff changeset
  1951
  | |/
46594
74e2256a56b8 test-copies: remove revision number from log
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46593
diff changeset
  1952
  | o  b-1: b update
45732
4ffe502673c3 copies: split creation of the graph and actual checking again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45704
diff changeset
  1953
  | |
46594
74e2256a56b8 test-copies: remove revision number from log
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46593
diff changeset
  1954
  o |  a-2: e -move-> f
45732
4ffe502673c3 copies: split creation of the graph and actual checking again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45704
diff changeset
  1955
  | |
46594
74e2256a56b8 test-copies: remove revision number from log
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46593
diff changeset
  1956
  o |  a-1: d -move-> e
45732
4ffe502673c3 copies: split creation of the graph and actual checking again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45704
diff changeset
  1957
  |/
46600
0ebfd02dafd5 test-copies: move the new files in the `i` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46599
diff changeset
  1958
  o  i-2: c -move-> d, s -move-> t
45732
4ffe502673c3 copies: split creation of the graph and actual checking again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45704
diff changeset
  1959
  |
46600
0ebfd02dafd5 test-copies: move the new files in the `i` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46599
diff changeset
  1960
  o  i-1: a -move-> c, p -move-> s
45732
4ffe502673c3 copies: split creation of the graph and actual checking again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45704
diff changeset
  1961
  |
46649
d7d64b8c8229 tests: correct a commit description in test-copies-chain-merge.t
Martin von Zweigbergk <martinvonz@google.com>
parents: 46607
diff changeset
  1962
  o  i-0 initial commit: a b h p q r
45732
4ffe502673c3 copies: split creation of the graph and actual checking again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45704
diff changeset
  1963
  
4ffe502673c3 copies: split creation of the graph and actual checking again
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45704
diff changeset
  1964
44679
806f1f1ba430 tests: move verification closer to setup in test-copies-chain-merge.t
Martin von Zweigbergk <martinvonz@google.com>
parents: 44678
diff changeset
  1965
  $ hg status --copies --rev 'desc("b-1")' --rev 'desc("mABm")'
806f1f1ba430 tests: move verification closer to setup in test-copies-chain-merge.t
Martin von Zweigbergk <martinvonz@google.com>
parents: 44678
diff changeset
  1966
  A f
806f1f1ba430 tests: move verification closer to setup in test-copies-chain-merge.t
Martin von Zweigbergk <martinvonz@google.com>
parents: 44678
diff changeset
  1967
    d
806f1f1ba430 tests: move verification closer to setup in test-copies-chain-merge.t
Martin von Zweigbergk <martinvonz@google.com>
parents: 44678
diff changeset
  1968
  R d
806f1f1ba430 tests: move verification closer to setup in test-copies-chain-merge.t
Martin von Zweigbergk <martinvonz@google.com>
parents: 44678
diff changeset
  1969
  $ hg status --copies --rev 'desc("b-1")' --rev 'desc("mBAm")'
806f1f1ba430 tests: move verification closer to setup in test-copies-chain-merge.t
Martin von Zweigbergk <martinvonz@google.com>
parents: 44678
diff changeset
  1970
  A f
806f1f1ba430 tests: move verification closer to setup in test-copies-chain-merge.t
Martin von Zweigbergk <martinvonz@google.com>
parents: 44678
diff changeset
  1971
    d
806f1f1ba430 tests: move verification closer to setup in test-copies-chain-merge.t
Martin von Zweigbergk <martinvonz@google.com>
parents: 44678
diff changeset
  1972
  R d
806f1f1ba430 tests: move verification closer to setup in test-copies-chain-merge.t
Martin von Zweigbergk <martinvonz@google.com>
parents: 44678
diff changeset
  1973
  $ hg status --copies --rev 'desc("a-2")' --rev 'desc("mABm")'
806f1f1ba430 tests: move verification closer to setup in test-copies-chain-merge.t
Martin von Zweigbergk <martinvonz@google.com>
parents: 44678
diff changeset
  1974
  M b
806f1f1ba430 tests: move verification closer to setup in test-copies-chain-merge.t
Martin von Zweigbergk <martinvonz@google.com>
parents: 44678
diff changeset
  1975
  $ hg status --copies --rev 'desc("a-2")' --rev 'desc("mBAm")'
806f1f1ba430 tests: move verification closer to setup in test-copies-chain-merge.t
Martin von Zweigbergk <martinvonz@google.com>
parents: 44678
diff changeset
  1976
  M b
806f1f1ba430 tests: move verification closer to setup in test-copies-chain-merge.t
Martin von Zweigbergk <martinvonz@google.com>
parents: 44678
diff changeset
  1977
  $ hg status --copies --rev 'desc("i-2")' --rev 'desc("mABm")'
806f1f1ba430 tests: move verification closer to setup in test-copies-chain-merge.t
Martin von Zweigbergk <martinvonz@google.com>
parents: 44678
diff changeset
  1978
  M b
806f1f1ba430 tests: move verification closer to setup in test-copies-chain-merge.t
Martin von Zweigbergk <martinvonz@google.com>
parents: 44678
diff changeset
  1979
  A f
806f1f1ba430 tests: move verification closer to setup in test-copies-chain-merge.t
Martin von Zweigbergk <martinvonz@google.com>
parents: 44678
diff changeset
  1980
    d
806f1f1ba430 tests: move verification closer to setup in test-copies-chain-merge.t
Martin von Zweigbergk <martinvonz@google.com>
parents: 44678
diff changeset
  1981
  R d
806f1f1ba430 tests: move verification closer to setup in test-copies-chain-merge.t
Martin von Zweigbergk <martinvonz@google.com>
parents: 44678
diff changeset
  1982
  $ hg status --copies --rev 'desc("i-2")' --rev 'desc("mBAm")'
806f1f1ba430 tests: move verification closer to setup in test-copies-chain-merge.t
Martin von Zweigbergk <martinvonz@google.com>
parents: 44678
diff changeset
  1983
  M b
806f1f1ba430 tests: move verification closer to setup in test-copies-chain-merge.t
Martin von Zweigbergk <martinvonz@google.com>
parents: 44678
diff changeset
  1984
  A f
806f1f1ba430 tests: move verification closer to setup in test-copies-chain-merge.t
Martin von Zweigbergk <martinvonz@google.com>
parents: 44678
diff changeset
  1985
    d
806f1f1ba430 tests: move verification closer to setup in test-copies-chain-merge.t
Martin von Zweigbergk <martinvonz@google.com>
parents: 44678
diff changeset
  1986
  R d
806f1f1ba430 tests: move verification closer to setup in test-copies-chain-merge.t
Martin von Zweigbergk <martinvonz@google.com>
parents: 44678
diff changeset
  1987
  $ hg status --copies --rev 'desc("i-0")' --rev 'desc("mABm")'
806f1f1ba430 tests: move verification closer to setup in test-copies-chain-merge.t
Martin von Zweigbergk <martinvonz@google.com>
parents: 44678
diff changeset
  1988
  M b
806f1f1ba430 tests: move verification closer to setup in test-copies-chain-merge.t
Martin von Zweigbergk <martinvonz@google.com>
parents: 44678
diff changeset
  1989
  A f
806f1f1ba430 tests: move verification closer to setup in test-copies-chain-merge.t
Martin von Zweigbergk <martinvonz@google.com>
parents: 44678
diff changeset
  1990
    a
46600
0ebfd02dafd5 test-copies: move the new files in the `i` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46599
diff changeset
  1991
  A t
0ebfd02dafd5 test-copies: move the new files in the `i` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46599
diff changeset
  1992
    p
44679
806f1f1ba430 tests: move verification closer to setup in test-copies-chain-merge.t
Martin von Zweigbergk <martinvonz@google.com>
parents: 44678
diff changeset
  1993
  R a
46600
0ebfd02dafd5 test-copies: move the new files in the `i` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46599
diff changeset
  1994
  R p
44679
806f1f1ba430 tests: move verification closer to setup in test-copies-chain-merge.t
Martin von Zweigbergk <martinvonz@google.com>
parents: 44678
diff changeset
  1995
  $ hg status --copies --rev 'desc("i-0")' --rev 'desc("mBAm")'
806f1f1ba430 tests: move verification closer to setup in test-copies-chain-merge.t
Martin von Zweigbergk <martinvonz@google.com>
parents: 44678
diff changeset
  1996
  M b
806f1f1ba430 tests: move verification closer to setup in test-copies-chain-merge.t
Martin von Zweigbergk <martinvonz@google.com>
parents: 44678
diff changeset
  1997
  A f
806f1f1ba430 tests: move verification closer to setup in test-copies-chain-merge.t
Martin von Zweigbergk <martinvonz@google.com>
parents: 44678
diff changeset
  1998
    a
46600
0ebfd02dafd5 test-copies: move the new files in the `i` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46599
diff changeset
  1999
  A t
0ebfd02dafd5 test-copies: move the new files in the `i` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46599
diff changeset
  2000
    p
44679
806f1f1ba430 tests: move verification closer to setup in test-copies-chain-merge.t
Martin von Zweigbergk <martinvonz@google.com>
parents: 44678
diff changeset
  2001
  R a
46600
0ebfd02dafd5 test-copies: move the new files in the `i` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46599
diff changeset
  2002
  R p
44679
806f1f1ba430 tests: move verification closer to setup in test-copies-chain-merge.t
Martin von Zweigbergk <martinvonz@google.com>
parents: 44678
diff changeset
  2003
806f1f1ba430 tests: move verification closer to setup in test-copies-chain-merge.t
Martin von Zweigbergk <martinvonz@google.com>
parents: 44678
diff changeset
  2004
merging with the side having a delete
806f1f1ba430 tests: move verification closer to setup in test-copies-chain-merge.t
Martin von Zweigbergk <martinvonz@google.com>
parents: 44678
diff changeset
  2005
-------------------------------------
806f1f1ba430 tests: move verification closer to setup in test-copies-chain-merge.t
Martin von Zweigbergk <martinvonz@google.com>
parents: 44678
diff changeset
  2006
806f1f1ba430 tests: move verification closer to setup in test-copies-chain-merge.t
Martin von Zweigbergk <martinvonz@google.com>
parents: 44678
diff changeset
  2007
case summary:
44327
f9dfb56ed6e8 copies: add a new test dedicated to testing chain of changeset with merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
  2008
- one with change to an unrelated file
f9dfb56ed6e8 copies: add a new test dedicated to testing chain of changeset with merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
  2009
- one deleting the change
f9dfb56ed6e8 copies: add a new test dedicated to testing chain of changeset with merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
  2010
and recreate an unrelated file after the merge
f9dfb56ed6e8 copies: add a new test dedicated to testing chain of changeset with merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
  2011
f9dfb56ed6e8 copies: add a new test dedicated to testing chain of changeset with merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
  2012
  $ hg log -G --rev '::(desc("mCBm")+desc("mBCm"))'
46594
74e2256a56b8 test-copies: remove revision number from log
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46593
diff changeset
  2013
  o  mCBm-1 re-add d
44327
f9dfb56ed6e8 copies: add a new test dedicated to testing chain of changeset with merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
  2014
  |
46594
74e2256a56b8 test-copies: remove revision number from log
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46593
diff changeset
  2015
  o    mCBm-0 simple merge - C side: delete a file with copies history , B side: unrelated update - the other way
44327
f9dfb56ed6e8 copies: add a new test dedicated to testing chain of changeset with merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
  2016
  |\
46594
74e2256a56b8 test-copies: remove revision number from log
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46593
diff changeset
  2017
  | | o  mBCm-1 re-add d
44327
f9dfb56ed6e8 copies: add a new test dedicated to testing chain of changeset with merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
  2018
  | | |
46594
74e2256a56b8 test-copies: remove revision number from log
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46593
diff changeset
  2019
  +---o  mBCm-0 simple merge - C side: delete a file with copies history , B side: unrelated update - one way
44327
f9dfb56ed6e8 copies: add a new test dedicated to testing chain of changeset with merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
  2020
  | |/
46594
74e2256a56b8 test-copies: remove revision number from log
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46593
diff changeset
  2021
  | o  c-1 delete d
44327
f9dfb56ed6e8 copies: add a new test dedicated to testing chain of changeset with merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
  2022
  | |
46594
74e2256a56b8 test-copies: remove revision number from log
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46593
diff changeset
  2023
  o |  b-1: b update
44327
f9dfb56ed6e8 copies: add a new test dedicated to testing chain of changeset with merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
  2024
  |/
46600
0ebfd02dafd5 test-copies: move the new files in the `i` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46599
diff changeset
  2025
  o  i-2: c -move-> d, s -move-> t
44327
f9dfb56ed6e8 copies: add a new test dedicated to testing chain of changeset with merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
  2026
  |
46600
0ebfd02dafd5 test-copies: move the new files in the `i` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46599
diff changeset
  2027
  o  i-1: a -move-> c, p -move-> s
44327
f9dfb56ed6e8 copies: add a new test dedicated to testing chain of changeset with merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
  2028
  |
46649
d7d64b8c8229 tests: correct a commit description in test-copies-chain-merge.t
Martin von Zweigbergk <martinvonz@google.com>
parents: 46607
diff changeset
  2029
  o  i-0 initial commit: a b h p q r
44327
f9dfb56ed6e8 copies: add a new test dedicated to testing chain of changeset with merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
  2030
  
f9dfb56ed6e8 copies: add a new test dedicated to testing chain of changeset with merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
  2031
- comparing from the merge
f9dfb56ed6e8 copies: add a new test dedicated to testing chain of changeset with merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
  2032
f9dfb56ed6e8 copies: add a new test dedicated to testing chain of changeset with merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
  2033
  $ hg status --copies --rev 'desc("b-1")' --rev 'desc("mBCm-0")'
f9dfb56ed6e8 copies: add a new test dedicated to testing chain of changeset with merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
  2034
  R d
f9dfb56ed6e8 copies: add a new test dedicated to testing chain of changeset with merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
  2035
  $ hg status --copies --rev 'desc("b-1")' --rev 'desc("mCBm-0")'
f9dfb56ed6e8 copies: add a new test dedicated to testing chain of changeset with merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
  2036
  R d
f9dfb56ed6e8 copies: add a new test dedicated to testing chain of changeset with merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
  2037
  $ hg status --copies --rev 'desc("c-1")' --rev 'desc("mBCm-0")'
f9dfb56ed6e8 copies: add a new test dedicated to testing chain of changeset with merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
  2038
  M b
f9dfb56ed6e8 copies: add a new test dedicated to testing chain of changeset with merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
  2039
  $ hg status --copies --rev 'desc("c-1")' --rev 'desc("mCBm-0")'
f9dfb56ed6e8 copies: add a new test dedicated to testing chain of changeset with merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
  2040
  M b
f9dfb56ed6e8 copies: add a new test dedicated to testing chain of changeset with merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
  2041
  $ hg status --copies --rev 'desc("i-2")' --rev 'desc("mBCm-0")'
f9dfb56ed6e8 copies: add a new test dedicated to testing chain of changeset with merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
  2042
  M b
f9dfb56ed6e8 copies: add a new test dedicated to testing chain of changeset with merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
  2043
  R d
f9dfb56ed6e8 copies: add a new test dedicated to testing chain of changeset with merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
  2044
  $ hg status --copies --rev 'desc("i-2")' --rev 'desc("mCBm-0")'
f9dfb56ed6e8 copies: add a new test dedicated to testing chain of changeset with merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
  2045
  M b
f9dfb56ed6e8 copies: add a new test dedicated to testing chain of changeset with merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
  2046
  R d
f9dfb56ed6e8 copies: add a new test dedicated to testing chain of changeset with merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
  2047
  $ hg status --copies --rev 'desc("i-0")' --rev 'desc("mBCm-0")'
f9dfb56ed6e8 copies: add a new test dedicated to testing chain of changeset with merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
  2048
  M b
46600
0ebfd02dafd5 test-copies: move the new files in the `i` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46599
diff changeset
  2049
  A t
0ebfd02dafd5 test-copies: move the new files in the `i` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46599
diff changeset
  2050
    p
44327
f9dfb56ed6e8 copies: add a new test dedicated to testing chain of changeset with merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
  2051
  R a
46600
0ebfd02dafd5 test-copies: move the new files in the `i` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46599
diff changeset
  2052
  R p
44327
f9dfb56ed6e8 copies: add a new test dedicated to testing chain of changeset with merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
  2053
  $ hg status --copies --rev 'desc("i-0")' --rev 'desc("mCBm-0")'
f9dfb56ed6e8 copies: add a new test dedicated to testing chain of changeset with merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
  2054
  M b
46600
0ebfd02dafd5 test-copies: move the new files in the `i` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46599
diff changeset
  2055
  A t
0ebfd02dafd5 test-copies: move the new files in the `i` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46599
diff changeset
  2056
    p
44327
f9dfb56ed6e8 copies: add a new test dedicated to testing chain of changeset with merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
  2057
  R a
46600
0ebfd02dafd5 test-copies: move the new files in the `i` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46599
diff changeset
  2058
  R p
44327
f9dfb56ed6e8 copies: add a new test dedicated to testing chain of changeset with merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
  2059
f9dfb56ed6e8 copies: add a new test dedicated to testing chain of changeset with merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
  2060
- comparing with the merge children re-adding the file
f9dfb56ed6e8 copies: add a new test dedicated to testing chain of changeset with merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
  2061
f9dfb56ed6e8 copies: add a new test dedicated to testing chain of changeset with merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
  2062
  $ hg status --copies --rev 'desc("b-1")' --rev 'desc("mBCm-1")'
f9dfb56ed6e8 copies: add a new test dedicated to testing chain of changeset with merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
  2063
  M d
f9dfb56ed6e8 copies: add a new test dedicated to testing chain of changeset with merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
  2064
  $ hg status --copies --rev 'desc("b-1")' --rev 'desc("mCBm-1")'
f9dfb56ed6e8 copies: add a new test dedicated to testing chain of changeset with merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
  2065
  M d
f9dfb56ed6e8 copies: add a new test dedicated to testing chain of changeset with merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
  2066
  $ hg status --copies --rev 'desc("c-1")' --rev 'desc("mBCm-1")'
f9dfb56ed6e8 copies: add a new test dedicated to testing chain of changeset with merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
  2067
  M b
f9dfb56ed6e8 copies: add a new test dedicated to testing chain of changeset with merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
  2068
  A d
f9dfb56ed6e8 copies: add a new test dedicated to testing chain of changeset with merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
  2069
  $ hg status --copies --rev 'desc("c-1")' --rev 'desc("mCBm-1")'
f9dfb56ed6e8 copies: add a new test dedicated to testing chain of changeset with merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
  2070
  M b
f9dfb56ed6e8 copies: add a new test dedicated to testing chain of changeset with merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
  2071
  A d
f9dfb56ed6e8 copies: add a new test dedicated to testing chain of changeset with merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
  2072
  $ hg status --copies --rev 'desc("i-2")' --rev 'desc("mBCm-1")'
f9dfb56ed6e8 copies: add a new test dedicated to testing chain of changeset with merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
  2073
  M b
f9dfb56ed6e8 copies: add a new test dedicated to testing chain of changeset with merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
  2074
  M d
f9dfb56ed6e8 copies: add a new test dedicated to testing chain of changeset with merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
  2075
  $ hg status --copies --rev 'desc("i-2")' --rev 'desc("mCBm-1")'
f9dfb56ed6e8 copies: add a new test dedicated to testing chain of changeset with merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
  2076
  M b
f9dfb56ed6e8 copies: add a new test dedicated to testing chain of changeset with merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
  2077
  M d
f9dfb56ed6e8 copies: add a new test dedicated to testing chain of changeset with merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
  2078
  $ hg status --copies --rev 'desc("i-0")' --rev 'desc("mBCm-1")'
f9dfb56ed6e8 copies: add a new test dedicated to testing chain of changeset with merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
  2079
  M b
f9dfb56ed6e8 copies: add a new test dedicated to testing chain of changeset with merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
  2080
  A d
46600
0ebfd02dafd5 test-copies: move the new files in the `i` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46599
diff changeset
  2081
  A t
0ebfd02dafd5 test-copies: move the new files in the `i` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46599
diff changeset
  2082
    p
44327
f9dfb56ed6e8 copies: add a new test dedicated to testing chain of changeset with merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
  2083
  R a
46600
0ebfd02dafd5 test-copies: move the new files in the `i` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46599
diff changeset
  2084
  R p
44327
f9dfb56ed6e8 copies: add a new test dedicated to testing chain of changeset with merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
  2085
  $ hg status --copies --rev 'desc("i-0")' --rev 'desc("mCBm-1")'
f9dfb56ed6e8 copies: add a new test dedicated to testing chain of changeset with merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
  2086
  M b
f9dfb56ed6e8 copies: add a new test dedicated to testing chain of changeset with merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
  2087
  A d
46600
0ebfd02dafd5 test-copies: move the new files in the `i` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46599
diff changeset
  2088
  A t
0ebfd02dafd5 test-copies: move the new files in the `i` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46599
diff changeset
  2089
    p
44327
f9dfb56ed6e8 copies: add a new test dedicated to testing chain of changeset with merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
  2090
  R a
46600
0ebfd02dafd5 test-copies: move the new files in the `i` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46599
diff changeset
  2091
  R p
44327
f9dfb56ed6e8 copies: add a new test dedicated to testing chain of changeset with merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
  2092
f9dfb56ed6e8 copies: add a new test dedicated to testing chain of changeset with merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
  2093
Comparing with a merge re-adding the file afterward
f9dfb56ed6e8 copies: add a new test dedicated to testing chain of changeset with merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
  2094
---------------------------------------------------
f9dfb56ed6e8 copies: add a new test dedicated to testing chain of changeset with merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
  2095
f9dfb56ed6e8 copies: add a new test dedicated to testing chain of changeset with merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
  2096
Merge:
f9dfb56ed6e8 copies: add a new test dedicated to testing chain of changeset with merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
  2097
- one with change to an unrelated file
f9dfb56ed6e8 copies: add a new test dedicated to testing chain of changeset with merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
  2098
- one deleting and recreating the change
f9dfb56ed6e8 copies: add a new test dedicated to testing chain of changeset with merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
  2099
44679
806f1f1ba430 tests: move verification closer to setup in test-copies-chain-merge.t
Martin von Zweigbergk <martinvonz@google.com>
parents: 44678
diff changeset
  2100
  $ hg log -G --rev '::(desc("mDBm")+desc("mBDm"))'
46594
74e2256a56b8 test-copies: remove revision number from log
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46593
diff changeset
  2101
  o    mDBm-0 simple merge - B side: unrelated update, D side: delete and recreate a file (with different content) - the other way
44679
806f1f1ba430 tests: move verification closer to setup in test-copies-chain-merge.t
Martin von Zweigbergk <martinvonz@google.com>
parents: 44678
diff changeset
  2102
  |\
46594
74e2256a56b8 test-copies: remove revision number from log
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46593
diff changeset
  2103
  +---o  mBDm-0 simple merge - B side: unrelated update, D side: delete and recreate a file (with different content) - one way
44679
806f1f1ba430 tests: move verification closer to setup in test-copies-chain-merge.t
Martin von Zweigbergk <martinvonz@google.com>
parents: 44678
diff changeset
  2104
  | |/
46594
74e2256a56b8 test-copies: remove revision number from log
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46593
diff changeset
  2105
  | o  d-2 re-add d
44679
806f1f1ba430 tests: move verification closer to setup in test-copies-chain-merge.t
Martin von Zweigbergk <martinvonz@google.com>
parents: 44678
diff changeset
  2106
  | |
46594
74e2256a56b8 test-copies: remove revision number from log
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46593
diff changeset
  2107
  | o  d-1 delete d
44679
806f1f1ba430 tests: move verification closer to setup in test-copies-chain-merge.t
Martin von Zweigbergk <martinvonz@google.com>
parents: 44678
diff changeset
  2108
  | |
46594
74e2256a56b8 test-copies: remove revision number from log
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46593
diff changeset
  2109
  o |  b-1: b update
44679
806f1f1ba430 tests: move verification closer to setup in test-copies-chain-merge.t
Martin von Zweigbergk <martinvonz@google.com>
parents: 44678
diff changeset
  2110
  |/
46600
0ebfd02dafd5 test-copies: move the new files in the `i` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46599
diff changeset
  2111
  o  i-2: c -move-> d, s -move-> t
44679
806f1f1ba430 tests: move verification closer to setup in test-copies-chain-merge.t
Martin von Zweigbergk <martinvonz@google.com>
parents: 44678
diff changeset
  2112
  |
46600
0ebfd02dafd5 test-copies: move the new files in the `i` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46599
diff changeset
  2113
  o  i-1: a -move-> c, p -move-> s
44679
806f1f1ba430 tests: move verification closer to setup in test-copies-chain-merge.t
Martin von Zweigbergk <martinvonz@google.com>
parents: 44678
diff changeset
  2114
  |
46649
d7d64b8c8229 tests: correct a commit description in test-copies-chain-merge.t
Martin von Zweigbergk <martinvonz@google.com>
parents: 46607
diff changeset
  2115
  o  i-0 initial commit: a b h p q r
44679
806f1f1ba430 tests: move verification closer to setup in test-copies-chain-merge.t
Martin von Zweigbergk <martinvonz@google.com>
parents: 44678
diff changeset
  2116
  
44327
f9dfb56ed6e8 copies: add a new test dedicated to testing chain of changeset with merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
  2117
  $ hg status --copies --rev 'desc("b-1")' --rev 'desc("mBDm-0")'
f9dfb56ed6e8 copies: add a new test dedicated to testing chain of changeset with merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
  2118
  M d
f9dfb56ed6e8 copies: add a new test dedicated to testing chain of changeset with merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
  2119
  $ hg status --copies --rev 'desc("b-1")' --rev 'desc("mDBm-0")'
f9dfb56ed6e8 copies: add a new test dedicated to testing chain of changeset with merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
  2120
  M d
f9dfb56ed6e8 copies: add a new test dedicated to testing chain of changeset with merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
  2121
  $ hg status --copies --rev 'desc("d-2")' --rev 'desc("mBDm-0")'
f9dfb56ed6e8 copies: add a new test dedicated to testing chain of changeset with merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
  2122
  M b
f9dfb56ed6e8 copies: add a new test dedicated to testing chain of changeset with merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
  2123
  $ hg status --copies --rev 'desc("d-2")' --rev 'desc("mDBm-0")'
f9dfb56ed6e8 copies: add a new test dedicated to testing chain of changeset with merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
  2124
  M b
f9dfb56ed6e8 copies: add a new test dedicated to testing chain of changeset with merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
  2125
  $ hg status --copies --rev 'desc("i-2")' --rev 'desc("mBDm-0")'
f9dfb56ed6e8 copies: add a new test dedicated to testing chain of changeset with merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
  2126
  M b
f9dfb56ed6e8 copies: add a new test dedicated to testing chain of changeset with merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
  2127
  M d
f9dfb56ed6e8 copies: add a new test dedicated to testing chain of changeset with merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
  2128
  $ hg status --copies --rev 'desc("i-2")' --rev 'desc("mDBm-0")'
f9dfb56ed6e8 copies: add a new test dedicated to testing chain of changeset with merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
  2129
  M b
f9dfb56ed6e8 copies: add a new test dedicated to testing chain of changeset with merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
  2130
  M d
f9dfb56ed6e8 copies: add a new test dedicated to testing chain of changeset with merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
  2131
44472
b8882f5d7cb4 copies-tests: update the analysis of the BD/DB cases
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44471
diff changeset
  2132
The bugs makes recorded copy is different depending of where we started the merge from since
44327
f9dfb56ed6e8 copies: add a new test dedicated to testing chain of changeset with merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
  2133
f9dfb56ed6e8 copies: add a new test dedicated to testing chain of changeset with merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
  2134
  $ hg manifest --debug --rev 'desc("mBDm-0")' | grep '644   d'
44688
1b8fd4af3318 mergestate: store about files resolved in favour of other
Pulkit Goyal <7895pulkit@gmail.com>
parents: 44679
diff changeset
  2135
  b004912a8510032a0350a74daa2803dadfb00e12 644   d
44327
f9dfb56ed6e8 copies: add a new test dedicated to testing chain of changeset with merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
  2136
  $ hg manifest --debug --rev 'desc("mDBm-0")' | grep '644   d'
f9dfb56ed6e8 copies: add a new test dedicated to testing chain of changeset with merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
  2137
  b004912a8510032a0350a74daa2803dadfb00e12 644   d
f9dfb56ed6e8 copies: add a new test dedicated to testing chain of changeset with merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
  2138
f9dfb56ed6e8 copies: add a new test dedicated to testing chain of changeset with merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
  2139
  $ hg manifest --debug --rev 'desc("d-2")' | grep '644   d'
f9dfb56ed6e8 copies: add a new test dedicated to testing chain of changeset with merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
  2140
  b004912a8510032a0350a74daa2803dadfb00e12 644   d
f9dfb56ed6e8 copies: add a new test dedicated to testing chain of changeset with merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
  2141
  $ hg manifest --debug --rev 'desc("b-1")' | grep '644   d'
46578
d46885119f90 test-copies: don't use empty file for "same content" cases
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46577
diff changeset
  2142
  d8252ab2e760b0d4e5288fd44cbd15a0fa567e16 644   d (no-changeset !)
d46885119f90 test-copies: don't use empty file for "same content" cases
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46577
diff changeset
  2143
  ae258f702dfeca05bf9b6a22a97a4b5645570f11 644   d (changeset !)
46596
9cd4f58467af test-copies: filter out the linkrev part of `debugindex`
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46595
diff changeset
  2144
  $ hg debugindex d | head -n 4 | ../no-linkrev
44327
f9dfb56ed6e8 copies: add a new test dedicated to testing chain of changeset with merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
  2145
     rev linkrev nodeid       p1           p2
46596
9cd4f58467af test-copies: filter out the linkrev part of `debugindex`
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46595
diff changeset
  2146
       0       * d8252ab2e760 000000000000 000000000000 (no-changeset !)
9cd4f58467af test-copies: filter out the linkrev part of `debugindex`
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46595
diff changeset
  2147
       0       * ae258f702dfe 000000000000 000000000000 (changeset !)
9cd4f58467af test-copies: filter out the linkrev part of `debugindex`
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46595
diff changeset
  2148
       1       * b004912a8510 000000000000 000000000000
9cd4f58467af test-copies: filter out the linkrev part of `debugindex`
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46595
diff changeset
  2149
       2       * 7b79e2fe0c89 000000000000 000000000000 (no-changeset !)
9cd4f58467af test-copies: filter out the linkrev part of `debugindex`
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46595
diff changeset
  2150
       2       * 5cce88bf349f ae258f702dfe 000000000000 (changeset !)
44327
f9dfb56ed6e8 copies: add a new test dedicated to testing chain of changeset with merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
  2151
45655
a357688e3c9c tests: update/remove outdated comments in test-copies-chain-merge.t
Pulkit Goyal <7895pulkit@gmail.com>
parents: 45472
diff changeset
  2152
Log output should not include a merge commit as it did not happen
44472
b8882f5d7cb4 copies-tests: update the analysis of the BD/DB cases
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44471
diff changeset
  2153
44327
f9dfb56ed6e8 copies: add a new test dedicated to testing chain of changeset with merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
  2154
  $ hg log -Gfr 'desc("mBDm-0")' d
46594
74e2256a56b8 test-copies: remove revision number from log
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46593
diff changeset
  2155
  o  d-2 re-add d
44327
f9dfb56ed6e8 copies: add a new test dedicated to testing chain of changeset with merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
  2156
  |
44688
1b8fd4af3318 mergestate: store about files resolved in favour of other
Pulkit Goyal <7895pulkit@gmail.com>
parents: 44679
diff changeset
  2157
  ~
44327
f9dfb56ed6e8 copies: add a new test dedicated to testing chain of changeset with merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
  2158
f9dfb56ed6e8 copies: add a new test dedicated to testing chain of changeset with merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
  2159
  $ hg log -Gfr 'desc("mDBm-0")' d
46594
74e2256a56b8 test-copies: remove revision number from log
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46593
diff changeset
  2160
  o  d-2 re-add d
44327
f9dfb56ed6e8 copies: add a new test dedicated to testing chain of changeset with merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
  2161
  |
f9dfb56ed6e8 copies: add a new test dedicated to testing chain of changeset with merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
  2162
  ~
f9dfb56ed6e8 copies: add a new test dedicated to testing chain of changeset with merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
  2163
f9dfb56ed6e8 copies: add a new test dedicated to testing chain of changeset with merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
  2164
  $ hg status --copies --rev 'desc("i-0")' --rev 'desc("mBDm-0")'
f9dfb56ed6e8 copies: add a new test dedicated to testing chain of changeset with merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
  2165
  M b
f9dfb56ed6e8 copies: add a new test dedicated to testing chain of changeset with merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
  2166
  A d
46600
0ebfd02dafd5 test-copies: move the new files in the `i` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46599
diff changeset
  2167
  A t
0ebfd02dafd5 test-copies: move the new files in the `i` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46599
diff changeset
  2168
    p
44327
f9dfb56ed6e8 copies: add a new test dedicated to testing chain of changeset with merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
  2169
  R a
46600
0ebfd02dafd5 test-copies: move the new files in the `i` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46599
diff changeset
  2170
  R p
44327
f9dfb56ed6e8 copies: add a new test dedicated to testing chain of changeset with merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
  2171
  $ hg status --copies --rev 'desc("i-0")' --rev 'desc("mDBm-0")'
f9dfb56ed6e8 copies: add a new test dedicated to testing chain of changeset with merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
  2172
  M b
f9dfb56ed6e8 copies: add a new test dedicated to testing chain of changeset with merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
  2173
  A d
46600
0ebfd02dafd5 test-copies: move the new files in the `i` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46599
diff changeset
  2174
  A t
0ebfd02dafd5 test-copies: move the new files in the `i` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46599
diff changeset
  2175
    p
44327
f9dfb56ed6e8 copies: add a new test dedicated to testing chain of changeset with merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
  2176
  R a
46600
0ebfd02dafd5 test-copies: move the new files in the `i` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46599
diff changeset
  2177
  R p
44327
f9dfb56ed6e8 copies: add a new test dedicated to testing chain of changeset with merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
  2178
44679
806f1f1ba430 tests: move verification closer to setup in test-copies-chain-merge.t
Martin von Zweigbergk <martinvonz@google.com>
parents: 44678
diff changeset
  2179
44473
275365d85e3f copies-tests: clarify the description of the EA/AE cases
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44472
diff changeset
  2180
Comparing with a merge with colliding rename
275365d85e3f copies-tests: clarify the description of the EA/AE cases
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44472
diff changeset
  2181
--------------------------------------------
44327
f9dfb56ed6e8 copies: add a new test dedicated to testing chain of changeset with merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
  2182
46590
f01696d45d1e test-copies: add subcase titles for various "conflicting" information variant
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46589
diff changeset
  2183
Subcase: new copy information on both side
f01696d45d1e test-copies: add subcase titles for various "conflicting" information variant
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46589
diff changeset
  2184
``````````````````````````````````````````
f01696d45d1e test-copies: add subcase titles for various "conflicting" information variant
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46589
diff changeset
  2185
44473
275365d85e3f copies-tests: clarify the description of the EA/AE cases
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44472
diff changeset
  2186
- the "e-" branch renaming b to f (through 'g')
275365d85e3f copies-tests: clarify the description of the EA/AE cases
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44472
diff changeset
  2187
- the "a-" branch renaming d to f (through e)
44327
f9dfb56ed6e8 copies: add a new test dedicated to testing chain of changeset with merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
  2188
44679
806f1f1ba430 tests: move verification closer to setup in test-copies-chain-merge.t
Martin von Zweigbergk <martinvonz@google.com>
parents: 44678
diff changeset
  2189
  $ hg log -G --rev '::(desc("mAEm")+desc("mEAm"))'
46594
74e2256a56b8 test-copies: remove revision number from log
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46593
diff changeset
  2190
  o    mEAm-0 merge with copies info on both side - A side: rename d to f, E side: b to f, (same content for f) - the other way
44679
806f1f1ba430 tests: move verification closer to setup in test-copies-chain-merge.t
Martin von Zweigbergk <martinvonz@google.com>
parents: 44678
diff changeset
  2191
  |\
46594
74e2256a56b8 test-copies: remove revision number from log
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46593
diff changeset
  2192
  +---o  mAEm-0 merge with copies info on both side - A side: rename d to f, E side: b to f, (same content for f) - one way
44679
806f1f1ba430 tests: move verification closer to setup in test-copies-chain-merge.t
Martin von Zweigbergk <martinvonz@google.com>
parents: 44678
diff changeset
  2193
  | |/
46594
74e2256a56b8 test-copies: remove revision number from log
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46593
diff changeset
  2194
  | o  e-2 g -move-> f
44679
806f1f1ba430 tests: move verification closer to setup in test-copies-chain-merge.t
Martin von Zweigbergk <martinvonz@google.com>
parents: 44678
diff changeset
  2195
  | |
46594
74e2256a56b8 test-copies: remove revision number from log
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46593
diff changeset
  2196
  | o  e-1 b -move-> g
44679
806f1f1ba430 tests: move verification closer to setup in test-copies-chain-merge.t
Martin von Zweigbergk <martinvonz@google.com>
parents: 44678
diff changeset
  2197
  | |
46594
74e2256a56b8 test-copies: remove revision number from log
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46593
diff changeset
  2198
  o |  a-2: e -move-> f
44679
806f1f1ba430 tests: move verification closer to setup in test-copies-chain-merge.t
Martin von Zweigbergk <martinvonz@google.com>
parents: 44678
diff changeset
  2199
  | |
46594
74e2256a56b8 test-copies: remove revision number from log
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46593
diff changeset
  2200
  o |  a-1: d -move-> e
44679
806f1f1ba430 tests: move verification closer to setup in test-copies-chain-merge.t
Martin von Zweigbergk <martinvonz@google.com>
parents: 44678
diff changeset
  2201
  |/
46600
0ebfd02dafd5 test-copies: move the new files in the `i` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46599
diff changeset
  2202
  o  i-2: c -move-> d, s -move-> t
44679
806f1f1ba430 tests: move verification closer to setup in test-copies-chain-merge.t
Martin von Zweigbergk <martinvonz@google.com>
parents: 44678
diff changeset
  2203
  |
46600
0ebfd02dafd5 test-copies: move the new files in the `i` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46599
diff changeset
  2204
  o  i-1: a -move-> c, p -move-> s
44679
806f1f1ba430 tests: move verification closer to setup in test-copies-chain-merge.t
Martin von Zweigbergk <martinvonz@google.com>
parents: 44678
diff changeset
  2205
  |
46649
d7d64b8c8229 tests: correct a commit description in test-copies-chain-merge.t
Martin von Zweigbergk <martinvonz@google.com>
parents: 46607
diff changeset
  2206
  o  i-0 initial commit: a b h p q r
44679
806f1f1ba430 tests: move verification closer to setup in test-copies-chain-merge.t
Martin von Zweigbergk <martinvonz@google.com>
parents: 44678
diff changeset
  2207
  
45704
5e72827dae1e tests: run test-copies-chain-merge.t also with copies in changesets
Martin von Zweigbergk <martinvonz@google.com>
parents: 45702
diff changeset
  2208
#if no-changeset
44327
f9dfb56ed6e8 copies: add a new test dedicated to testing chain of changeset with merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
  2209
  $ hg manifest --debug --rev 'desc("mAEm-0")' | grep '644   f'
46578
d46885119f90 test-copies: don't use empty file for "same content" cases
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46577
diff changeset
  2210
  2ff93c643948464ee1f871867910ae43a45b0bea 644   f
44327
f9dfb56ed6e8 copies: add a new test dedicated to testing chain of changeset with merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
  2211
  $ hg manifest --debug --rev 'desc("mEAm-0")' | grep '644   f'
46578
d46885119f90 test-copies: don't use empty file for "same content" cases
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46577
diff changeset
  2212
  2ff93c643948464ee1f871867910ae43a45b0bea 644   f
44327
f9dfb56ed6e8 copies: add a new test dedicated to testing chain of changeset with merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
  2213
  $ hg manifest --debug --rev 'desc("a-2")' | grep '644   f'
46578
d46885119f90 test-copies: don't use empty file for "same content" cases
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46577
diff changeset
  2214
  b76eb76580df486c3d51d63c5c210d4dd43a8ac7 644   f
44327
f9dfb56ed6e8 copies: add a new test dedicated to testing chain of changeset with merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
  2215
  $ hg manifest --debug --rev 'desc("e-2")' | grep '644   f'
46578
d46885119f90 test-copies: don't use empty file for "same content" cases
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46577
diff changeset
  2216
  e8825b386367b29fec957283a80bb47b47483fe1 644   f
46596
9cd4f58467af test-copies: filter out the linkrev part of `debugindex`
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46595
diff changeset
  2217
  $ hg debugindex f | ../no-linkrev
44327
f9dfb56ed6e8 copies: add a new test dedicated to testing chain of changeset with merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
  2218
     rev linkrev nodeid       p1           p2
46596
9cd4f58467af test-copies: filter out the linkrev part of `debugindex`
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46595
diff changeset
  2219
       0       * b76eb76580df 000000000000 000000000000
9cd4f58467af test-copies: filter out the linkrev part of `debugindex`
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46595
diff changeset
  2220
       1       * e8825b386367 000000000000 000000000000
9cd4f58467af test-copies: filter out the linkrev part of `debugindex`
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46595
diff changeset
  2221
       2       * 2ff93c643948 b76eb76580df e8825b386367
46597
3aef76c3fd38 test-copies: add a "change during merge" variant to the A+E test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46596
diff changeset
  2222
       3       * 2f649fba7eb2 b76eb76580df e8825b386367
3aef76c3fd38 test-copies: add a "change during merge" variant to the A+E test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46596
diff changeset
  2223
       4       * 774e7c1637d5 e8825b386367 b76eb76580df
45704
5e72827dae1e tests: run test-copies-chain-merge.t also with copies in changesets
Martin von Zweigbergk <martinvonz@google.com>
parents: 45702
diff changeset
  2224
#else
5e72827dae1e tests: run test-copies-chain-merge.t also with copies in changesets
Martin von Zweigbergk <martinvonz@google.com>
parents: 45702
diff changeset
  2225
  $ hg manifest --debug --rev 'desc("mAEm-0")' | grep '644   f'
46578
d46885119f90 test-copies: don't use empty file for "same content" cases
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46577
diff changeset
  2226
  ae258f702dfeca05bf9b6a22a97a4b5645570f11 644   f
45704
5e72827dae1e tests: run test-copies-chain-merge.t also with copies in changesets
Martin von Zweigbergk <martinvonz@google.com>
parents: 45702
diff changeset
  2227
  $ hg manifest --debug --rev 'desc("mEAm-0")' | grep '644   f'
46578
d46885119f90 test-copies: don't use empty file for "same content" cases
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46577
diff changeset
  2228
  ae258f702dfeca05bf9b6a22a97a4b5645570f11 644   f
45704
5e72827dae1e tests: run test-copies-chain-merge.t also with copies in changesets
Martin von Zweigbergk <martinvonz@google.com>
parents: 45702
diff changeset
  2229
  $ hg manifest --debug --rev 'desc("a-2")' | grep '644   f'
46578
d46885119f90 test-copies: don't use empty file for "same content" cases
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46577
diff changeset
  2230
  ae258f702dfeca05bf9b6a22a97a4b5645570f11 644   f
45704
5e72827dae1e tests: run test-copies-chain-merge.t also with copies in changesets
Martin von Zweigbergk <martinvonz@google.com>
parents: 45702
diff changeset
  2231
  $ hg manifest --debug --rev 'desc("e-2")' | grep '644   f'
46578
d46885119f90 test-copies: don't use empty file for "same content" cases
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46577
diff changeset
  2232
  ae258f702dfeca05bf9b6a22a97a4b5645570f11 644   f
46596
9cd4f58467af test-copies: filter out the linkrev part of `debugindex`
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46595
diff changeset
  2233
  $ hg debugindex f | ../no-linkrev
45704
5e72827dae1e tests: run test-copies-chain-merge.t also with copies in changesets
Martin von Zweigbergk <martinvonz@google.com>
parents: 45702
diff changeset
  2234
     rev linkrev nodeid       p1           p2
46596
9cd4f58467af test-copies: filter out the linkrev part of `debugindex`
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46595
diff changeset
  2235
       0       * ae258f702dfe 000000000000 000000000000
46597
3aef76c3fd38 test-copies: add a "change during merge" variant to the A+E test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46596
diff changeset
  2236
       1       * d3613c1ec831 ae258f702dfe 000000000000
3aef76c3fd38 test-copies: add a "change during merge" variant to the A+E test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46596
diff changeset
  2237
       2       * 05e03c868bbc ae258f702dfe 000000000000
45704
5e72827dae1e tests: run test-copies-chain-merge.t also with copies in changesets
Martin von Zweigbergk <martinvonz@google.com>
parents: 45702
diff changeset
  2238
#endif
44858
45f3f35cefe7 copies: fix the changeset based algorithm regarding merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44688
diff changeset
  2239
45f3f35cefe7 copies: fix the changeset based algorithm regarding merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44688
diff changeset
  2240
# Here the filelog based implementation is not looking at the rename
45f3f35cefe7 copies: fix the changeset based algorithm regarding merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44688
diff changeset
  2241
# information (because the file exist on both side). However the changelog
45f3f35cefe7 copies: fix the changeset based algorithm regarding merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44688
diff changeset
  2242
# based on works fine. We have different output.
45f3f35cefe7 copies: fix the changeset based algorithm regarding merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44688
diff changeset
  2243
44327
f9dfb56ed6e8 copies: add a new test dedicated to testing chain of changeset with merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
  2244
  $ hg status --copies --rev 'desc("a-2")' --rev 'desc("mAEm-0")'
46577
018d622e814d test-copies: reinstall initial identical (empty) files for chained copied
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46538
diff changeset
  2245
  M f (no-changeset !)
018d622e814d test-copies: reinstall initial identical (empty) files for chained copied
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46538
diff changeset
  2246
    b (no-filelog no-changeset !)
44327
f9dfb56ed6e8 copies: add a new test dedicated to testing chain of changeset with merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
  2247
  R b
f9dfb56ed6e8 copies: add a new test dedicated to testing chain of changeset with merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
  2248
  $ hg status --copies --rev 'desc("a-2")' --rev 'desc("mEAm-0")'
46577
018d622e814d test-copies: reinstall initial identical (empty) files for chained copied
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46538
diff changeset
  2249
  M f (no-changeset !)
018d622e814d test-copies: reinstall initial identical (empty) files for chained copied
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46538
diff changeset
  2250
    b (no-filelog no-changeset !)
44327
f9dfb56ed6e8 copies: add a new test dedicated to testing chain of changeset with merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
  2251
  R b
f9dfb56ed6e8 copies: add a new test dedicated to testing chain of changeset with merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
  2252
  $ hg status --copies --rev 'desc("e-2")' --rev 'desc("mAEm-0")'
46577
018d622e814d test-copies: reinstall initial identical (empty) files for chained copied
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46538
diff changeset
  2253
  M f (no-changeset !)
018d622e814d test-copies: reinstall initial identical (empty) files for chained copied
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46538
diff changeset
  2254
    d (no-filelog no-changeset !)
44327
f9dfb56ed6e8 copies: add a new test dedicated to testing chain of changeset with merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
  2255
  R d
f9dfb56ed6e8 copies: add a new test dedicated to testing chain of changeset with merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
  2256
  $ hg status --copies --rev 'desc("e-2")' --rev 'desc("mEAm-0")'
46577
018d622e814d test-copies: reinstall initial identical (empty) files for chained copied
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46538
diff changeset
  2257
  M f (no-changeset !)
018d622e814d test-copies: reinstall initial identical (empty) files for chained copied
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46538
diff changeset
  2258
    d (no-filelog no-changeset !)
44327
f9dfb56ed6e8 copies: add a new test dedicated to testing chain of changeset with merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
  2259
  R d
f9dfb56ed6e8 copies: add a new test dedicated to testing chain of changeset with merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
  2260
  $ hg status --copies --rev 'desc("i-2")' --rev 'desc("a-2")'
f9dfb56ed6e8 copies: add a new test dedicated to testing chain of changeset with merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
  2261
  A f
f9dfb56ed6e8 copies: add a new test dedicated to testing chain of changeset with merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
  2262
    d
f9dfb56ed6e8 copies: add a new test dedicated to testing chain of changeset with merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
  2263
  R d
f9dfb56ed6e8 copies: add a new test dedicated to testing chain of changeset with merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
  2264
  $ hg status --copies --rev 'desc("i-2")' --rev 'desc("e-2")'
f9dfb56ed6e8 copies: add a new test dedicated to testing chain of changeset with merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
  2265
  A f
f9dfb56ed6e8 copies: add a new test dedicated to testing chain of changeset with merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
  2266
    b
f9dfb56ed6e8 copies: add a new test dedicated to testing chain of changeset with merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
  2267
  R b
44858
45f3f35cefe7 copies: fix the changeset based algorithm regarding merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44688
diff changeset
  2268
45f3f35cefe7 copies: fix the changeset based algorithm regarding merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44688
diff changeset
  2269
# From here, we run status against revision where both source file exists.
45f3f35cefe7 copies: fix the changeset based algorithm regarding merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44688
diff changeset
  2270
#
45f3f35cefe7 copies: fix the changeset based algorithm regarding merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44688
diff changeset
  2271
# The filelog based implementation picks an arbitrary side based on revision
45f3f35cefe7 copies: fix the changeset based algorithm regarding merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44688
diff changeset
  2272
# numbers. So the same side "wins" whatever the parents order is. This is
45f3f35cefe7 copies: fix the changeset based algorithm regarding merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44688
diff changeset
  2273
# sub-optimal because depending on revision numbers means the result can be
45f3f35cefe7 copies: fix the changeset based algorithm regarding merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44688
diff changeset
  2274
# different from one repository to the next.
45f3f35cefe7 copies: fix the changeset based algorithm regarding merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44688
diff changeset
  2275
#
45f3f35cefe7 copies: fix the changeset based algorithm regarding merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44688
diff changeset
  2276
# The changeset based algorithm use the parent order to break tie on conflicting
45f3f35cefe7 copies: fix the changeset based algorithm regarding merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44688
diff changeset
  2277
# information and will have a different order depending on who is p1 and p2.
45f3f35cefe7 copies: fix the changeset based algorithm regarding merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44688
diff changeset
  2278
# That order is stable accross repositories. (data from p1 prevails)
45f3f35cefe7 copies: fix the changeset based algorithm regarding merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44688
diff changeset
  2279
44327
f9dfb56ed6e8 copies: add a new test dedicated to testing chain of changeset with merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
  2280
  $ hg status --copies --rev 'desc("i-2")' --rev 'desc("mAEm-0")'
f9dfb56ed6e8 copies: add a new test dedicated to testing chain of changeset with merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
  2281
  A f
f9dfb56ed6e8 copies: add a new test dedicated to testing chain of changeset with merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
  2282
    d
f9dfb56ed6e8 copies: add a new test dedicated to testing chain of changeset with merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
  2283
  R b
f9dfb56ed6e8 copies: add a new test dedicated to testing chain of changeset with merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
  2284
  R d
f9dfb56ed6e8 copies: add a new test dedicated to testing chain of changeset with merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
  2285
  $ hg status --copies --rev 'desc("i-2")' --rev 'desc("mEAm-0")'
f9dfb56ed6e8 copies: add a new test dedicated to testing chain of changeset with merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
  2286
  A f
44858
45f3f35cefe7 copies: fix the changeset based algorithm regarding merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44688
diff changeset
  2287
    d (filelog !)
45f3f35cefe7 copies: fix the changeset based algorithm regarding merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44688
diff changeset
  2288
    b (no-filelog !)
44327
f9dfb56ed6e8 copies: add a new test dedicated to testing chain of changeset with merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
  2289
  R b
f9dfb56ed6e8 copies: add a new test dedicated to testing chain of changeset with merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
  2290
  R d
f9dfb56ed6e8 copies: add a new test dedicated to testing chain of changeset with merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
  2291
  $ hg status --copies --rev 'desc("i-0")' --rev 'desc("mAEm-0")'
f9dfb56ed6e8 copies: add a new test dedicated to testing chain of changeset with merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
  2292
  A f
f9dfb56ed6e8 copies: add a new test dedicated to testing chain of changeset with merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
  2293
    a
46600
0ebfd02dafd5 test-copies: move the new files in the `i` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46599
diff changeset
  2294
  A t
0ebfd02dafd5 test-copies: move the new files in the `i` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46599
diff changeset
  2295
    p
44327
f9dfb56ed6e8 copies: add a new test dedicated to testing chain of changeset with merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
  2296
  R a
f9dfb56ed6e8 copies: add a new test dedicated to testing chain of changeset with merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
  2297
  R b
46600
0ebfd02dafd5 test-copies: move the new files in the `i` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46599
diff changeset
  2298
  R p
44327
f9dfb56ed6e8 copies: add a new test dedicated to testing chain of changeset with merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
  2299
  $ hg status --copies --rev 'desc("i-0")' --rev 'desc("mEAm-0")'
f9dfb56ed6e8 copies: add a new test dedicated to testing chain of changeset with merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
  2300
  A f
44858
45f3f35cefe7 copies: fix the changeset based algorithm regarding merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44688
diff changeset
  2301
    a (filelog !)
45f3f35cefe7 copies: fix the changeset based algorithm regarding merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44688
diff changeset
  2302
    b (no-filelog !)
46600
0ebfd02dafd5 test-copies: move the new files in the `i` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46599
diff changeset
  2303
  A t
0ebfd02dafd5 test-copies: move the new files in the `i` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46599
diff changeset
  2304
    p
44327
f9dfb56ed6e8 copies: add a new test dedicated to testing chain of changeset with merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
  2305
  R a
f9dfb56ed6e8 copies: add a new test dedicated to testing chain of changeset with merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
  2306
  R b
46600
0ebfd02dafd5 test-copies: move the new files in the `i` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46599
diff changeset
  2307
  R p
44476
890def17d03b copies-tests: add a test with a rename overwriting another file
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44475
diff changeset
  2308
44679
806f1f1ba430 tests: move verification closer to setup in test-copies-chain-merge.t
Martin von Zweigbergk <martinvonz@google.com>
parents: 44678
diff changeset
  2309
46590
f01696d45d1e test-copies: add subcase titles for various "conflicting" information variant
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46589
diff changeset
  2310
Subcase: existing copy information overwritten on one branch
f01696d45d1e test-copies: add subcase titles for various "conflicting" information variant
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46589
diff changeset
  2311
````````````````````````````````````````````````````````````
f01696d45d1e test-copies: add subcase titles for various "conflicting" information variant
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46589
diff changeset
  2312
44679
806f1f1ba430 tests: move verification closer to setup in test-copies-chain-merge.t
Martin von Zweigbergk <martinvonz@google.com>
parents: 44678
diff changeset
  2313
Note:
806f1f1ba430 tests: move verification closer to setup in test-copies-chain-merge.t
Martin von Zweigbergk <martinvonz@google.com>
parents: 44678
diff changeset
  2314
| In this case, one of the merge wrongly record a merge while there is none.
806f1f1ba430 tests: move verification closer to setup in test-copies-chain-merge.t
Martin von Zweigbergk <martinvonz@google.com>
parents: 44678
diff changeset
  2315
| This lead to bad copy tracing information to be dug up.
806f1f1ba430 tests: move verification closer to setup in test-copies-chain-merge.t
Martin von Zweigbergk <martinvonz@google.com>
parents: 44678
diff changeset
  2316
806f1f1ba430 tests: move verification closer to setup in test-copies-chain-merge.t
Martin von Zweigbergk <martinvonz@google.com>
parents: 44678
diff changeset
  2317
44476
890def17d03b copies-tests: add a test with a rename overwriting another file
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44475
diff changeset
  2318
Merge:
890def17d03b copies-tests: add a test with a rename overwriting another file
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44475
diff changeset
  2319
- one with change to an unrelated file (b)
890def17d03b copies-tests: add a test with a rename overwriting another file
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44475
diff changeset
  2320
- one overwriting a file (d) with a rename (from h to i to d)
890def17d03b copies-tests: add a test with a rename overwriting another file
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44475
diff changeset
  2321
44679
806f1f1ba430 tests: move verification closer to setup in test-copies-chain-merge.t
Martin von Zweigbergk <martinvonz@google.com>
parents: 44678
diff changeset
  2322
  $ hg log -G --rev '::(desc("mBFm")+desc("mFBm"))'
46594
74e2256a56b8 test-copies: remove revision number from log
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46593
diff changeset
  2323
  o    mFBm-0 simple merge - B side: unrelated change, F side: overwrite d with a copy (from h->i->d) - the other way
44679
806f1f1ba430 tests: move verification closer to setup in test-copies-chain-merge.t
Martin von Zweigbergk <martinvonz@google.com>
parents: 44678
diff changeset
  2324
  |\
46594
74e2256a56b8 test-copies: remove revision number from log
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46593
diff changeset
  2325
  +---o  mBFm-0 simple merge - B side: unrelated change, F side: overwrite d with a copy (from h->i->d) - one way
44679
806f1f1ba430 tests: move verification closer to setup in test-copies-chain-merge.t
Martin von Zweigbergk <martinvonz@google.com>
parents: 44678
diff changeset
  2326
  | |/
46594
74e2256a56b8 test-copies: remove revision number from log
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46593
diff changeset
  2327
  | o  f-2: rename i -> d
44679
806f1f1ba430 tests: move verification closer to setup in test-copies-chain-merge.t
Martin von Zweigbergk <martinvonz@google.com>
parents: 44678
diff changeset
  2328
  | |
46594
74e2256a56b8 test-copies: remove revision number from log
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46593
diff changeset
  2329
  | o  f-1: rename h -> i
44679
806f1f1ba430 tests: move verification closer to setup in test-copies-chain-merge.t
Martin von Zweigbergk <martinvonz@google.com>
parents: 44678
diff changeset
  2330
  | |
46594
74e2256a56b8 test-copies: remove revision number from log
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46593
diff changeset
  2331
  o |  b-1: b update
44679
806f1f1ba430 tests: move verification closer to setup in test-copies-chain-merge.t
Martin von Zweigbergk <martinvonz@google.com>
parents: 44678
diff changeset
  2332
  |/
46600
0ebfd02dafd5 test-copies: move the new files in the `i` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46599
diff changeset
  2333
  o  i-2: c -move-> d, s -move-> t
44679
806f1f1ba430 tests: move verification closer to setup in test-copies-chain-merge.t
Martin von Zweigbergk <martinvonz@google.com>
parents: 44678
diff changeset
  2334
  |
46600
0ebfd02dafd5 test-copies: move the new files in the `i` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46599
diff changeset
  2335
  o  i-1: a -move-> c, p -move-> s
44679
806f1f1ba430 tests: move verification closer to setup in test-copies-chain-merge.t
Martin von Zweigbergk <martinvonz@google.com>
parents: 44678
diff changeset
  2336
  |
46649
d7d64b8c8229 tests: correct a commit description in test-copies-chain-merge.t
Martin von Zweigbergk <martinvonz@google.com>
parents: 46607
diff changeset
  2337
  o  i-0 initial commit: a b h p q r
44679
806f1f1ba430 tests: move verification closer to setup in test-copies-chain-merge.t
Martin von Zweigbergk <martinvonz@google.com>
parents: 44678
diff changeset
  2338
  
44476
890def17d03b copies-tests: add a test with a rename overwriting another file
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44475
diff changeset
  2339
  $ hg status --copies --rev 'desc("i-0")' --rev 'desc("mBFm-0")'
890def17d03b copies-tests: add a test with a rename overwriting another file
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44475
diff changeset
  2340
  M b
890def17d03b copies-tests: add a test with a rename overwriting another file
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44475
diff changeset
  2341
  A d
44688
1b8fd4af3318 mergestate: store about files resolved in favour of other
Pulkit Goyal <7895pulkit@gmail.com>
parents: 44679
diff changeset
  2342
    h
46600
0ebfd02dafd5 test-copies: move the new files in the `i` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46599
diff changeset
  2343
  A t
0ebfd02dafd5 test-copies: move the new files in the `i` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46599
diff changeset
  2344
    p
44476
890def17d03b copies-tests: add a test with a rename overwriting another file
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44475
diff changeset
  2345
  R a
890def17d03b copies-tests: add a test with a rename overwriting another file
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44475
diff changeset
  2346
  R h
46600
0ebfd02dafd5 test-copies: move the new files in the `i` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46599
diff changeset
  2347
  R p
44476
890def17d03b copies-tests: add a test with a rename overwriting another file
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44475
diff changeset
  2348
  $ hg status --copies --rev 'desc("i-0")' --rev 'desc("mFBm-0")'
890def17d03b copies-tests: add a test with a rename overwriting another file
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44475
diff changeset
  2349
  M b
890def17d03b copies-tests: add a test with a rename overwriting another file
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44475
diff changeset
  2350
  A d
890def17d03b copies-tests: add a test with a rename overwriting another file
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44475
diff changeset
  2351
    h
46600
0ebfd02dafd5 test-copies: move the new files in the `i` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46599
diff changeset
  2352
  A t
0ebfd02dafd5 test-copies: move the new files in the `i` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46599
diff changeset
  2353
    p
44476
890def17d03b copies-tests: add a test with a rename overwriting another file
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44475
diff changeset
  2354
  R a
890def17d03b copies-tests: add a test with a rename overwriting another file
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44475
diff changeset
  2355
  R h
46600
0ebfd02dafd5 test-copies: move the new files in the `i` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46599
diff changeset
  2356
  R p
44476
890def17d03b copies-tests: add a test with a rename overwriting another file
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44475
diff changeset
  2357
  $ hg status --copies --rev 'desc("b-1")' --rev 'desc("mBFm-0")'
46577
018d622e814d test-copies: reinstall initial identical (empty) files for chained copied
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46538
diff changeset
  2358
  M d (no-changeset !)
018d622e814d test-copies: reinstall initial identical (empty) files for chained copied
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46538
diff changeset
  2359
    h (no-filelog no-changeset !)
44476
890def17d03b copies-tests: add a test with a rename overwriting another file
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44475
diff changeset
  2360
  R h
890def17d03b copies-tests: add a test with a rename overwriting another file
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44475
diff changeset
  2361
  $ hg status --copies --rev 'desc("f-2")' --rev 'desc("mBFm-0")'
890def17d03b copies-tests: add a test with a rename overwriting another file
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44475
diff changeset
  2362
  M b
890def17d03b copies-tests: add a test with a rename overwriting another file
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44475
diff changeset
  2363
  $ hg status --copies --rev 'desc("f-1")' --rev 'desc("mBFm-0")'
890def17d03b copies-tests: add a test with a rename overwriting another file
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44475
diff changeset
  2364
  M b
46577
018d622e814d test-copies: reinstall initial identical (empty) files for chained copied
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46538
diff changeset
  2365
  M d (no-changeset !)
018d622e814d test-copies: reinstall initial identical (empty) files for chained copied
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46538
diff changeset
  2366
    i (no-filelog no-changeset !)
44476
890def17d03b copies-tests: add a test with a rename overwriting another file
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44475
diff changeset
  2367
  R i
890def17d03b copies-tests: add a test with a rename overwriting another file
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44475
diff changeset
  2368
  $ hg status --copies --rev 'desc("b-1")' --rev 'desc("mFBm-0")'
46577
018d622e814d test-copies: reinstall initial identical (empty) files for chained copied
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46538
diff changeset
  2369
  M d (no-changeset !)
018d622e814d test-copies: reinstall initial identical (empty) files for chained copied
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46538
diff changeset
  2370
    h (no-filelog no-changeset !)
44476
890def17d03b copies-tests: add a test with a rename overwriting another file
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44475
diff changeset
  2371
  R h
890def17d03b copies-tests: add a test with a rename overwriting another file
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44475
diff changeset
  2372
  $ hg status --copies --rev 'desc("f-2")' --rev 'desc("mFBm-0")'
890def17d03b copies-tests: add a test with a rename overwriting another file
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44475
diff changeset
  2373
  M b
890def17d03b copies-tests: add a test with a rename overwriting another file
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44475
diff changeset
  2374
  $ hg status --copies --rev 'desc("f-1")' --rev 'desc("mFBm-0")'
890def17d03b copies-tests: add a test with a rename overwriting another file
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44475
diff changeset
  2375
  M b
46577
018d622e814d test-copies: reinstall initial identical (empty) files for chained copied
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46538
diff changeset
  2376
  M d (no-changeset !)
018d622e814d test-copies: reinstall initial identical (empty) files for chained copied
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46538
diff changeset
  2377
    i (no-filelog no-changeset !)
44476
890def17d03b copies-tests: add a test with a rename overwriting another file
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44475
diff changeset
  2378
  R i
890def17d03b copies-tests: add a test with a rename overwriting another file
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44475
diff changeset
  2379
45704
5e72827dae1e tests: run test-copies-chain-merge.t also with copies in changesets
Martin von Zweigbergk <martinvonz@google.com>
parents: 45702
diff changeset
  2380
#if no-changeset
44476
890def17d03b copies-tests: add a test with a rename overwriting another file
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44475
diff changeset
  2381
  $ hg log -Gfr 'desc("mBFm-0")' d
46594
74e2256a56b8 test-copies: remove revision number from log
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46593
diff changeset
  2382
  o  f-2: rename i -> d
44476
890def17d03b copies-tests: add a test with a rename overwriting another file
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44475
diff changeset
  2383
  |
46594
74e2256a56b8 test-copies: remove revision number from log
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46593
diff changeset
  2384
  o  f-1: rename h -> i
44688
1b8fd4af3318 mergestate: store about files resolved in favour of other
Pulkit Goyal <7895pulkit@gmail.com>
parents: 44679
diff changeset
  2385
  :
46649
d7d64b8c8229 tests: correct a commit description in test-copies-chain-merge.t
Martin von Zweigbergk <martinvonz@google.com>
parents: 46607
diff changeset
  2386
  o  i-0 initial commit: a b h p q r
44476
890def17d03b copies-tests: add a test with a rename overwriting another file
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44475
diff changeset
  2387
  
45704
5e72827dae1e tests: run test-copies-chain-merge.t also with copies in changesets
Martin von Zweigbergk <martinvonz@google.com>
parents: 45702
diff changeset
  2388
#else
45801
6620caf427ec tests: add notes about broken `hg log --follow <file>` with copies in extras
Martin von Zweigbergk <martinvonz@google.com>
parents: 45788
diff changeset
  2389
BROKEN: `hg log --follow <file>` relies on filelog metadata to work
45704
5e72827dae1e tests: run test-copies-chain-merge.t also with copies in changesets
Martin von Zweigbergk <martinvonz@google.com>
parents: 45702
diff changeset
  2390
  $ hg log -Gfr 'desc("mBFm-0")' d
46600
0ebfd02dafd5 test-copies: move the new files in the `i` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46599
diff changeset
  2391
  o  i-2: c -move-> d, s -move-> t
45704
5e72827dae1e tests: run test-copies-chain-merge.t also with copies in changesets
Martin von Zweigbergk <martinvonz@google.com>
parents: 45702
diff changeset
  2392
  |
5e72827dae1e tests: run test-copies-chain-merge.t also with copies in changesets
Martin von Zweigbergk <martinvonz@google.com>
parents: 45702
diff changeset
  2393
  ~
5e72827dae1e tests: run test-copies-chain-merge.t also with copies in changesets
Martin von Zweigbergk <martinvonz@google.com>
parents: 45702
diff changeset
  2394
#endif
44476
890def17d03b copies-tests: add a test with a rename overwriting another file
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44475
diff changeset
  2395
45704
5e72827dae1e tests: run test-copies-chain-merge.t also with copies in changesets
Martin von Zweigbergk <martinvonz@google.com>
parents: 45702
diff changeset
  2396
#if no-changeset
44476
890def17d03b copies-tests: add a test with a rename overwriting another file
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44475
diff changeset
  2397
  $ hg log -Gfr 'desc("mFBm-0")' d
46594
74e2256a56b8 test-copies: remove revision number from log
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46593
diff changeset
  2398
  o  f-2: rename i -> d
44476
890def17d03b copies-tests: add a test with a rename overwriting another file
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44475
diff changeset
  2399
  |
46594
74e2256a56b8 test-copies: remove revision number from log
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46593
diff changeset
  2400
  o  f-1: rename h -> i
44476
890def17d03b copies-tests: add a test with a rename overwriting another file
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44475
diff changeset
  2401
  :
46649
d7d64b8c8229 tests: correct a commit description in test-copies-chain-merge.t
Martin von Zweigbergk <martinvonz@google.com>
parents: 46607
diff changeset
  2402
  o  i-0 initial commit: a b h p q r
44476
890def17d03b copies-tests: add a test with a rename overwriting another file
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44475
diff changeset
  2403
  
45704
5e72827dae1e tests: run test-copies-chain-merge.t also with copies in changesets
Martin von Zweigbergk <martinvonz@google.com>
parents: 45702
diff changeset
  2404
#else
45801
6620caf427ec tests: add notes about broken `hg log --follow <file>` with copies in extras
Martin von Zweigbergk <martinvonz@google.com>
parents: 45788
diff changeset
  2405
BROKEN: `hg log --follow <file>` relies on filelog metadata to work
45704
5e72827dae1e tests: run test-copies-chain-merge.t also with copies in changesets
Martin von Zweigbergk <martinvonz@google.com>
parents: 45702
diff changeset
  2406
  $ hg log -Gfr 'desc("mFBm-0")' d
46600
0ebfd02dafd5 test-copies: move the new files in the `i` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46599
diff changeset
  2407
  o  i-2: c -move-> d, s -move-> t
45704
5e72827dae1e tests: run test-copies-chain-merge.t also with copies in changesets
Martin von Zweigbergk <martinvonz@google.com>
parents: 45702
diff changeset
  2408
  |
5e72827dae1e tests: run test-copies-chain-merge.t also with copies in changesets
Martin von Zweigbergk <martinvonz@google.com>
parents: 45702
diff changeset
  2409
  ~
5e72827dae1e tests: run test-copies-chain-merge.t also with copies in changesets
Martin von Zweigbergk <martinvonz@google.com>
parents: 45702
diff changeset
  2410
#endif
44477
6f1f4a6f4168 copies-tests: add a case where a file is deleted/added but with a merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44476
diff changeset
  2411
46604
c7baff95808c test-copies: add a case involving the `b` and a new `r` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46603
diff changeset
  2412
c7baff95808c test-copies: add a case involving the `b` and a new `r` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46603
diff changeset
  2413
Subcase: existing copy information overwritten on one branch, with different content)
c7baff95808c test-copies: add a case involving the `b` and a new `r` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46603
diff changeset
  2414
`````````````````````````````````````````````````````````````````````````````````````
c7baff95808c test-copies: add a case involving the `b` and a new `r` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46603
diff changeset
  2415
c7baff95808c test-copies: add a case involving the `b` and a new `r` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46603
diff changeset
  2416
Merge:
c7baff95808c test-copies: add a case involving the `b` and a new `r` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46603
diff changeset
  2417
- one with change to an unrelated file (b)
c7baff95808c test-copies: add a case involving the `b` and a new `r` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46603
diff changeset
  2418
- one overwriting a file (t) with a rename (from r to x to t), v content is not the same as on the other branch
c7baff95808c test-copies: add a case involving the `b` and a new `r` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46603
diff changeset
  2419
c7baff95808c test-copies: add a case involving the `b` and a new `r` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46603
diff changeset
  2420
  $ hg log -G --rev '::(desc("mBRm")+desc("mRBm"))'
c7baff95808c test-copies: add a case involving the `b` and a new `r` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46603
diff changeset
  2421
  o    mRBm-0 simple merge - B side: unrelated change, R side: overwrite d with a copy (from r->x->t) different content - the other way
c7baff95808c test-copies: add a case involving the `b` and a new `r` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46603
diff changeset
  2422
  |\
c7baff95808c test-copies: add a case involving the `b` and a new `r` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46603
diff changeset
  2423
  +---o  mBRm-0 simple merge - B side: unrelated change, R side: overwrite d with a copy (from r->x->t) different content - one way
c7baff95808c test-copies: add a case involving the `b` and a new `r` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46603
diff changeset
  2424
  | |/
c7baff95808c test-copies: add a case involving the `b` and a new `r` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46603
diff changeset
  2425
  | o  r-2: rename t -> x
c7baff95808c test-copies: add a case involving the `b` and a new `r` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46603
diff changeset
  2426
  | |
c7baff95808c test-copies: add a case involving the `b` and a new `r` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46603
diff changeset
  2427
  | o  r-1: rename r -> x
c7baff95808c test-copies: add a case involving the `b` and a new `r` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46603
diff changeset
  2428
  | |
c7baff95808c test-copies: add a case involving the `b` and a new `r` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46603
diff changeset
  2429
  o |  b-1: b update
c7baff95808c test-copies: add a case involving the `b` and a new `r` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46603
diff changeset
  2430
  |/
c7baff95808c test-copies: add a case involving the `b` and a new `r` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46603
diff changeset
  2431
  o  i-2: c -move-> d, s -move-> t
c7baff95808c test-copies: add a case involving the `b` and a new `r` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46603
diff changeset
  2432
  |
c7baff95808c test-copies: add a case involving the `b` and a new `r` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46603
diff changeset
  2433
  o  i-1: a -move-> c, p -move-> s
c7baff95808c test-copies: add a case involving the `b` and a new `r` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46603
diff changeset
  2434
  |
46649
d7d64b8c8229 tests: correct a commit description in test-copies-chain-merge.t
Martin von Zweigbergk <martinvonz@google.com>
parents: 46607
diff changeset
  2435
  o  i-0 initial commit: a b h p q r
46604
c7baff95808c test-copies: add a case involving the `b` and a new `r` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46603
diff changeset
  2436
  
c7baff95808c test-copies: add a case involving the `b` and a new `r` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46603
diff changeset
  2437
  $ hg status --copies --rev 'desc("i-0")' --rev 'desc("mBRm-0")'
c7baff95808c test-copies: add a case involving the `b` and a new `r` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46603
diff changeset
  2438
  M b
c7baff95808c test-copies: add a case involving the `b` and a new `r` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46603
diff changeset
  2439
  A d
c7baff95808c test-copies: add a case involving the `b` and a new `r` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46603
diff changeset
  2440
    a
c7baff95808c test-copies: add a case involving the `b` and a new `r` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46603
diff changeset
  2441
  A t
c7baff95808c test-copies: add a case involving the `b` and a new `r` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46603
diff changeset
  2442
    r
c7baff95808c test-copies: add a case involving the `b` and a new `r` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46603
diff changeset
  2443
  R a
c7baff95808c test-copies: add a case involving the `b` and a new `r` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46603
diff changeset
  2444
  R p
c7baff95808c test-copies: add a case involving the `b` and a new `r` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46603
diff changeset
  2445
  R r
c7baff95808c test-copies: add a case involving the `b` and a new `r` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46603
diff changeset
  2446
  $ hg status --copies --rev 'desc("i-0")' --rev 'desc("mRBm-0")'
c7baff95808c test-copies: add a case involving the `b` and a new `r` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46603
diff changeset
  2447
  M b
c7baff95808c test-copies: add a case involving the `b` and a new `r` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46603
diff changeset
  2448
  A d
c7baff95808c test-copies: add a case involving the `b` and a new `r` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46603
diff changeset
  2449
    a
c7baff95808c test-copies: add a case involving the `b` and a new `r` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46603
diff changeset
  2450
  A t
c7baff95808c test-copies: add a case involving the `b` and a new `r` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46603
diff changeset
  2451
    r
c7baff95808c test-copies: add a case involving the `b` and a new `r` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46603
diff changeset
  2452
  R a
c7baff95808c test-copies: add a case involving the `b` and a new `r` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46603
diff changeset
  2453
  R p
c7baff95808c test-copies: add a case involving the `b` and a new `r` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46603
diff changeset
  2454
  R r
c7baff95808c test-copies: add a case involving the `b` and a new `r` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46603
diff changeset
  2455
  $ hg status --copies --rev 'desc("b-1")' --rev 'desc("mBRm-0")'
c7baff95808c test-copies: add a case involving the `b` and a new `r` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46603
diff changeset
  2456
  M t
c7baff95808c test-copies: add a case involving the `b` and a new `r` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46603
diff changeset
  2457
    r (no-filelog !)
c7baff95808c test-copies: add a case involving the `b` and a new `r` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46603
diff changeset
  2458
  R r
c7baff95808c test-copies: add a case involving the `b` and a new `r` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46603
diff changeset
  2459
  $ hg status --copies --rev 'desc("r-2")' --rev 'desc("mBRm-0")'
c7baff95808c test-copies: add a case involving the `b` and a new `r` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46603
diff changeset
  2460
  M b
c7baff95808c test-copies: add a case involving the `b` and a new `r` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46603
diff changeset
  2461
  $ hg status --copies --rev 'desc("r-1")' --rev 'desc("mBRm-0")'
c7baff95808c test-copies: add a case involving the `b` and a new `r` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46603
diff changeset
  2462
  M b
c7baff95808c test-copies: add a case involving the `b` and a new `r` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46603
diff changeset
  2463
  M t
c7baff95808c test-copies: add a case involving the `b` and a new `r` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46603
diff changeset
  2464
    x (no-filelog !)
c7baff95808c test-copies: add a case involving the `b` and a new `r` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46603
diff changeset
  2465
  R x
c7baff95808c test-copies: add a case involving the `b` and a new `r` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46603
diff changeset
  2466
  $ hg status --copies --rev 'desc("b-1")' --rev 'desc("mRBm-0")'
c7baff95808c test-copies: add a case involving the `b` and a new `r` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46603
diff changeset
  2467
  M t
c7baff95808c test-copies: add a case involving the `b` and a new `r` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46603
diff changeset
  2468
    r (no-filelog !)
c7baff95808c test-copies: add a case involving the `b` and a new `r` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46603
diff changeset
  2469
  R r
c7baff95808c test-copies: add a case involving the `b` and a new `r` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46603
diff changeset
  2470
  $ hg status --copies --rev 'desc("r-2")' --rev 'desc("mRBm-0")'
c7baff95808c test-copies: add a case involving the `b` and a new `r` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46603
diff changeset
  2471
  M b
c7baff95808c test-copies: add a case involving the `b` and a new `r` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46603
diff changeset
  2472
  $ hg status --copies --rev 'desc("r-1")' --rev 'desc("mRBm-0")'
c7baff95808c test-copies: add a case involving the `b` and a new `r` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46603
diff changeset
  2473
  M b
c7baff95808c test-copies: add a case involving the `b` and a new `r` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46603
diff changeset
  2474
  M t
c7baff95808c test-copies: add a case involving the `b` and a new `r` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46603
diff changeset
  2475
    x (no-filelog !)
c7baff95808c test-copies: add a case involving the `b` and a new `r` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46603
diff changeset
  2476
  R x
c7baff95808c test-copies: add a case involving the `b` and a new `r` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46603
diff changeset
  2477
c7baff95808c test-copies: add a case involving the `b` and a new `r` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46603
diff changeset
  2478
#if no-changeset
c7baff95808c test-copies: add a case involving the `b` and a new `r` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46603
diff changeset
  2479
  $ hg log -Gfr 'desc("mBRm-0")' d
c7baff95808c test-copies: add a case involving the `b` and a new `r` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46603
diff changeset
  2480
  o  i-2: c -move-> d, s -move-> t
c7baff95808c test-copies: add a case involving the `b` and a new `r` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46603
diff changeset
  2481
  |
c7baff95808c test-copies: add a case involving the `b` and a new `r` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46603
diff changeset
  2482
  o  i-1: a -move-> c, p -move-> s
c7baff95808c test-copies: add a case involving the `b` and a new `r` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46603
diff changeset
  2483
  |
46649
d7d64b8c8229 tests: correct a commit description in test-copies-chain-merge.t
Martin von Zweigbergk <martinvonz@google.com>
parents: 46607
diff changeset
  2484
  o  i-0 initial commit: a b h p q r
46604
c7baff95808c test-copies: add a case involving the `b` and a new `r` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46603
diff changeset
  2485
  
c7baff95808c test-copies: add a case involving the `b` and a new `r` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46603
diff changeset
  2486
#else
c7baff95808c test-copies: add a case involving the `b` and a new `r` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46603
diff changeset
  2487
BROKEN: `hg log --follow <file>` relies on filelog metadata to work
c7baff95808c test-copies: add a case involving the `b` and a new `r` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46603
diff changeset
  2488
  $ hg log -Gfr 'desc("mBRm-0")' d
c7baff95808c test-copies: add a case involving the `b` and a new `r` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46603
diff changeset
  2489
  o  i-2: c -move-> d, s -move-> t
c7baff95808c test-copies: add a case involving the `b` and a new `r` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46603
diff changeset
  2490
  |
c7baff95808c test-copies: add a case involving the `b` and a new `r` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46603
diff changeset
  2491
  ~
c7baff95808c test-copies: add a case involving the `b` and a new `r` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46603
diff changeset
  2492
#endif
c7baff95808c test-copies: add a case involving the `b` and a new `r` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46603
diff changeset
  2493
c7baff95808c test-copies: add a case involving the `b` and a new `r` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46603
diff changeset
  2494
#if no-changeset
c7baff95808c test-copies: add a case involving the `b` and a new `r` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46603
diff changeset
  2495
  $ hg log -Gfr 'desc("mRBm-0")' d
c7baff95808c test-copies: add a case involving the `b` and a new `r` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46603
diff changeset
  2496
  o  i-2: c -move-> d, s -move-> t
c7baff95808c test-copies: add a case involving the `b` and a new `r` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46603
diff changeset
  2497
  |
c7baff95808c test-copies: add a case involving the `b` and a new `r` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46603
diff changeset
  2498
  o  i-1: a -move-> c, p -move-> s
c7baff95808c test-copies: add a case involving the `b` and a new `r` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46603
diff changeset
  2499
  |
46649
d7d64b8c8229 tests: correct a commit description in test-copies-chain-merge.t
Martin von Zweigbergk <martinvonz@google.com>
parents: 46607
diff changeset
  2500
  o  i-0 initial commit: a b h p q r
46604
c7baff95808c test-copies: add a case involving the `b` and a new `r` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46603
diff changeset
  2501
  
c7baff95808c test-copies: add a case involving the `b` and a new `r` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46603
diff changeset
  2502
#else
c7baff95808c test-copies: add a case involving the `b` and a new `r` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46603
diff changeset
  2503
BROKEN: `hg log --follow <file>` relies on filelog metadata to work
c7baff95808c test-copies: add a case involving the `b` and a new `r` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46603
diff changeset
  2504
  $ hg log -Gfr 'desc("mRBm-0")' d
c7baff95808c test-copies: add a case involving the `b` and a new `r` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46603
diff changeset
  2505
  o  i-2: c -move-> d, s -move-> t
c7baff95808c test-copies: add a case involving the `b` and a new `r` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46603
diff changeset
  2506
  |
c7baff95808c test-copies: add a case involving the `b` and a new `r` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46603
diff changeset
  2507
  ~
c7baff95808c test-copies: add a case involving the `b` and a new `r` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46603
diff changeset
  2508
#endif
c7baff95808c test-copies: add a case involving the `b` and a new `r` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46603
diff changeset
  2509
46590
f01696d45d1e test-copies: add subcase titles for various "conflicting" information variant
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46589
diff changeset
  2510
Subcase: reset of the copy history on one side
f01696d45d1e test-copies: add subcase titles for various "conflicting" information variant
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46589
diff changeset
  2511
``````````````````````````````````````````````
44679
806f1f1ba430 tests: move verification closer to setup in test-copies-chain-merge.t
Martin von Zweigbergk <martinvonz@google.com>
parents: 44678
diff changeset
  2512
44477
6f1f4a6f4168 copies-tests: add a case where a file is deleted/added but with a merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44476
diff changeset
  2513
Merge:
6f1f4a6f4168 copies-tests: add a case where a file is deleted/added but with a merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44476
diff changeset
  2514
- one with change to a file
6f1f4a6f4168 copies-tests: add a case where a file is deleted/added but with a merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44476
diff changeset
  2515
- one deleting and recreating the file
6f1f4a6f4168 copies-tests: add a case where a file is deleted/added but with a merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44476
diff changeset
  2516
44679
806f1f1ba430 tests: move verification closer to setup in test-copies-chain-merge.t
Martin von Zweigbergk <martinvonz@google.com>
parents: 44678
diff changeset
  2517
Unlike in the 'BD/DB' cases, an actual merge happened here. So we should
44477
6f1f4a6f4168 copies-tests: add a case where a file is deleted/added but with a merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44476
diff changeset
  2518
consider history and rename on both branch of the merge.
6f1f4a6f4168 copies-tests: add a case where a file is deleted/added but with a merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44476
diff changeset
  2519
44679
806f1f1ba430 tests: move verification closer to setup in test-copies-chain-merge.t
Martin von Zweigbergk <martinvonz@google.com>
parents: 44678
diff changeset
  2520
  $ hg log -G --rev '::(desc("mDGm")+desc("mGDm"))'
46594
74e2256a56b8 test-copies: remove revision number from log
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46593
diff changeset
  2521
  o    mGDm-0 actual content merge, copies on one side - D side: delete and re-add (different content), G side: update content - the other way
44679
806f1f1ba430 tests: move verification closer to setup in test-copies-chain-merge.t
Martin von Zweigbergk <martinvonz@google.com>
parents: 44678
diff changeset
  2522
  |\
46594
74e2256a56b8 test-copies: remove revision number from log
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46593
diff changeset
  2523
  +---o  mDGm-0 actual content merge, copies on one side - D side: delete and re-add (different content), G side: update content - one way
44679
806f1f1ba430 tests: move verification closer to setup in test-copies-chain-merge.t
Martin von Zweigbergk <martinvonz@google.com>
parents: 44678
diff changeset
  2524
  | |/
46594
74e2256a56b8 test-copies: remove revision number from log
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46593
diff changeset
  2525
  | o  g-1: update d
44679
806f1f1ba430 tests: move verification closer to setup in test-copies-chain-merge.t
Martin von Zweigbergk <martinvonz@google.com>
parents: 44678
diff changeset
  2526
  | |
46594
74e2256a56b8 test-copies: remove revision number from log
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46593
diff changeset
  2527
  o |  d-2 re-add d
44679
806f1f1ba430 tests: move verification closer to setup in test-copies-chain-merge.t
Martin von Zweigbergk <martinvonz@google.com>
parents: 44678
diff changeset
  2528
  | |
46594
74e2256a56b8 test-copies: remove revision number from log
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46593
diff changeset
  2529
  o |  d-1 delete d
44679
806f1f1ba430 tests: move verification closer to setup in test-copies-chain-merge.t
Martin von Zweigbergk <martinvonz@google.com>
parents: 44678
diff changeset
  2530
  |/
46600
0ebfd02dafd5 test-copies: move the new files in the `i` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46599
diff changeset
  2531
  o  i-2: c -move-> d, s -move-> t
44679
806f1f1ba430 tests: move verification closer to setup in test-copies-chain-merge.t
Martin von Zweigbergk <martinvonz@google.com>
parents: 44678
diff changeset
  2532
  |
46600
0ebfd02dafd5 test-copies: move the new files in the `i` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46599
diff changeset
  2533
  o  i-1: a -move-> c, p -move-> s
44679
806f1f1ba430 tests: move verification closer to setup in test-copies-chain-merge.t
Martin von Zweigbergk <martinvonz@google.com>
parents: 44678
diff changeset
  2534
  |
46649
d7d64b8c8229 tests: correct a commit description in test-copies-chain-merge.t
Martin von Zweigbergk <martinvonz@google.com>
parents: 46607
diff changeset
  2535
  o  i-0 initial commit: a b h p q r
44679
806f1f1ba430 tests: move verification closer to setup in test-copies-chain-merge.t
Martin von Zweigbergk <martinvonz@google.com>
parents: 44678
diff changeset
  2536
  
44858
45f3f35cefe7 copies: fix the changeset based algorithm regarding merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44688
diff changeset
  2537
One side of the merge have a long history with rename. The other side of the
45f3f35cefe7 copies: fix the changeset based algorithm regarding merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44688
diff changeset
  2538
merge point to a new file with a smaller history. Each side is "valid".
45f3f35cefe7 copies: fix the changeset based algorithm regarding merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44688
diff changeset
  2539
45f3f35cefe7 copies: fix the changeset based algorithm regarding merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44688
diff changeset
  2540
(and again the filelog based algorithm only explore one, with a pick based on
45f3f35cefe7 copies: fix the changeset based algorithm regarding merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44688
diff changeset
  2541
revision numbers)
45f3f35cefe7 copies: fix the changeset based algorithm regarding merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44688
diff changeset
  2542
44477
6f1f4a6f4168 copies-tests: add a case where a file is deleted/added but with a merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44476
diff changeset
  2543
  $ hg status --copies --rev 'desc("i-0")' --rev 'desc("mDGm-0")'
6f1f4a6f4168 copies-tests: add a case where a file is deleted/added but with a merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44476
diff changeset
  2544
  A d
44858
45f3f35cefe7 copies: fix the changeset based algorithm regarding merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44688
diff changeset
  2545
    a (filelog !)
46600
0ebfd02dafd5 test-copies: move the new files in the `i` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46599
diff changeset
  2546
  A t
0ebfd02dafd5 test-copies: move the new files in the `i` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46599
diff changeset
  2547
    p
44477
6f1f4a6f4168 copies-tests: add a case where a file is deleted/added but with a merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44476
diff changeset
  2548
  R a
46600
0ebfd02dafd5 test-copies: move the new files in the `i` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46599
diff changeset
  2549
  R p
44477
6f1f4a6f4168 copies-tests: add a case where a file is deleted/added but with a merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44476
diff changeset
  2550
  $ hg status --copies --rev 'desc("i-0")' --rev 'desc("mGDm-0")'
6f1f4a6f4168 copies-tests: add a case where a file is deleted/added but with a merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44476
diff changeset
  2551
  A d
6f1f4a6f4168 copies-tests: add a case where a file is deleted/added but with a merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44476
diff changeset
  2552
    a
46600
0ebfd02dafd5 test-copies: move the new files in the `i` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46599
diff changeset
  2553
  A t
0ebfd02dafd5 test-copies: move the new files in the `i` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46599
diff changeset
  2554
    p
44477
6f1f4a6f4168 copies-tests: add a case where a file is deleted/added but with a merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44476
diff changeset
  2555
  R a
46600
0ebfd02dafd5 test-copies: move the new files in the `i` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46599
diff changeset
  2556
  R p
44477
6f1f4a6f4168 copies-tests: add a case where a file is deleted/added but with a merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44476
diff changeset
  2557
  $ hg status --copies --rev 'desc("d-2")' --rev 'desc("mDGm-0")'
6f1f4a6f4168 copies-tests: add a case where a file is deleted/added but with a merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44476
diff changeset
  2558
  M d
6f1f4a6f4168 copies-tests: add a case where a file is deleted/added but with a merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44476
diff changeset
  2559
  $ hg status --copies --rev 'desc("d-2")' --rev 'desc("mGDm-0")'
6f1f4a6f4168 copies-tests: add a case where a file is deleted/added but with a merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44476
diff changeset
  2560
  M d
6f1f4a6f4168 copies-tests: add a case where a file is deleted/added but with a merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44476
diff changeset
  2561
  $ hg status --copies --rev 'desc("g-1")' --rev 'desc("mDGm-0")'
6f1f4a6f4168 copies-tests: add a case where a file is deleted/added but with a merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44476
diff changeset
  2562
  M d
6f1f4a6f4168 copies-tests: add a case where a file is deleted/added but with a merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44476
diff changeset
  2563
  $ hg status --copies --rev 'desc("g-1")' --rev 'desc("mGDm-0")'
6f1f4a6f4168 copies-tests: add a case where a file is deleted/added but with a merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44476
diff changeset
  2564
  M d
6f1f4a6f4168 copies-tests: add a case where a file is deleted/added but with a merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44476
diff changeset
  2565
45704
5e72827dae1e tests: run test-copies-chain-merge.t also with copies in changesets
Martin von Zweigbergk <martinvonz@google.com>
parents: 45702
diff changeset
  2566
#if no-changeset
44477
6f1f4a6f4168 copies-tests: add a case where a file is deleted/added but with a merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44476
diff changeset
  2567
  $ hg log -Gfr 'desc("mDGm-0")' d
46594
74e2256a56b8 test-copies: remove revision number from log
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46593
diff changeset
  2568
  o    mDGm-0 actual content merge, copies on one side - D side: delete and re-add (different content), G side: update content - one way
44477
6f1f4a6f4168 copies-tests: add a case where a file is deleted/added but with a merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44476
diff changeset
  2569
  |\
46594
74e2256a56b8 test-copies: remove revision number from log
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46593
diff changeset
  2570
  | o  g-1: update d
44477
6f1f4a6f4168 copies-tests: add a case where a file is deleted/added but with a merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44476
diff changeset
  2571
  | |
46594
74e2256a56b8 test-copies: remove revision number from log
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46593
diff changeset
  2572
  o |  d-2 re-add d
44477
6f1f4a6f4168 copies-tests: add a case where a file is deleted/added but with a merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44476
diff changeset
  2573
  |/
46600
0ebfd02dafd5 test-copies: move the new files in the `i` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46599
diff changeset
  2574
  o  i-2: c -move-> d, s -move-> t
44477
6f1f4a6f4168 copies-tests: add a case where a file is deleted/added but with a merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44476
diff changeset
  2575
  |
46600
0ebfd02dafd5 test-copies: move the new files in the `i` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46599
diff changeset
  2576
  o  i-1: a -move-> c, p -move-> s
44477
6f1f4a6f4168 copies-tests: add a case where a file is deleted/added but with a merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44476
diff changeset
  2577
  |
46649
d7d64b8c8229 tests: correct a commit description in test-copies-chain-merge.t
Martin von Zweigbergk <martinvonz@google.com>
parents: 46607
diff changeset
  2578
  o  i-0 initial commit: a b h p q r
44477
6f1f4a6f4168 copies-tests: add a case where a file is deleted/added but with a merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44476
diff changeset
  2579
  
45704
5e72827dae1e tests: run test-copies-chain-merge.t also with copies in changesets
Martin von Zweigbergk <martinvonz@google.com>
parents: 45702
diff changeset
  2580
#else
45801
6620caf427ec tests: add notes about broken `hg log --follow <file>` with copies in extras
Martin von Zweigbergk <martinvonz@google.com>
parents: 45788
diff changeset
  2581
BROKEN: `hg log --follow <file>` relies on filelog metadata to work
45704
5e72827dae1e tests: run test-copies-chain-merge.t also with copies in changesets
Martin von Zweigbergk <martinvonz@google.com>
parents: 45702
diff changeset
  2582
  $ hg log -Gfr 'desc("mDGm-0")' d
46594
74e2256a56b8 test-copies: remove revision number from log
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46593
diff changeset
  2583
  o    mDGm-0 actual content merge, copies on one side - D side: delete and re-add (different content), G side: update content - one way
45704
5e72827dae1e tests: run test-copies-chain-merge.t also with copies in changesets
Martin von Zweigbergk <martinvonz@google.com>
parents: 45702
diff changeset
  2584
  |\
46594
74e2256a56b8 test-copies: remove revision number from log
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46593
diff changeset
  2585
  | o  g-1: update d
45704
5e72827dae1e tests: run test-copies-chain-merge.t also with copies in changesets
Martin von Zweigbergk <martinvonz@google.com>
parents: 45702
diff changeset
  2586
  | |
46594
74e2256a56b8 test-copies: remove revision number from log
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46593
diff changeset
  2587
  o |  d-2 re-add d
45704
5e72827dae1e tests: run test-copies-chain-merge.t also with copies in changesets
Martin von Zweigbergk <martinvonz@google.com>
parents: 45702
diff changeset
  2588
  |/
46600
0ebfd02dafd5 test-copies: move the new files in the `i` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46599
diff changeset
  2589
  o  i-2: c -move-> d, s -move-> t
45704
5e72827dae1e tests: run test-copies-chain-merge.t also with copies in changesets
Martin von Zweigbergk <martinvonz@google.com>
parents: 45702
diff changeset
  2590
  |
5e72827dae1e tests: run test-copies-chain-merge.t also with copies in changesets
Martin von Zweigbergk <martinvonz@google.com>
parents: 45702
diff changeset
  2591
  ~
5e72827dae1e tests: run test-copies-chain-merge.t also with copies in changesets
Martin von Zweigbergk <martinvonz@google.com>
parents: 45702
diff changeset
  2592
#endif
44477
6f1f4a6f4168 copies-tests: add a case where a file is deleted/added but with a merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44476
diff changeset
  2593
6f1f4a6f4168 copies-tests: add a case where a file is deleted/added but with a merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44476
diff changeset
  2594
45704
5e72827dae1e tests: run test-copies-chain-merge.t also with copies in changesets
Martin von Zweigbergk <martinvonz@google.com>
parents: 45702
diff changeset
  2595
#if no-changeset
44477
6f1f4a6f4168 copies-tests: add a case where a file is deleted/added but with a merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44476
diff changeset
  2596
  $ hg log -Gfr 'desc("mDGm-0")' d
46594
74e2256a56b8 test-copies: remove revision number from log
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46593
diff changeset
  2597
  o    mDGm-0 actual content merge, copies on one side - D side: delete and re-add (different content), G side: update content - one way
44477
6f1f4a6f4168 copies-tests: add a case where a file is deleted/added but with a merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44476
diff changeset
  2598
  |\
46594
74e2256a56b8 test-copies: remove revision number from log
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46593
diff changeset
  2599
  | o  g-1: update d
44477
6f1f4a6f4168 copies-tests: add a case where a file is deleted/added but with a merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44476
diff changeset
  2600
  | |
46594
74e2256a56b8 test-copies: remove revision number from log
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46593
diff changeset
  2601
  o |  d-2 re-add d
44477
6f1f4a6f4168 copies-tests: add a case where a file is deleted/added but with a merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44476
diff changeset
  2602
  |/
46600
0ebfd02dafd5 test-copies: move the new files in the `i` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46599
diff changeset
  2603
  o  i-2: c -move-> d, s -move-> t
44477
6f1f4a6f4168 copies-tests: add a case where a file is deleted/added but with a merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44476
diff changeset
  2604
  |
46600
0ebfd02dafd5 test-copies: move the new files in the `i` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46599
diff changeset
  2605
  o  i-1: a -move-> c, p -move-> s
44477
6f1f4a6f4168 copies-tests: add a case where a file is deleted/added but with a merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44476
diff changeset
  2606
  |
46649
d7d64b8c8229 tests: correct a commit description in test-copies-chain-merge.t
Martin von Zweigbergk <martinvonz@google.com>
parents: 46607
diff changeset
  2607
  o  i-0 initial commit: a b h p q r
44477
6f1f4a6f4168 copies-tests: add a case where a file is deleted/added but with a merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44476
diff changeset
  2608
  
45704
5e72827dae1e tests: run test-copies-chain-merge.t also with copies in changesets
Martin von Zweigbergk <martinvonz@google.com>
parents: 45702
diff changeset
  2609
#else
45801
6620caf427ec tests: add notes about broken `hg log --follow <file>` with copies in extras
Martin von Zweigbergk <martinvonz@google.com>
parents: 45788
diff changeset
  2610
BROKEN: `hg log --follow <file>` relies on filelog metadata to work
45704
5e72827dae1e tests: run test-copies-chain-merge.t also with copies in changesets
Martin von Zweigbergk <martinvonz@google.com>
parents: 45702
diff changeset
  2611
  $ hg log -Gfr 'desc("mDGm-0")' d
46594
74e2256a56b8 test-copies: remove revision number from log
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46593
diff changeset
  2612
  o    mDGm-0 actual content merge, copies on one side - D side: delete and re-add (different content), G side: update content - one way
45704
5e72827dae1e tests: run test-copies-chain-merge.t also with copies in changesets
Martin von Zweigbergk <martinvonz@google.com>
parents: 45702
diff changeset
  2613
  |\
46594
74e2256a56b8 test-copies: remove revision number from log
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46593
diff changeset
  2614
  | o  g-1: update d
45704
5e72827dae1e tests: run test-copies-chain-merge.t also with copies in changesets
Martin von Zweigbergk <martinvonz@google.com>
parents: 45702
diff changeset
  2615
  | |
46594
74e2256a56b8 test-copies: remove revision number from log
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46593
diff changeset
  2616
  o |  d-2 re-add d
45704
5e72827dae1e tests: run test-copies-chain-merge.t also with copies in changesets
Martin von Zweigbergk <martinvonz@google.com>
parents: 45702
diff changeset
  2617
  |/
46600
0ebfd02dafd5 test-copies: move the new files in the `i` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46599
diff changeset
  2618
  o  i-2: c -move-> d, s -move-> t
45704
5e72827dae1e tests: run test-copies-chain-merge.t also with copies in changesets
Martin von Zweigbergk <martinvonz@google.com>
parents: 45702
diff changeset
  2619
  |
5e72827dae1e tests: run test-copies-chain-merge.t also with copies in changesets
Martin von Zweigbergk <martinvonz@google.com>
parents: 45702
diff changeset
  2620
  ~
5e72827dae1e tests: run test-copies-chain-merge.t also with copies in changesets
Martin von Zweigbergk <martinvonz@google.com>
parents: 45702
diff changeset
  2621
#endif
44478
c8fd21413458 copies-tests: add a case where with merge with an overwritten files
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44477
diff changeset
  2622
46590
f01696d45d1e test-copies: add subcase titles for various "conflicting" information variant
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46589
diff changeset
  2623
Subcase: merging a change to a file with a "copy overwrite" to that file from another branch
f01696d45d1e test-copies: add subcase titles for various "conflicting" information variant
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46589
diff changeset
  2624
````````````````````````````````````````````````````````````````````````````````````````````
44478
c8fd21413458 copies-tests: add a case where with merge with an overwritten files
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44477
diff changeset
  2625
c8fd21413458 copies-tests: add a case where with merge with an overwritten files
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44477
diff changeset
  2626
Merge:
c8fd21413458 copies-tests: add a case where with merge with an overwritten files
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44477
diff changeset
  2627
- one with change to a file (d)
c8fd21413458 copies-tests: add a case where with merge with an overwritten files
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44477
diff changeset
  2628
- one overwriting that file with a rename (from h to i, to d)
c8fd21413458 copies-tests: add a case where with merge with an overwritten files
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44477
diff changeset
  2629
c8fd21413458 copies-tests: add a case where with merge with an overwritten files
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44477
diff changeset
  2630
This case is similar to BF/FB, but an actual merge happens, so both side of the
c8fd21413458 copies-tests: add a case where with merge with an overwritten files
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44477
diff changeset
  2631
history are relevant.
c8fd21413458 copies-tests: add a case where with merge with an overwritten files
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44477
diff changeset
  2632
c8fd21413458 copies-tests: add a case where with merge with an overwritten files
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44477
diff changeset
  2633
44679
806f1f1ba430 tests: move verification closer to setup in test-copies-chain-merge.t
Martin von Zweigbergk <martinvonz@google.com>
parents: 44678
diff changeset
  2634
  $ hg log -G --rev '::(desc("mGFm")+desc("mFGm"))'
46594
74e2256a56b8 test-copies: remove revision number from log
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46593
diff changeset
  2635
  o    mGFm-0 merge - G side: content change, F side: copy overwrite, no content change - the other way
44679
806f1f1ba430 tests: move verification closer to setup in test-copies-chain-merge.t
Martin von Zweigbergk <martinvonz@google.com>
parents: 44678
diff changeset
  2636
  |\
46594
74e2256a56b8 test-copies: remove revision number from log
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46593
diff changeset
  2637
  +---o  mFGm-0 merge - G side: content change, F side: copy overwrite, no content change - one way
44679
806f1f1ba430 tests: move verification closer to setup in test-copies-chain-merge.t
Martin von Zweigbergk <martinvonz@google.com>
parents: 44678
diff changeset
  2638
  | |/
46594
74e2256a56b8 test-copies: remove revision number from log
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46593
diff changeset
  2639
  | o  g-1: update d
44679
806f1f1ba430 tests: move verification closer to setup in test-copies-chain-merge.t
Martin von Zweigbergk <martinvonz@google.com>
parents: 44678
diff changeset
  2640
  | |
46594
74e2256a56b8 test-copies: remove revision number from log
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46593
diff changeset
  2641
  o |  f-2: rename i -> d
44679
806f1f1ba430 tests: move verification closer to setup in test-copies-chain-merge.t
Martin von Zweigbergk <martinvonz@google.com>
parents: 44678
diff changeset
  2642
  | |
46594
74e2256a56b8 test-copies: remove revision number from log
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46593
diff changeset
  2643
  o |  f-1: rename h -> i
44679
806f1f1ba430 tests: move verification closer to setup in test-copies-chain-merge.t
Martin von Zweigbergk <martinvonz@google.com>
parents: 44678
diff changeset
  2644
  |/
46600
0ebfd02dafd5 test-copies: move the new files in the `i` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46599
diff changeset
  2645
  o  i-2: c -move-> d, s -move-> t
44679
806f1f1ba430 tests: move verification closer to setup in test-copies-chain-merge.t
Martin von Zweigbergk <martinvonz@google.com>
parents: 44678
diff changeset
  2646
  |
46600
0ebfd02dafd5 test-copies: move the new files in the `i` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46599
diff changeset
  2647
  o  i-1: a -move-> c, p -move-> s
44679
806f1f1ba430 tests: move verification closer to setup in test-copies-chain-merge.t
Martin von Zweigbergk <martinvonz@google.com>
parents: 44678
diff changeset
  2648
  |
46649
d7d64b8c8229 tests: correct a commit description in test-copies-chain-merge.t
Martin von Zweigbergk <martinvonz@google.com>
parents: 46607
diff changeset
  2649
  o  i-0 initial commit: a b h p q r
44679
806f1f1ba430 tests: move verification closer to setup in test-copies-chain-merge.t
Martin von Zweigbergk <martinvonz@google.com>
parents: 44678
diff changeset
  2650
  
46160
1d6aac94e6d5 copies: explain the "arbitrary" copy source pick in case of conflict
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46159
diff changeset
  2651
1d6aac94e6d5 copies: explain the "arbitrary" copy source pick in case of conflict
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46159
diff changeset
  2652
Note:
1d6aac94e6d5 copies: explain the "arbitrary" copy source pick in case of conflict
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46159
diff changeset
  2653
| In this case, the merge get conflicting information since on one side we have
1d6aac94e6d5 copies: explain the "arbitrary" copy source pick in case of conflict
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46159
diff changeset
  2654
| "a -> c -> d". and one the other one we have "h -> i -> d".
1d6aac94e6d5 copies: explain the "arbitrary" copy source pick in case of conflict
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46159
diff changeset
  2655
|
1d6aac94e6d5 copies: explain the "arbitrary" copy source pick in case of conflict
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46159
diff changeset
  2656
| The current code arbitrarily pick one side depending the ordering of the merged hash:
1d6aac94e6d5 copies: explain the "arbitrary" copy source pick in case of conflict
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46159
diff changeset
  2657
1d6aac94e6d5 copies: explain the "arbitrary" copy source pick in case of conflict
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46159
diff changeset
  2658
In this case, the file hash from "f-2" is lower, so it will be `p1` of the resulting filenode its copy tracing information will win (and trace back to "h"):
1d6aac94e6d5 copies: explain the "arbitrary" copy source pick in case of conflict
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46159
diff changeset
  2659
1d6aac94e6d5 copies: explain the "arbitrary" copy source pick in case of conflict
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46159
diff changeset
  2660
Details on this hash ordering pick:
1d6aac94e6d5 copies: explain the "arbitrary" copy source pick in case of conflict
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46159
diff changeset
  2661
1d6aac94e6d5 copies: explain the "arbitrary" copy source pick in case of conflict
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46159
diff changeset
  2662
  $ hg manifest --debug 'desc("g-1")' | egrep 'd$'
46578
d46885119f90 test-copies: don't use empty file for "same content" cases
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46577
diff changeset
  2663
  17ec97e605773eb44a117d1136b3849bcdc1924f 644   d (no-changeset !)
d46885119f90 test-copies: don't use empty file for "same content" cases
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46577
diff changeset
  2664
  5cce88bf349f7c742bb440f2c53f81db9c294279 644   d (changeset !)
46160
1d6aac94e6d5 copies: explain the "arbitrary" copy source pick in case of conflict
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46159
diff changeset
  2665
  $ hg status --copies --rev 'desc("i-0")' --rev 'desc("g-1")' d
1d6aac94e6d5 copies: explain the "arbitrary" copy source pick in case of conflict
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46159
diff changeset
  2666
  A d
1d6aac94e6d5 copies: explain the "arbitrary" copy source pick in case of conflict
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46159
diff changeset
  2667
    a (no-changeset no-compatibility !)
1d6aac94e6d5 copies: explain the "arbitrary" copy source pick in case of conflict
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46159
diff changeset
  2668
1d6aac94e6d5 copies: explain the "arbitrary" copy source pick in case of conflict
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46159
diff changeset
  2669
  $ hg manifest --debug 'desc("f-2")' | egrep 'd$'
46578
d46885119f90 test-copies: don't use empty file for "same content" cases
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46577
diff changeset
  2670
  7b79e2fe0c8924e0e598a82f048a7b024afa4d96 644   d (no-changeset !)
d46885119f90 test-copies: don't use empty file for "same content" cases
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46577
diff changeset
  2671
  ae258f702dfeca05bf9b6a22a97a4b5645570f11 644   d (changeset !)
46160
1d6aac94e6d5 copies: explain the "arbitrary" copy source pick in case of conflict
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46159
diff changeset
  2672
  $ hg status --copies --rev 'desc("i-0")' --rev 'desc("f-2")' d
1d6aac94e6d5 copies: explain the "arbitrary" copy source pick in case of conflict
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46159
diff changeset
  2673
  A d
1d6aac94e6d5 copies: explain the "arbitrary" copy source pick in case of conflict
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46159
diff changeset
  2674
    h (no-changeset no-compatibility !)
1d6aac94e6d5 copies: explain the "arbitrary" copy source pick in case of conflict
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46159
diff changeset
  2675
1d6aac94e6d5 copies: explain the "arbitrary" copy source pick in case of conflict
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46159
diff changeset
  2676
Copy tracing data on the resulting merge:
1d6aac94e6d5 copies: explain the "arbitrary" copy source pick in case of conflict
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46159
diff changeset
  2677
44478
c8fd21413458 copies-tests: add a case where with merge with an overwritten files
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44477
diff changeset
  2678
  $ hg status --copies --rev 'desc("i-0")' --rev 'desc("mFGm-0")'
c8fd21413458 copies-tests: add a case where with merge with an overwritten files
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44477
diff changeset
  2679
  A d
46577
018d622e814d test-copies: reinstall initial identical (empty) files for chained copied
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46538
diff changeset
  2680
    h (no-filelog !)
018d622e814d test-copies: reinstall initial identical (empty) files for chained copied
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46538
diff changeset
  2681
    a (filelog !)
46600
0ebfd02dafd5 test-copies: move the new files in the `i` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46599
diff changeset
  2682
  A t
0ebfd02dafd5 test-copies: move the new files in the `i` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46599
diff changeset
  2683
    p
44478
c8fd21413458 copies-tests: add a case where with merge with an overwritten files
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44477
diff changeset
  2684
  R a
c8fd21413458 copies-tests: add a case where with merge with an overwritten files
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44477
diff changeset
  2685
  R h
46600
0ebfd02dafd5 test-copies: move the new files in the `i` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46599
diff changeset
  2686
  R p
44478
c8fd21413458 copies-tests: add a case where with merge with an overwritten files
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44477
diff changeset
  2687
  $ hg status --copies --rev 'desc("i-0")' --rev 'desc("mGFm-0")'
c8fd21413458 copies-tests: add a case where with merge with an overwritten files
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44477
diff changeset
  2688
  A d
46577
018d622e814d test-copies: reinstall initial identical (empty) files for chained copied
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46538
diff changeset
  2689
    a (no-changeset !)
018d622e814d test-copies: reinstall initial identical (empty) files for chained copied
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46538
diff changeset
  2690
    h (changeset !)
46600
0ebfd02dafd5 test-copies: move the new files in the `i` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46599
diff changeset
  2691
  A t
0ebfd02dafd5 test-copies: move the new files in the `i` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46599
diff changeset
  2692
    p
44478
c8fd21413458 copies-tests: add a case where with merge with an overwritten files
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44477
diff changeset
  2693
  R a
c8fd21413458 copies-tests: add a case where with merge with an overwritten files
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44477
diff changeset
  2694
  R h
46600
0ebfd02dafd5 test-copies: move the new files in the `i` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46599
diff changeset
  2695
  R p
44478
c8fd21413458 copies-tests: add a case where with merge with an overwritten files
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44477
diff changeset
  2696
  $ hg status --copies --rev 'desc("f-2")' --rev 'desc("mFGm-0")'
c8fd21413458 copies-tests: add a case where with merge with an overwritten files
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44477
diff changeset
  2697
  M d
c8fd21413458 copies-tests: add a case where with merge with an overwritten files
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44477
diff changeset
  2698
  $ hg status --copies --rev 'desc("f-2")' --rev 'desc("mGFm-0")'
c8fd21413458 copies-tests: add a case where with merge with an overwritten files
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44477
diff changeset
  2699
  M d
c8fd21413458 copies-tests: add a case where with merge with an overwritten files
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44477
diff changeset
  2700
  $ hg status --copies --rev 'desc("f-1")' --rev 'desc("mFGm-0")'
c8fd21413458 copies-tests: add a case where with merge with an overwritten files
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44477
diff changeset
  2701
  M d
44858
45f3f35cefe7 copies: fix the changeset based algorithm regarding merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44688
diff changeset
  2702
    i (no-filelog !)
44478
c8fd21413458 copies-tests: add a case where with merge with an overwritten files
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44477
diff changeset
  2703
  R i
c8fd21413458 copies-tests: add a case where with merge with an overwritten files
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44477
diff changeset
  2704
  $ hg status --copies --rev 'desc("f-1")' --rev 'desc("mGFm-0")'
c8fd21413458 copies-tests: add a case where with merge with an overwritten files
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44477
diff changeset
  2705
  M d
44858
45f3f35cefe7 copies: fix the changeset based algorithm regarding merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44688
diff changeset
  2706
    i (no-filelog !)
44478
c8fd21413458 copies-tests: add a case where with merge with an overwritten files
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44477
diff changeset
  2707
  R i
c8fd21413458 copies-tests: add a case where with merge with an overwritten files
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44477
diff changeset
  2708
  $ hg status --copies --rev 'desc("g-1")' --rev 'desc("mFGm-0")'
46577
018d622e814d test-copies: reinstall initial identical (empty) files for chained copied
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46538
diff changeset
  2709
  M d (no-changeset !)
018d622e814d test-copies: reinstall initial identical (empty) files for chained copied
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46538
diff changeset
  2710
    h (no-filelog no-changeset !)
44478
c8fd21413458 copies-tests: add a case where with merge with an overwritten files
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44477
diff changeset
  2711
  R h
c8fd21413458 copies-tests: add a case where with merge with an overwritten files
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44477
diff changeset
  2712
  $ hg status --copies --rev 'desc("g-1")' --rev 'desc("mGFm-0")'
46577
018d622e814d test-copies: reinstall initial identical (empty) files for chained copied
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46538
diff changeset
  2713
  M d (no-changeset !)
018d622e814d test-copies: reinstall initial identical (empty) files for chained copied
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46538
diff changeset
  2714
    h (no-filelog no-changeset !)
44478
c8fd21413458 copies-tests: add a case where with merge with an overwritten files
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44477
diff changeset
  2715
  R h
c8fd21413458 copies-tests: add a case where with merge with an overwritten files
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44477
diff changeset
  2716
45704
5e72827dae1e tests: run test-copies-chain-merge.t also with copies in changesets
Martin von Zweigbergk <martinvonz@google.com>
parents: 45702
diff changeset
  2717
#if no-changeset
44478
c8fd21413458 copies-tests: add a case where with merge with an overwritten files
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44477
diff changeset
  2718
  $ hg log -Gfr 'desc("mFGm-0")' d
46594
74e2256a56b8 test-copies: remove revision number from log
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46593
diff changeset
  2719
  o    mFGm-0 merge - G side: content change, F side: copy overwrite, no content change - one way
44478
c8fd21413458 copies-tests: add a case where with merge with an overwritten files
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44477
diff changeset
  2720
  |\
46594
74e2256a56b8 test-copies: remove revision number from log
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46593
diff changeset
  2721
  | o  g-1: update d
44478
c8fd21413458 copies-tests: add a case where with merge with an overwritten files
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44477
diff changeset
  2722
  | |
46594
74e2256a56b8 test-copies: remove revision number from log
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46593
diff changeset
  2723
  o |  f-2: rename i -> d
44478
c8fd21413458 copies-tests: add a case where with merge with an overwritten files
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44477
diff changeset
  2724
  | |
46594
74e2256a56b8 test-copies: remove revision number from log
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46593
diff changeset
  2725
  o |  f-1: rename h -> i
44478
c8fd21413458 copies-tests: add a case where with merge with an overwritten files
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44477
diff changeset
  2726
  |/
46600
0ebfd02dafd5 test-copies: move the new files in the `i` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46599
diff changeset
  2727
  o  i-2: c -move-> d, s -move-> t
44478
c8fd21413458 copies-tests: add a case where with merge with an overwritten files
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44477
diff changeset
  2728
  |
46600
0ebfd02dafd5 test-copies: move the new files in the `i` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46599
diff changeset
  2729
  o  i-1: a -move-> c, p -move-> s
44478
c8fd21413458 copies-tests: add a case where with merge with an overwritten files
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44477
diff changeset
  2730
  |
46649
d7d64b8c8229 tests: correct a commit description in test-copies-chain-merge.t
Martin von Zweigbergk <martinvonz@google.com>
parents: 46607
diff changeset
  2731
  o  i-0 initial commit: a b h p q r
44478
c8fd21413458 copies-tests: add a case where with merge with an overwritten files
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44477
diff changeset
  2732
  
45704
5e72827dae1e tests: run test-copies-chain-merge.t also with copies in changesets
Martin von Zweigbergk <martinvonz@google.com>
parents: 45702
diff changeset
  2733
#else
45801
6620caf427ec tests: add notes about broken `hg log --follow <file>` with copies in extras
Martin von Zweigbergk <martinvonz@google.com>
parents: 45788
diff changeset
  2734
BROKEN: `hg log --follow <file>` relies on filelog metadata to work
45704
5e72827dae1e tests: run test-copies-chain-merge.t also with copies in changesets
Martin von Zweigbergk <martinvonz@google.com>
parents: 45702
diff changeset
  2735
  $ hg log -Gfr 'desc("mFGm-0")' d
46594
74e2256a56b8 test-copies: remove revision number from log
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46593
diff changeset
  2736
  o  g-1: update d
46577
018d622e814d test-copies: reinstall initial identical (empty) files for chained copied
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46538
diff changeset
  2737
  |
46600
0ebfd02dafd5 test-copies: move the new files in the `i` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46599
diff changeset
  2738
  o  i-2: c -move-> d, s -move-> t
45704
5e72827dae1e tests: run test-copies-chain-merge.t also with copies in changesets
Martin von Zweigbergk <martinvonz@google.com>
parents: 45702
diff changeset
  2739
  |
5e72827dae1e tests: run test-copies-chain-merge.t also with copies in changesets
Martin von Zweigbergk <martinvonz@google.com>
parents: 45702
diff changeset
  2740
  ~
5e72827dae1e tests: run test-copies-chain-merge.t also with copies in changesets
Martin von Zweigbergk <martinvonz@google.com>
parents: 45702
diff changeset
  2741
#endif
44478
c8fd21413458 copies-tests: add a case where with merge with an overwritten files
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44477
diff changeset
  2742
45704
5e72827dae1e tests: run test-copies-chain-merge.t also with copies in changesets
Martin von Zweigbergk <martinvonz@google.com>
parents: 45702
diff changeset
  2743
#if no-changeset
44478
c8fd21413458 copies-tests: add a case where with merge with an overwritten files
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44477
diff changeset
  2744
  $ hg log -Gfr 'desc("mGFm-0")' d
46594
74e2256a56b8 test-copies: remove revision number from log
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46593
diff changeset
  2745
  o    mGFm-0 merge - G side: content change, F side: copy overwrite, no content change - the other way
44478
c8fd21413458 copies-tests: add a case where with merge with an overwritten files
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44477
diff changeset
  2746
  |\
46594
74e2256a56b8 test-copies: remove revision number from log
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46593
diff changeset
  2747
  | o  g-1: update d
44478
c8fd21413458 copies-tests: add a case where with merge with an overwritten files
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44477
diff changeset
  2748
  | |
46594
74e2256a56b8 test-copies: remove revision number from log
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46593
diff changeset
  2749
  o |  f-2: rename i -> d
44478
c8fd21413458 copies-tests: add a case where with merge with an overwritten files
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44477
diff changeset
  2750
  | |
46594
74e2256a56b8 test-copies: remove revision number from log
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46593
diff changeset
  2751
  o |  f-1: rename h -> i
44478
c8fd21413458 copies-tests: add a case where with merge with an overwritten files
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44477
diff changeset
  2752
  |/
46600
0ebfd02dafd5 test-copies: move the new files in the `i` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46599
diff changeset
  2753
  o  i-2: c -move-> d, s -move-> t
44478
c8fd21413458 copies-tests: add a case where with merge with an overwritten files
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44477
diff changeset
  2754
  |
46600
0ebfd02dafd5 test-copies: move the new files in the `i` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46599
diff changeset
  2755
  o  i-1: a -move-> c, p -move-> s
44478
c8fd21413458 copies-tests: add a case where with merge with an overwritten files
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44477
diff changeset
  2756
  |
46649
d7d64b8c8229 tests: correct a commit description in test-copies-chain-merge.t
Martin von Zweigbergk <martinvonz@google.com>
parents: 46607
diff changeset
  2757
  o  i-0 initial commit: a b h p q r
44478
c8fd21413458 copies-tests: add a case where with merge with an overwritten files
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44477
diff changeset
  2758
  
45704
5e72827dae1e tests: run test-copies-chain-merge.t also with copies in changesets
Martin von Zweigbergk <martinvonz@google.com>
parents: 45702
diff changeset
  2759
#else
45801
6620caf427ec tests: add notes about broken `hg log --follow <file>` with copies in extras
Martin von Zweigbergk <martinvonz@google.com>
parents: 45788
diff changeset
  2760
BROKEN: `hg log --follow <file>` relies on filelog metadata to work
45704
5e72827dae1e tests: run test-copies-chain-merge.t also with copies in changesets
Martin von Zweigbergk <martinvonz@google.com>
parents: 45702
diff changeset
  2761
  $ hg log -Gfr 'desc("mGFm-0")' d
46594
74e2256a56b8 test-copies: remove revision number from log
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46593
diff changeset
  2762
  o  g-1: update d
46577
018d622e814d test-copies: reinstall initial identical (empty) files for chained copied
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46538
diff changeset
  2763
  |
46600
0ebfd02dafd5 test-copies: move the new files in the `i` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46599
diff changeset
  2764
  o  i-2: c -move-> d, s -move-> t
45704
5e72827dae1e tests: run test-copies-chain-merge.t also with copies in changesets
Martin von Zweigbergk <martinvonz@google.com>
parents: 45702
diff changeset
  2765
  |
5e72827dae1e tests: run test-copies-chain-merge.t also with copies in changesets
Martin von Zweigbergk <martinvonz@google.com>
parents: 45702
diff changeset
  2766
  ~
5e72827dae1e tests: run test-copies-chain-merge.t also with copies in changesets
Martin von Zweigbergk <martinvonz@google.com>
parents: 45702
diff changeset
  2767
#endif
45471
4b582a93316a copy-tracing: test case where we go across a changed/deleted merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44858
diff changeset
  2768
46603
a1273bea99cc test-copies: introduce case combining the `p` and `q` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46602
diff changeset
  2769
Subcase: new copy information on both side with an actual merge happening
a1273bea99cc test-copies: introduce case combining the `p` and `q` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46602
diff changeset
  2770
`````````````````````````````````````````````````````````````````````````
a1273bea99cc test-copies: introduce case combining the `p` and `q` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46602
diff changeset
  2771
a1273bea99cc test-copies: introduce case combining the `p` and `q` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46602
diff changeset
  2772
- the "p-" branch renaming 't' to 'v' (through 'u')
a1273bea99cc test-copies: introduce case combining the `p` and `q` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46602
diff changeset
  2773
- the "q-" branch renaming 'r' to 'v' (through 'w')
a1273bea99cc test-copies: introduce case combining the `p` and `q` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46602
diff changeset
  2774
a1273bea99cc test-copies: introduce case combining the `p` and `q` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46602
diff changeset
  2775
a1273bea99cc test-copies: introduce case combining the `p` and `q` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46602
diff changeset
  2776
  $ hg log -G --rev '::(desc("mPQm")+desc("mQPm"))'
a1273bea99cc test-copies: introduce case combining the `p` and `q` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46602
diff changeset
  2777
  o    mQPm-0 merge with copies info on both side - P side: rename t to v, Q side: r to v, (different content) - the other way
a1273bea99cc test-copies: introduce case combining the `p` and `q` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46602
diff changeset
  2778
  |\
a1273bea99cc test-copies: introduce case combining the `p` and `q` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46602
diff changeset
  2779
  +---o  mPQm-0 merge with copies info on both side - P side: rename t to v, Q side: r to v, (different content) - one way
a1273bea99cc test-copies: introduce case combining the `p` and `q` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46602
diff changeset
  2780
  | |/
a1273bea99cc test-copies: introduce case combining the `p` and `q` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46602
diff changeset
  2781
  | o  q-2 w -move-> v
a1273bea99cc test-copies: introduce case combining the `p` and `q` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46602
diff changeset
  2782
  | |
a1273bea99cc test-copies: introduce case combining the `p` and `q` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46602
diff changeset
  2783
  | o  q-1 r -move-> w
a1273bea99cc test-copies: introduce case combining the `p` and `q` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46602
diff changeset
  2784
  | |
a1273bea99cc test-copies: introduce case combining the `p` and `q` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46602
diff changeset
  2785
  o |  p-2: u -move-> v
a1273bea99cc test-copies: introduce case combining the `p` and `q` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46602
diff changeset
  2786
  | |
a1273bea99cc test-copies: introduce case combining the `p` and `q` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46602
diff changeset
  2787
  o |  p-1: t -move-> u
a1273bea99cc test-copies: introduce case combining the `p` and `q` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46602
diff changeset
  2788
  |/
a1273bea99cc test-copies: introduce case combining the `p` and `q` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46602
diff changeset
  2789
  o  i-2: c -move-> d, s -move-> t
a1273bea99cc test-copies: introduce case combining the `p` and `q` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46602
diff changeset
  2790
  |
a1273bea99cc test-copies: introduce case combining the `p` and `q` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46602
diff changeset
  2791
  o  i-1: a -move-> c, p -move-> s
a1273bea99cc test-copies: introduce case combining the `p` and `q` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46602
diff changeset
  2792
  |
46649
d7d64b8c8229 tests: correct a commit description in test-copies-chain-merge.t
Martin von Zweigbergk <martinvonz@google.com>
parents: 46607
diff changeset
  2793
  o  i-0 initial commit: a b h p q r
46603
a1273bea99cc test-copies: introduce case combining the `p` and `q` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46602
diff changeset
  2794
  
a1273bea99cc test-copies: introduce case combining the `p` and `q` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46602
diff changeset
  2795
a1273bea99cc test-copies: introduce case combining the `p` and `q` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46602
diff changeset
  2796
#if no-changeset
a1273bea99cc test-copies: introduce case combining the `p` and `q` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46602
diff changeset
  2797
  $ hg manifest --debug --rev 'desc("mPQm-0")' | grep '644   v'
a1273bea99cc test-copies: introduce case combining the `p` and `q` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46602
diff changeset
  2798
  0946c662ef16e4e67397fd717389eb6693d41749 644   v
a1273bea99cc test-copies: introduce case combining the `p` and `q` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46602
diff changeset
  2799
  $ hg manifest --debug --rev 'desc("mQPm-0")' | grep '644   v'
a1273bea99cc test-copies: introduce case combining the `p` and `q` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46602
diff changeset
  2800
  0db3aad7fcc1ec27fab57060e327b9e864ea0cc9 644   v
a1273bea99cc test-copies: introduce case combining the `p` and `q` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46602
diff changeset
  2801
  $ hg manifest --debug --rev 'desc("p-2")' | grep '644   v'
a1273bea99cc test-copies: introduce case combining the `p` and `q` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46602
diff changeset
  2802
  3f91841cd75cadc9a1f1b4e7c1aa6d411f76032e 644   v
a1273bea99cc test-copies: introduce case combining the `p` and `q` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46602
diff changeset
  2803
  $ hg manifest --debug --rev 'desc("q-2")' | grep '644   v'
a1273bea99cc test-copies: introduce case combining the `p` and `q` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46602
diff changeset
  2804
  c43c088b811fd27983c0a9aadf44f3343cd4cd7e 644   v
a1273bea99cc test-copies: introduce case combining the `p` and `q` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46602
diff changeset
  2805
  $ hg debugindex v | ../no-linkrev
a1273bea99cc test-copies: introduce case combining the `p` and `q` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46602
diff changeset
  2806
     rev linkrev nodeid       p1           p2
a1273bea99cc test-copies: introduce case combining the `p` and `q` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46602
diff changeset
  2807
       0       * 3f91841cd75c 000000000000 000000000000
a1273bea99cc test-copies: introduce case combining the `p` and `q` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46602
diff changeset
  2808
       1       * c43c088b811f 000000000000 000000000000
a1273bea99cc test-copies: introduce case combining the `p` and `q` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46602
diff changeset
  2809
       2       * 0946c662ef16 3f91841cd75c c43c088b811f
a1273bea99cc test-copies: introduce case combining the `p` and `q` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46602
diff changeset
  2810
       3       * 0db3aad7fcc1 c43c088b811f 3f91841cd75c
a1273bea99cc test-copies: introduce case combining the `p` and `q` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46602
diff changeset
  2811
#else
a1273bea99cc test-copies: introduce case combining the `p` and `q` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46602
diff changeset
  2812
  $ hg manifest --debug --rev 'desc("mPQm-0")' | grep '644   v'
a1273bea99cc test-copies: introduce case combining the `p` and `q` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46602
diff changeset
  2813
  65fde9f6e4d4da23b3f610e07b53673ea9541d75 644   v
a1273bea99cc test-copies: introduce case combining the `p` and `q` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46602
diff changeset
  2814
  $ hg manifest --debug --rev 'desc("mQPm-0")' | grep '644   v'
a1273bea99cc test-copies: introduce case combining the `p` and `q` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46602
diff changeset
  2815
  a098dda6413aecf154eefc976afc38b295acb7e5 644   v
a1273bea99cc test-copies: introduce case combining the `p` and `q` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46602
diff changeset
  2816
  $ hg manifest --debug --rev 'desc("p-2")' | grep '644   v'
a1273bea99cc test-copies: introduce case combining the `p` and `q` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46602
diff changeset
  2817
  5aed6a8dbff0301328c08360d24354d3d064cf0d 644   v
a1273bea99cc test-copies: introduce case combining the `p` and `q` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46602
diff changeset
  2818
  $ hg manifest --debug --rev 'desc("q-2")' | grep '644   v'
a1273bea99cc test-copies: introduce case combining the `p` and `q` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46602
diff changeset
  2819
  a38b2fa170219750dac9bc7d19df831f213ba708 644   v
a1273bea99cc test-copies: introduce case combining the `p` and `q` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46602
diff changeset
  2820
  $ hg debugindex v | ../no-linkrev
a1273bea99cc test-copies: introduce case combining the `p` and `q` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46602
diff changeset
  2821
     rev linkrev nodeid       p1           p2
a1273bea99cc test-copies: introduce case combining the `p` and `q` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46602
diff changeset
  2822
       0       * 5aed6a8dbff0 000000000000 000000000000
a1273bea99cc test-copies: introduce case combining the `p` and `q` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46602
diff changeset
  2823
       1       * a38b2fa17021 000000000000 000000000000
a1273bea99cc test-copies: introduce case combining the `p` and `q` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46602
diff changeset
  2824
       2       * 65fde9f6e4d4 5aed6a8dbff0 a38b2fa17021
a1273bea99cc test-copies: introduce case combining the `p` and `q` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46602
diff changeset
  2825
       3       * a098dda6413a a38b2fa17021 5aed6a8dbff0
a1273bea99cc test-copies: introduce case combining the `p` and `q` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46602
diff changeset
  2826
#endif
a1273bea99cc test-copies: introduce case combining the `p` and `q` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46602
diff changeset
  2827
a1273bea99cc test-copies: introduce case combining the `p` and `q` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46602
diff changeset
  2828
# Here the filelog based implementation is not looking at the rename
a1273bea99cc test-copies: introduce case combining the `p` and `q` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46602
diff changeset
  2829
# information (because the file exist on both side). However the changelog
a1273bea99cc test-copies: introduce case combining the `p` and `q` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46602
diff changeset
  2830
# based on works fine. We have different output.
a1273bea99cc test-copies: introduce case combining the `p` and `q` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46602
diff changeset
  2831
a1273bea99cc test-copies: introduce case combining the `p` and `q` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46602
diff changeset
  2832
  $ hg status --copies --rev 'desc("p-2")' --rev 'desc("mPQm-0")'
a1273bea99cc test-copies: introduce case combining the `p` and `q` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46602
diff changeset
  2833
  M v
a1273bea99cc test-copies: introduce case combining the `p` and `q` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46602
diff changeset
  2834
    r (no-filelog !)
a1273bea99cc test-copies: introduce case combining the `p` and `q` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46602
diff changeset
  2835
  R r
a1273bea99cc test-copies: introduce case combining the `p` and `q` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46602
diff changeset
  2836
  $ hg status --copies --rev 'desc("p-2")' --rev 'desc("mQPm-0")'
a1273bea99cc test-copies: introduce case combining the `p` and `q` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46602
diff changeset
  2837
  M v
a1273bea99cc test-copies: introduce case combining the `p` and `q` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46602
diff changeset
  2838
    r (no-filelog !)
a1273bea99cc test-copies: introduce case combining the `p` and `q` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46602
diff changeset
  2839
  R r
a1273bea99cc test-copies: introduce case combining the `p` and `q` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46602
diff changeset
  2840
  $ hg status --copies --rev 'desc("q-2")' --rev 'desc("mPQm-0")'
a1273bea99cc test-copies: introduce case combining the `p` and `q` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46602
diff changeset
  2841
  M v
a1273bea99cc test-copies: introduce case combining the `p` and `q` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46602
diff changeset
  2842
    t (no-filelog !)
a1273bea99cc test-copies: introduce case combining the `p` and `q` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46602
diff changeset
  2843
  R t
a1273bea99cc test-copies: introduce case combining the `p` and `q` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46602
diff changeset
  2844
  $ hg status --copies --rev 'desc("q-2")' --rev 'desc("mQPm-0")'
a1273bea99cc test-copies: introduce case combining the `p` and `q` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46602
diff changeset
  2845
  M v
a1273bea99cc test-copies: introduce case combining the `p` and `q` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46602
diff changeset
  2846
    t (no-filelog !)
a1273bea99cc test-copies: introduce case combining the `p` and `q` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46602
diff changeset
  2847
  R t
a1273bea99cc test-copies: introduce case combining the `p` and `q` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46602
diff changeset
  2848
  $ hg status --copies --rev 'desc("i-2")' --rev 'desc("p-2")'
a1273bea99cc test-copies: introduce case combining the `p` and `q` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46602
diff changeset
  2849
  A v
a1273bea99cc test-copies: introduce case combining the `p` and `q` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46602
diff changeset
  2850
    t
a1273bea99cc test-copies: introduce case combining the `p` and `q` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46602
diff changeset
  2851
  R t
a1273bea99cc test-copies: introduce case combining the `p` and `q` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46602
diff changeset
  2852
  $ hg status --copies --rev 'desc("i-2")' --rev 'desc("q-2")'
a1273bea99cc test-copies: introduce case combining the `p` and `q` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46602
diff changeset
  2853
  A v
a1273bea99cc test-copies: introduce case combining the `p` and `q` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46602
diff changeset
  2854
    r
a1273bea99cc test-copies: introduce case combining the `p` and `q` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46602
diff changeset
  2855
  R r
a1273bea99cc test-copies: introduce case combining the `p` and `q` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46602
diff changeset
  2856
a1273bea99cc test-copies: introduce case combining the `p` and `q` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46602
diff changeset
  2857
# From here, we run status against revision where both source file exists.
a1273bea99cc test-copies: introduce case combining the `p` and `q` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46602
diff changeset
  2858
#
a1273bea99cc test-copies: introduce case combining the `p` and `q` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46602
diff changeset
  2859
# The filelog based implementation picks an arbitrary side based on revision
a1273bea99cc test-copies: introduce case combining the `p` and `q` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46602
diff changeset
  2860
# numbers. So the same side "wins" whatever the parents order is. This is
a1273bea99cc test-copies: introduce case combining the `p` and `q` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46602
diff changeset
  2861
# sub-optimal because depending on revision numbers means the result can be
a1273bea99cc test-copies: introduce case combining the `p` and `q` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46602
diff changeset
  2862
# different from one repository to the next.
a1273bea99cc test-copies: introduce case combining the `p` and `q` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46602
diff changeset
  2863
#
a1273bea99cc test-copies: introduce case combining the `p` and `q` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46602
diff changeset
  2864
# The changeset based algorithm use the parent order to break tie on conflicting
a1273bea99cc test-copies: introduce case combining the `p` and `q` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46602
diff changeset
  2865
# information and will have a different order depending on who is p1 and p2.
a1273bea99cc test-copies: introduce case combining the `p` and `q` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46602
diff changeset
  2866
# That order is stable accross repositories. (data from p1 prevails)
a1273bea99cc test-copies: introduce case combining the `p` and `q` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46602
diff changeset
  2867
a1273bea99cc test-copies: introduce case combining the `p` and `q` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46602
diff changeset
  2868
  $ hg status --copies --rev 'desc("i-2")' --rev 'desc("mPQm-0")'
a1273bea99cc test-copies: introduce case combining the `p` and `q` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46602
diff changeset
  2869
  A v
a1273bea99cc test-copies: introduce case combining the `p` and `q` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46602
diff changeset
  2870
    t
a1273bea99cc test-copies: introduce case combining the `p` and `q` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46602
diff changeset
  2871
  R r
a1273bea99cc test-copies: introduce case combining the `p` and `q` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46602
diff changeset
  2872
  R t
a1273bea99cc test-copies: introduce case combining the `p` and `q` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46602
diff changeset
  2873
  $ hg status --copies --rev 'desc("i-2")' --rev 'desc("mQPm-0")'
a1273bea99cc test-copies: introduce case combining the `p` and `q` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46602
diff changeset
  2874
  A v
a1273bea99cc test-copies: introduce case combining the `p` and `q` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46602
diff changeset
  2875
    t (filelog !)
a1273bea99cc test-copies: introduce case combining the `p` and `q` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46602
diff changeset
  2876
    r (no-filelog !)
a1273bea99cc test-copies: introduce case combining the `p` and `q` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46602
diff changeset
  2877
  R r
a1273bea99cc test-copies: introduce case combining the `p` and `q` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46602
diff changeset
  2878
  R t
a1273bea99cc test-copies: introduce case combining the `p` and `q` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46602
diff changeset
  2879
  $ hg status --copies --rev 'desc("i-0")' --rev 'desc("mPQm-0")'
a1273bea99cc test-copies: introduce case combining the `p` and `q` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46602
diff changeset
  2880
  A d
a1273bea99cc test-copies: introduce case combining the `p` and `q` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46602
diff changeset
  2881
    a
a1273bea99cc test-copies: introduce case combining the `p` and `q` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46602
diff changeset
  2882
  A v
a1273bea99cc test-copies: introduce case combining the `p` and `q` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46602
diff changeset
  2883
    r (filelog !)
a1273bea99cc test-copies: introduce case combining the `p` and `q` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46602
diff changeset
  2884
    p (no-filelog !)
a1273bea99cc test-copies: introduce case combining the `p` and `q` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46602
diff changeset
  2885
  R a
a1273bea99cc test-copies: introduce case combining the `p` and `q` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46602
diff changeset
  2886
  R p
a1273bea99cc test-copies: introduce case combining the `p` and `q` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46602
diff changeset
  2887
  R r
a1273bea99cc test-copies: introduce case combining the `p` and `q` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46602
diff changeset
  2888
  $ hg status --copies --rev 'desc("i-0")' --rev 'desc("mQPm-0")'
a1273bea99cc test-copies: introduce case combining the `p` and `q` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46602
diff changeset
  2889
  A d
a1273bea99cc test-copies: introduce case combining the `p` and `q` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46602
diff changeset
  2890
    a
a1273bea99cc test-copies: introduce case combining the `p` and `q` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46602
diff changeset
  2891
  A v
a1273bea99cc test-copies: introduce case combining the `p` and `q` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46602
diff changeset
  2892
    r
a1273bea99cc test-copies: introduce case combining the `p` and `q` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46602
diff changeset
  2893
  R a
a1273bea99cc test-copies: introduce case combining the `p` and `q` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46602
diff changeset
  2894
  R p
a1273bea99cc test-copies: introduce case combining the `p` and `q` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46602
diff changeset
  2895
  R r
a1273bea99cc test-copies: introduce case combining the `p` and `q` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46602
diff changeset
  2896
45471
4b582a93316a copy-tracing: test case where we go across a changed/deleted merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44858
diff changeset
  2897
4b582a93316a copy-tracing: test case where we go across a changed/deleted merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44858
diff changeset
  2898
Comparing with merging with a deletion (and keeping the file)
4b582a93316a copy-tracing: test case where we go across a changed/deleted merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44858
diff changeset
  2899
-------------------------------------------------------------
4b582a93316a copy-tracing: test case where we go across a changed/deleted merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44858
diff changeset
  2900
4b582a93316a copy-tracing: test case where we go across a changed/deleted merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44858
diff changeset
  2901
Merge:
4b582a93316a copy-tracing: test case where we go across a changed/deleted merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44858
diff changeset
  2902
- one removing a file (d)
4b582a93316a copy-tracing: test case where we go across a changed/deleted merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44858
diff changeset
  2903
- one updating that file
4b582a93316a copy-tracing: test case where we go across a changed/deleted merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44858
diff changeset
  2904
- the merge keep the modified version of the file (canceling the delete)
4b582a93316a copy-tracing: test case where we go across a changed/deleted merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44858
diff changeset
  2905
4b582a93316a copy-tracing: test case where we go across a changed/deleted merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44858
diff changeset
  2906
In this case, the file keep on living after the merge. So we should not drop its
4b582a93316a copy-tracing: test case where we go across a changed/deleted merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44858
diff changeset
  2907
copy tracing chain.
4b582a93316a copy-tracing: test case where we go across a changed/deleted merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44858
diff changeset
  2908
4b582a93316a copy-tracing: test case where we go across a changed/deleted merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44858
diff changeset
  2909
  $ hg log -G --rev '::(desc("mCGm")+desc("mGCm"))'
46594
74e2256a56b8 test-copies: remove revision number from log
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46593
diff changeset
  2910
  o    mGCm-0 merge updated/deleted - revive the file (updated content) - the other way
45471
4b582a93316a copy-tracing: test case where we go across a changed/deleted merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44858
diff changeset
  2911
  |\
46594
74e2256a56b8 test-copies: remove revision number from log
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46593
diff changeset
  2912
  +---o  mCGm-0 merge updated/deleted - revive the file (updated content) - one way
45471
4b582a93316a copy-tracing: test case where we go across a changed/deleted merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44858
diff changeset
  2913
  | |/
46594
74e2256a56b8 test-copies: remove revision number from log
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46593
diff changeset
  2914
  | o  g-1: update d
45471
4b582a93316a copy-tracing: test case where we go across a changed/deleted merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44858
diff changeset
  2915
  | |
46594
74e2256a56b8 test-copies: remove revision number from log
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46593
diff changeset
  2916
  o |  c-1 delete d
45471
4b582a93316a copy-tracing: test case where we go across a changed/deleted merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44858
diff changeset
  2917
  |/
46600
0ebfd02dafd5 test-copies: move the new files in the `i` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46599
diff changeset
  2918
  o  i-2: c -move-> d, s -move-> t
45471
4b582a93316a copy-tracing: test case where we go across a changed/deleted merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44858
diff changeset
  2919
  |
46600
0ebfd02dafd5 test-copies: move the new files in the `i` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46599
diff changeset
  2920
  o  i-1: a -move-> c, p -move-> s
45471
4b582a93316a copy-tracing: test case where we go across a changed/deleted merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44858
diff changeset
  2921
  |
46649
d7d64b8c8229 tests: correct a commit description in test-copies-chain-merge.t
Martin von Zweigbergk <martinvonz@google.com>
parents: 46607
diff changeset
  2922
  o  i-0 initial commit: a b h p q r
45471
4b582a93316a copy-tracing: test case where we go across a changed/deleted merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44858
diff changeset
  2923
  
4b582a93316a copy-tracing: test case where we go across a changed/deleted merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44858
diff changeset
  2924
45670
a8fb29b05f92 salvaged: properly deal with salvaged file during copy tracing
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45669
diff changeset
  2925
'a' is the copy source of 'd'
45471
4b582a93316a copy-tracing: test case where we go across a changed/deleted merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44858
diff changeset
  2926
4b582a93316a copy-tracing: test case where we go across a changed/deleted merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44858
diff changeset
  2927
  $ hg status --copies --rev 'desc("i-0")' --rev 'desc("mCGm-0")'
4b582a93316a copy-tracing: test case where we go across a changed/deleted merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44858
diff changeset
  2928
  A d
45704
5e72827dae1e tests: run test-copies-chain-merge.t also with copies in changesets
Martin von Zweigbergk <martinvonz@google.com>
parents: 45702
diff changeset
  2929
    a (no-compatibility no-changeset !)
46600
0ebfd02dafd5 test-copies: move the new files in the `i` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46599
diff changeset
  2930
  A t
0ebfd02dafd5 test-copies: move the new files in the `i` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46599
diff changeset
  2931
    p
45471
4b582a93316a copy-tracing: test case where we go across a changed/deleted merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44858
diff changeset
  2932
  R a
46600
0ebfd02dafd5 test-copies: move the new files in the `i` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46599
diff changeset
  2933
  R p
45471
4b582a93316a copy-tracing: test case where we go across a changed/deleted merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44858
diff changeset
  2934
  $ hg status --copies --rev 'desc("i-0")' --rev 'desc("mGCm-0")'
4b582a93316a copy-tracing: test case where we go across a changed/deleted merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44858
diff changeset
  2935
  A d
45704
5e72827dae1e tests: run test-copies-chain-merge.t also with copies in changesets
Martin von Zweigbergk <martinvonz@google.com>
parents: 45702
diff changeset
  2936
    a (no-compatibility no-changeset !)
46600
0ebfd02dafd5 test-copies: move the new files in the `i` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46599
diff changeset
  2937
  A t
0ebfd02dafd5 test-copies: move the new files in the `i` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46599
diff changeset
  2938
    p
45471
4b582a93316a copy-tracing: test case where we go across a changed/deleted merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44858
diff changeset
  2939
  R a
46600
0ebfd02dafd5 test-copies: move the new files in the `i` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46599
diff changeset
  2940
  R p
45471
4b582a93316a copy-tracing: test case where we go across a changed/deleted merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44858
diff changeset
  2941
  $ hg status --copies --rev 'desc("c-1")' --rev 'desc("mCGm-0")'
4b582a93316a copy-tracing: test case where we go across a changed/deleted merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44858
diff changeset
  2942
  A d
4b582a93316a copy-tracing: test case where we go across a changed/deleted merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44858
diff changeset
  2943
  $ hg status --copies --rev 'desc("c-1")' --rev 'desc("mGCm-0")'
4b582a93316a copy-tracing: test case where we go across a changed/deleted merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44858
diff changeset
  2944
  A d
4b582a93316a copy-tracing: test case where we go across a changed/deleted merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44858
diff changeset
  2945
  $ hg status --copies --rev 'desc("g-1")' --rev 'desc("mCGm-0")'
4b582a93316a copy-tracing: test case where we go across a changed/deleted merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 44858
diff changeset
  2946
  $ hg status --copies --rev 'desc("g-1")' --rev 'desc("mGCm-0")'
45472
14be07d5603c copy-tracing: test case where a merge reverted a file deletion
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45471
diff changeset
  2947
14be07d5603c copy-tracing: test case where a merge reverted a file deletion
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45471
diff changeset
  2948
14be07d5603c copy-tracing: test case where a merge reverted a file deletion
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45471
diff changeset
  2949
Comparing with merge restoring an untouched deleted file
14be07d5603c copy-tracing: test case where a merge reverted a file deletion
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45471
diff changeset
  2950
--------------------------------------------------------
14be07d5603c copy-tracing: test case where a merge reverted a file deletion
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45471
diff changeset
  2951
14be07d5603c copy-tracing: test case where a merge reverted a file deletion
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45471
diff changeset
  2952
Merge:
14be07d5603c copy-tracing: test case where a merge reverted a file deletion
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45471
diff changeset
  2953
- one removing a file (d)
14be07d5603c copy-tracing: test case where a merge reverted a file deletion
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45471
diff changeset
  2954
- one leaving the file untouched
14be07d5603c copy-tracing: test case where a merge reverted a file deletion
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45471
diff changeset
  2955
- the merge actively restore the file to the same content.
14be07d5603c copy-tracing: test case where a merge reverted a file deletion
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45471
diff changeset
  2956
14be07d5603c copy-tracing: test case where a merge reverted a file deletion
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45471
diff changeset
  2957
In this case, the file keep on living after the merge. So we should not drop its
14be07d5603c copy-tracing: test case where a merge reverted a file deletion
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45471
diff changeset
  2958
copy tracing chain.
14be07d5603c copy-tracing: test case where a merge reverted a file deletion
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45471
diff changeset
  2959
14be07d5603c copy-tracing: test case where a merge reverted a file deletion
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45471
diff changeset
  2960
  $ hg log -G --rev '::(desc("mCB-revert-m")+desc("mBC-revert-m"))'
46594
74e2256a56b8 test-copies: remove revision number from log
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46593
diff changeset
  2961
  o    mBC-revert-m-0 merge explicitely revive deleted file - B side: unrelated change, C side: delete d (restored by merge) - the other way
45472
14be07d5603c copy-tracing: test case where a merge reverted a file deletion
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45471
diff changeset
  2962
  |\
46594
74e2256a56b8 test-copies: remove revision number from log
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46593
diff changeset
  2963
  +---o  mCB-revert-m-0 merge explicitely revive deleted file - B side: unrelated change, C side: delete d (restored by merge) - one way
45472
14be07d5603c copy-tracing: test case where a merge reverted a file deletion
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45471
diff changeset
  2964
  | |/
46594
74e2256a56b8 test-copies: remove revision number from log
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46593
diff changeset
  2965
  | o  c-1 delete d
45472
14be07d5603c copy-tracing: test case where a merge reverted a file deletion
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45471
diff changeset
  2966
  | |
46594
74e2256a56b8 test-copies: remove revision number from log
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46593
diff changeset
  2967
  o |  b-1: b update
45472
14be07d5603c copy-tracing: test case where a merge reverted a file deletion
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45471
diff changeset
  2968
  |/
46600
0ebfd02dafd5 test-copies: move the new files in the `i` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46599
diff changeset
  2969
  o  i-2: c -move-> d, s -move-> t
45472
14be07d5603c copy-tracing: test case where a merge reverted a file deletion
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45471
diff changeset
  2970
  |
46600
0ebfd02dafd5 test-copies: move the new files in the `i` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46599
diff changeset
  2971
  o  i-1: a -move-> c, p -move-> s
45472
14be07d5603c copy-tracing: test case where a merge reverted a file deletion
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45471
diff changeset
  2972
  |
46649
d7d64b8c8229 tests: correct a commit description in test-copies-chain-merge.t
Martin von Zweigbergk <martinvonz@google.com>
parents: 46607
diff changeset
  2973
  o  i-0 initial commit: a b h p q r
45472
14be07d5603c copy-tracing: test case where a merge reverted a file deletion
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45471
diff changeset
  2974
  
14be07d5603c copy-tracing: test case where a merge reverted a file deletion
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45471
diff changeset
  2975
45670
a8fb29b05f92 salvaged: properly deal with salvaged file during copy tracing
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45669
diff changeset
  2976
'a' is the the copy source of 'd'
45472
14be07d5603c copy-tracing: test case where a merge reverted a file deletion
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45471
diff changeset
  2977
14be07d5603c copy-tracing: test case where a merge reverted a file deletion
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45471
diff changeset
  2978
  $ hg status --copies --rev 'desc("i-0")' --rev 'desc("mCB-revert-m-0")'
14be07d5603c copy-tracing: test case where a merge reverted a file deletion
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45471
diff changeset
  2979
  M b
14be07d5603c copy-tracing: test case where a merge reverted a file deletion
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45471
diff changeset
  2980
  A d
45704
5e72827dae1e tests: run test-copies-chain-merge.t also with copies in changesets
Martin von Zweigbergk <martinvonz@google.com>
parents: 45702
diff changeset
  2981
    a (no-compatibility no-changeset !)
46600
0ebfd02dafd5 test-copies: move the new files in the `i` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46599
diff changeset
  2982
  A t
0ebfd02dafd5 test-copies: move the new files in the `i` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46599
diff changeset
  2983
    p
45472
14be07d5603c copy-tracing: test case where a merge reverted a file deletion
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45471
diff changeset
  2984
  R a
46600
0ebfd02dafd5 test-copies: move the new files in the `i` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46599
diff changeset
  2985
  R p
45472
14be07d5603c copy-tracing: test case where a merge reverted a file deletion
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45471
diff changeset
  2986
  $ hg status --copies --rev 'desc("i-0")' --rev 'desc("mBC-revert-m-0")'
14be07d5603c copy-tracing: test case where a merge reverted a file deletion
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45471
diff changeset
  2987
  M b
14be07d5603c copy-tracing: test case where a merge reverted a file deletion
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45471
diff changeset
  2988
  A d
45704
5e72827dae1e tests: run test-copies-chain-merge.t also with copies in changesets
Martin von Zweigbergk <martinvonz@google.com>
parents: 45702
diff changeset
  2989
    a (no-compatibility no-changeset !)
46600
0ebfd02dafd5 test-copies: move the new files in the `i` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46599
diff changeset
  2990
  A t
0ebfd02dafd5 test-copies: move the new files in the `i` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46599
diff changeset
  2991
    p
45472
14be07d5603c copy-tracing: test case where a merge reverted a file deletion
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45471
diff changeset
  2992
  R a
46600
0ebfd02dafd5 test-copies: move the new files in the `i` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46599
diff changeset
  2993
  R p
45472
14be07d5603c copy-tracing: test case where a merge reverted a file deletion
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45471
diff changeset
  2994
  $ hg status --copies --rev 'desc("c-1")' --rev 'desc("mCB-revert-m-0")'
14be07d5603c copy-tracing: test case where a merge reverted a file deletion
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45471
diff changeset
  2995
  M b
14be07d5603c copy-tracing: test case where a merge reverted a file deletion
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45471
diff changeset
  2996
  A d
14be07d5603c copy-tracing: test case where a merge reverted a file deletion
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45471
diff changeset
  2997
  $ hg status --copies --rev 'desc("c-1")' --rev 'desc("mBC-revert-m-0")'
14be07d5603c copy-tracing: test case where a merge reverted a file deletion
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45471
diff changeset
  2998
  M b
14be07d5603c copy-tracing: test case where a merge reverted a file deletion
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45471
diff changeset
  2999
  A d
14be07d5603c copy-tracing: test case where a merge reverted a file deletion
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45471
diff changeset
  3000
  $ hg status --copies --rev 'desc("b-1")' --rev 'desc("mCB-revert-m-0")'
14be07d5603c copy-tracing: test case where a merge reverted a file deletion
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45471
diff changeset
  3001
  $ hg status --copies --rev 'desc("b-1")' --rev 'desc("mBC-revert-m-0")'
45821
ff7e0ca666e8 copies: make sure deleted copy info do not overwriting unrelated ones
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45801
diff changeset
  3002
ff7e0ca666e8 copies: make sure deleted copy info do not overwriting unrelated ones
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45801
diff changeset
  3003
ff7e0ca666e8 copies: make sure deleted copy info do not overwriting unrelated ones
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45801
diff changeset
  3004
Merging a branch where a rename was deleted with a branch where the same file was renamed
ff7e0ca666e8 copies: make sure deleted copy info do not overwriting unrelated ones
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45801
diff changeset
  3005
------------------------------------------------------------------------------------------
ff7e0ca666e8 copies: make sure deleted copy info do not overwriting unrelated ones
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45801
diff changeset
  3006
ff7e0ca666e8 copies: make sure deleted copy info do not overwriting unrelated ones
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45801
diff changeset
  3007
Create a "conflicting" merge where `d` get removed on one branch before its
ff7e0ca666e8 copies: make sure deleted copy info do not overwriting unrelated ones
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45801
diff changeset
  3008
rename information actually conflict with the other branch.
ff7e0ca666e8 copies: make sure deleted copy info do not overwriting unrelated ones
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45801
diff changeset
  3009
ff7e0ca666e8 copies: make sure deleted copy info do not overwriting unrelated ones
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45801
diff changeset
  3010
(the copy information from the branch that was not deleted should win).
ff7e0ca666e8 copies: make sure deleted copy info do not overwriting unrelated ones
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45801
diff changeset
  3011
ff7e0ca666e8 copies: make sure deleted copy info do not overwriting unrelated ones
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45801
diff changeset
  3012
  $ hg log -G --rev '::(desc("mCH-delete-before-conflict-m")+desc("mHC-delete-before-conflict-m"))'
46594
74e2256a56b8 test-copies: remove revision number from log
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46593
diff changeset
  3013
  o    mHC-delete-before-conflict-m-0 simple merge - C side: d is the results of renames then deleted, H side: d is result of another rename (same content as the other branch) - the other way
45821
ff7e0ca666e8 copies: make sure deleted copy info do not overwriting unrelated ones
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45801
diff changeset
  3014
  |\
46594
74e2256a56b8 test-copies: remove revision number from log
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46593
diff changeset
  3015
  +---o  mCH-delete-before-conflict-m-0 simple merge - C side: d is the results of renames then deleted, H side: d is result of another rename (same content as the other branch) - one way
45821
ff7e0ca666e8 copies: make sure deleted copy info do not overwriting unrelated ones
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45801
diff changeset
  3016
  | |/
46594
74e2256a56b8 test-copies: remove revision number from log
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46593
diff changeset
  3017
  | o  h-1: b -(move)-> d
45821
ff7e0ca666e8 copies: make sure deleted copy info do not overwriting unrelated ones
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45801
diff changeset
  3018
  | |
46594
74e2256a56b8 test-copies: remove revision number from log
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46593
diff changeset
  3019
  o |  c-1 delete d
45821
ff7e0ca666e8 copies: make sure deleted copy info do not overwriting unrelated ones
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45801
diff changeset
  3020
  | |
46600
0ebfd02dafd5 test-copies: move the new files in the `i` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46599
diff changeset
  3021
  o |  i-2: c -move-> d, s -move-> t
45821
ff7e0ca666e8 copies: make sure deleted copy info do not overwriting unrelated ones
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45801
diff changeset
  3022
  | |
46600
0ebfd02dafd5 test-copies: move the new files in the `i` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46599
diff changeset
  3023
  o |  i-1: a -move-> c, p -move-> s
45821
ff7e0ca666e8 copies: make sure deleted copy info do not overwriting unrelated ones
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45801
diff changeset
  3024
  |/
46649
d7d64b8c8229 tests: correct a commit description in test-copies-chain-merge.t
Martin von Zweigbergk <martinvonz@google.com>
parents: 46607
diff changeset
  3025
  o  i-0 initial commit: a b h p q r
45821
ff7e0ca666e8 copies: make sure deleted copy info do not overwriting unrelated ones
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45801
diff changeset
  3026
  
ff7e0ca666e8 copies: make sure deleted copy info do not overwriting unrelated ones
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45801
diff changeset
  3027
ff7e0ca666e8 copies: make sure deleted copy info do not overwriting unrelated ones
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45801
diff changeset
  3028
  $ hg status --copies --rev 'desc("i-0")' --rev 'desc("mCH-delete-before-conflict-m")'
ff7e0ca666e8 copies: make sure deleted copy info do not overwriting unrelated ones
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45801
diff changeset
  3029
  A d
ff7e0ca666e8 copies: make sure deleted copy info do not overwriting unrelated ones
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45801
diff changeset
  3030
    b (no-compatibility no-changeset !)
46600
0ebfd02dafd5 test-copies: move the new files in the `i` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46599
diff changeset
  3031
  A t
0ebfd02dafd5 test-copies: move the new files in the `i` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46599
diff changeset
  3032
    p
45821
ff7e0ca666e8 copies: make sure deleted copy info do not overwriting unrelated ones
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45801
diff changeset
  3033
  R a
ff7e0ca666e8 copies: make sure deleted copy info do not overwriting unrelated ones
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45801
diff changeset
  3034
  R b
46600
0ebfd02dafd5 test-copies: move the new files in the `i` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46599
diff changeset
  3035
  R p
45821
ff7e0ca666e8 copies: make sure deleted copy info do not overwriting unrelated ones
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45801
diff changeset
  3036
  $ hg status --copies --rev 'desc("i-0")' --rev 'desc("mHC-delete-before-conflict-m")'
ff7e0ca666e8 copies: make sure deleted copy info do not overwriting unrelated ones
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45801
diff changeset
  3037
  A d
ff7e0ca666e8 copies: make sure deleted copy info do not overwriting unrelated ones
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45801
diff changeset
  3038
    b
46600
0ebfd02dafd5 test-copies: move the new files in the `i` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46599
diff changeset
  3039
  A t
0ebfd02dafd5 test-copies: move the new files in the `i` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46599
diff changeset
  3040
    p
45821
ff7e0ca666e8 copies: make sure deleted copy info do not overwriting unrelated ones
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45801
diff changeset
  3041
  R a
ff7e0ca666e8 copies: make sure deleted copy info do not overwriting unrelated ones
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45801
diff changeset
  3042
  R b
46600
0ebfd02dafd5 test-copies: move the new files in the `i` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46599
diff changeset
  3043
  R p
45821
ff7e0ca666e8 copies: make sure deleted copy info do not overwriting unrelated ones
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45801
diff changeset
  3044
  $ hg status --copies --rev 'desc("c-1")' --rev 'desc("mCH-delete-before-conflict-m")'
ff7e0ca666e8 copies: make sure deleted copy info do not overwriting unrelated ones
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45801
diff changeset
  3045
  A d
ff7e0ca666e8 copies: make sure deleted copy info do not overwriting unrelated ones
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45801
diff changeset
  3046
    b
ff7e0ca666e8 copies: make sure deleted copy info do not overwriting unrelated ones
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45801
diff changeset
  3047
  R b
ff7e0ca666e8 copies: make sure deleted copy info do not overwriting unrelated ones
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45801
diff changeset
  3048
  $ hg status --copies --rev 'desc("c-1")' --rev 'desc("mHC-delete-before-conflict-m")'
ff7e0ca666e8 copies: make sure deleted copy info do not overwriting unrelated ones
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45801
diff changeset
  3049
  A d
ff7e0ca666e8 copies: make sure deleted copy info do not overwriting unrelated ones
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45801
diff changeset
  3050
    b
ff7e0ca666e8 copies: make sure deleted copy info do not overwriting unrelated ones
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45801
diff changeset
  3051
  R b
ff7e0ca666e8 copies: make sure deleted copy info do not overwriting unrelated ones
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45801
diff changeset
  3052
  $ hg status --copies --rev 'desc("h-1")' --rev 'desc("mCH-delete-before-conflict-m")'
46600
0ebfd02dafd5 test-copies: move the new files in the `i` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46599
diff changeset
  3053
  A t
0ebfd02dafd5 test-copies: move the new files in the `i` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46599
diff changeset
  3054
    p
45821
ff7e0ca666e8 copies: make sure deleted copy info do not overwriting unrelated ones
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45801
diff changeset
  3055
  R a
46600
0ebfd02dafd5 test-copies: move the new files in the `i` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46599
diff changeset
  3056
  R p
45821
ff7e0ca666e8 copies: make sure deleted copy info do not overwriting unrelated ones
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45801
diff changeset
  3057
  $ hg status --copies --rev 'desc("h-1")' --rev 'desc("mHC-delete-before-conflict-m")'
46600
0ebfd02dafd5 test-copies: move the new files in the `i` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46599
diff changeset
  3058
  A t
0ebfd02dafd5 test-copies: move the new files in the `i` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46599
diff changeset
  3059
    p
45821
ff7e0ca666e8 copies: make sure deleted copy info do not overwriting unrelated ones
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45801
diff changeset
  3060
  R a
46600
0ebfd02dafd5 test-copies: move the new files in the `i` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46599
diff changeset
  3061
  R p
46591
fbc466484fc3 test-copies: add test chaining multiple merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46590
diff changeset
  3062
46597
3aef76c3fd38 test-copies: add a "change during merge" variant to the A+E test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46596
diff changeset
  3063
Variant of previous with extra changes introduced by the merge
3aef76c3fd38 test-copies: add a "change during merge" variant to the A+E test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46596
diff changeset
  3064
--------------------------------------------------------------
3aef76c3fd38 test-copies: add a "change during merge" variant to the A+E test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46596
diff changeset
  3065
3aef76c3fd38 test-copies: add a "change during merge" variant to the A+E test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46596
diff changeset
  3066
(see case declaration for details)
3aef76c3fd38 test-copies: add a "change during merge" variant to the A+E test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46596
diff changeset
  3067
3aef76c3fd38 test-copies: add a "change during merge" variant to the A+E test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46596
diff changeset
  3068
Subcase: merge has same initial content on both side, but merge introduced a change
3aef76c3fd38 test-copies: add a "change during merge" variant to the A+E test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46596
diff changeset
  3069
```````````````````````````````````````````````````````````````````````````````````
3aef76c3fd38 test-copies: add a "change during merge" variant to the A+E test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46596
diff changeset
  3070
3aef76c3fd38 test-copies: add a "change during merge" variant to the A+E test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46596
diff changeset
  3071
- the "e-" branch renaming b to f (through 'g')
3aef76c3fd38 test-copies: add a "change during merge" variant to the A+E test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46596
diff changeset
  3072
- the "a-" branch renaming d to f (through e)
3aef76c3fd38 test-copies: add a "change during merge" variant to the A+E test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46596
diff changeset
  3073
- the merge add new change to b
3aef76c3fd38 test-copies: add a "change during merge" variant to the A+E test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46596
diff changeset
  3074
3aef76c3fd38 test-copies: add a "change during merge" variant to the A+E test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46596
diff changeset
  3075
  $ hg log -G --rev '::(desc("mAE-change-m")+desc("mEA-change-m"))'
3aef76c3fd38 test-copies: add a "change during merge" variant to the A+E test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46596
diff changeset
  3076
  o    mEA-change-m-0 merge with file update and copies info on both side - A side: rename d to f, E side: b to f, (same content for f in parent) - the other way
3aef76c3fd38 test-copies: add a "change during merge" variant to the A+E test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46596
diff changeset
  3077
  |\
3aef76c3fd38 test-copies: add a "change during merge" variant to the A+E test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46596
diff changeset
  3078
  +---o  mAE-change-m-0 merge with file update and copies info on both side - A side: rename d to f, E side: b to f, (same content for f in parent) - one way
3aef76c3fd38 test-copies: add a "change during merge" variant to the A+E test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46596
diff changeset
  3079
  | |/
3aef76c3fd38 test-copies: add a "change during merge" variant to the A+E test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46596
diff changeset
  3080
  | o  e-2 g -move-> f
3aef76c3fd38 test-copies: add a "change during merge" variant to the A+E test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46596
diff changeset
  3081
  | |
3aef76c3fd38 test-copies: add a "change during merge" variant to the A+E test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46596
diff changeset
  3082
  | o  e-1 b -move-> g
3aef76c3fd38 test-copies: add a "change during merge" variant to the A+E test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46596
diff changeset
  3083
  | |
3aef76c3fd38 test-copies: add a "change during merge" variant to the A+E test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46596
diff changeset
  3084
  o |  a-2: e -move-> f
3aef76c3fd38 test-copies: add a "change during merge" variant to the A+E test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46596
diff changeset
  3085
  | |
3aef76c3fd38 test-copies: add a "change during merge" variant to the A+E test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46596
diff changeset
  3086
  o |  a-1: d -move-> e
3aef76c3fd38 test-copies: add a "change during merge" variant to the A+E test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46596
diff changeset
  3087
  |/
46600
0ebfd02dafd5 test-copies: move the new files in the `i` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46599
diff changeset
  3088
  o  i-2: c -move-> d, s -move-> t
46597
3aef76c3fd38 test-copies: add a "change during merge" variant to the A+E test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46596
diff changeset
  3089
  |
46600
0ebfd02dafd5 test-copies: move the new files in the `i` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46599
diff changeset
  3090
  o  i-1: a -move-> c, p -move-> s
46597
3aef76c3fd38 test-copies: add a "change during merge" variant to the A+E test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46596
diff changeset
  3091
  |
46649
d7d64b8c8229 tests: correct a commit description in test-copies-chain-merge.t
Martin von Zweigbergk <martinvonz@google.com>
parents: 46607
diff changeset
  3092
  o  i-0 initial commit: a b h p q r
46597
3aef76c3fd38 test-copies: add a "change during merge" variant to the A+E test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46596
diff changeset
  3093
  
3aef76c3fd38 test-copies: add a "change during merge" variant to the A+E test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46596
diff changeset
  3094
#if no-changeset
3aef76c3fd38 test-copies: add a "change during merge" variant to the A+E test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46596
diff changeset
  3095
  $ hg manifest --debug --rev 'desc("mAE-change-m-0")' | grep '644   f'
3aef76c3fd38 test-copies: add a "change during merge" variant to the A+E test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46596
diff changeset
  3096
  2f649fba7eb284e720d02b61f0546fcef694c045 644   f
3aef76c3fd38 test-copies: add a "change during merge" variant to the A+E test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46596
diff changeset
  3097
  $ hg manifest --debug --rev 'desc("mEA-change-m-0")' | grep '644   f'
3aef76c3fd38 test-copies: add a "change during merge" variant to the A+E test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46596
diff changeset
  3098
  774e7c1637d536b99e2d8ef16fd731f87a82bd09 644   f
3aef76c3fd38 test-copies: add a "change during merge" variant to the A+E test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46596
diff changeset
  3099
  $ hg manifest --debug --rev 'desc("a-2")' | grep '644   f'
3aef76c3fd38 test-copies: add a "change during merge" variant to the A+E test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46596
diff changeset
  3100
  b76eb76580df486c3d51d63c5c210d4dd43a8ac7 644   f
3aef76c3fd38 test-copies: add a "change during merge" variant to the A+E test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46596
diff changeset
  3101
  $ hg manifest --debug --rev 'desc("e-2")' | grep '644   f'
3aef76c3fd38 test-copies: add a "change during merge" variant to the A+E test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46596
diff changeset
  3102
  e8825b386367b29fec957283a80bb47b47483fe1 644   f
3aef76c3fd38 test-copies: add a "change during merge" variant to the A+E test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46596
diff changeset
  3103
  $ hg debugindex f | ../no-linkrev
3aef76c3fd38 test-copies: add a "change during merge" variant to the A+E test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46596
diff changeset
  3104
     rev linkrev nodeid       p1           p2
3aef76c3fd38 test-copies: add a "change during merge" variant to the A+E test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46596
diff changeset
  3105
       0       * b76eb76580df 000000000000 000000000000
3aef76c3fd38 test-copies: add a "change during merge" variant to the A+E test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46596
diff changeset
  3106
       1       * e8825b386367 000000000000 000000000000
3aef76c3fd38 test-copies: add a "change during merge" variant to the A+E test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46596
diff changeset
  3107
       2       * 2ff93c643948 b76eb76580df e8825b386367
3aef76c3fd38 test-copies: add a "change during merge" variant to the A+E test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46596
diff changeset
  3108
       3       * 2f649fba7eb2 b76eb76580df e8825b386367
3aef76c3fd38 test-copies: add a "change during merge" variant to the A+E test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46596
diff changeset
  3109
       4       * 774e7c1637d5 e8825b386367 b76eb76580df
3aef76c3fd38 test-copies: add a "change during merge" variant to the A+E test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46596
diff changeset
  3110
#else
3aef76c3fd38 test-copies: add a "change during merge" variant to the A+E test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46596
diff changeset
  3111
  $ hg manifest --debug --rev 'desc("mAE-change-m-0")' | grep '644   f'
3aef76c3fd38 test-copies: add a "change during merge" variant to the A+E test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46596
diff changeset
  3112
  d3613c1ec8310a812ac4268fd853ac576b6caea5 644   f
3aef76c3fd38 test-copies: add a "change during merge" variant to the A+E test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46596
diff changeset
  3113
  $ hg manifest --debug --rev 'desc("mEA-change-m-0")' | grep '644   f'
3aef76c3fd38 test-copies: add a "change during merge" variant to the A+E test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46596
diff changeset
  3114
  05e03c868bbcab4a649cb33a238d7aa07398a469 644   f
3aef76c3fd38 test-copies: add a "change during merge" variant to the A+E test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46596
diff changeset
  3115
  $ hg manifest --debug --rev 'desc("a-2")' | grep '644   f'
3aef76c3fd38 test-copies: add a "change during merge" variant to the A+E test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46596
diff changeset
  3116
  ae258f702dfeca05bf9b6a22a97a4b5645570f11 644   f
3aef76c3fd38 test-copies: add a "change during merge" variant to the A+E test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46596
diff changeset
  3117
  $ hg manifest --debug --rev 'desc("e-2")' | grep '644   f'
3aef76c3fd38 test-copies: add a "change during merge" variant to the A+E test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46596
diff changeset
  3118
  ae258f702dfeca05bf9b6a22a97a4b5645570f11 644   f
3aef76c3fd38 test-copies: add a "change during merge" variant to the A+E test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46596
diff changeset
  3119
  $ hg debugindex f | ../no-linkrev
3aef76c3fd38 test-copies: add a "change during merge" variant to the A+E test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46596
diff changeset
  3120
     rev linkrev nodeid       p1           p2
3aef76c3fd38 test-copies: add a "change during merge" variant to the A+E test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46596
diff changeset
  3121
       0       * ae258f702dfe 000000000000 000000000000
3aef76c3fd38 test-copies: add a "change during merge" variant to the A+E test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46596
diff changeset
  3122
       1       * d3613c1ec831 ae258f702dfe 000000000000
3aef76c3fd38 test-copies: add a "change during merge" variant to the A+E test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46596
diff changeset
  3123
       2       * 05e03c868bbc ae258f702dfe 000000000000
3aef76c3fd38 test-copies: add a "change during merge" variant to the A+E test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46596
diff changeset
  3124
#endif
3aef76c3fd38 test-copies: add a "change during merge" variant to the A+E test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46596
diff changeset
  3125
3aef76c3fd38 test-copies: add a "change during merge" variant to the A+E test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46596
diff changeset
  3126
# Here the filelog based implementation is not looking at the rename
3aef76c3fd38 test-copies: add a "change during merge" variant to the A+E test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46596
diff changeset
  3127
# information (because the file exist on both side). However the changelog
3aef76c3fd38 test-copies: add a "change during merge" variant to the A+E test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46596
diff changeset
  3128
# based on works fine. We have different output.
3aef76c3fd38 test-copies: add a "change during merge" variant to the A+E test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46596
diff changeset
  3129
3aef76c3fd38 test-copies: add a "change during merge" variant to the A+E test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46596
diff changeset
  3130
  $ hg status --copies --rev 'desc("a-2")' --rev 'desc("mAE-change-m-0")'
3aef76c3fd38 test-copies: add a "change during merge" variant to the A+E test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46596
diff changeset
  3131
  M f
3aef76c3fd38 test-copies: add a "change during merge" variant to the A+E test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46596
diff changeset
  3132
    b (no-filelog !)
3aef76c3fd38 test-copies: add a "change during merge" variant to the A+E test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46596
diff changeset
  3133
  R b
3aef76c3fd38 test-copies: add a "change during merge" variant to the A+E test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46596
diff changeset
  3134
  $ hg status --copies --rev 'desc("a-2")' --rev 'desc("mEA-change-m-0")'
3aef76c3fd38 test-copies: add a "change during merge" variant to the A+E test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46596
diff changeset
  3135
  M f
3aef76c3fd38 test-copies: add a "change during merge" variant to the A+E test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46596
diff changeset
  3136
    b (no-filelog !)
3aef76c3fd38 test-copies: add a "change during merge" variant to the A+E test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46596
diff changeset
  3137
  R b
3aef76c3fd38 test-copies: add a "change during merge" variant to the A+E test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46596
diff changeset
  3138
  $ hg status --copies --rev 'desc("e-2")' --rev 'desc("mAE-change-m-0")'
3aef76c3fd38 test-copies: add a "change during merge" variant to the A+E test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46596
diff changeset
  3139
  M f
3aef76c3fd38 test-copies: add a "change during merge" variant to the A+E test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46596
diff changeset
  3140
    d (no-filelog !)
3aef76c3fd38 test-copies: add a "change during merge" variant to the A+E test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46596
diff changeset
  3141
  R d
3aef76c3fd38 test-copies: add a "change during merge" variant to the A+E test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46596
diff changeset
  3142
  $ hg status --copies --rev 'desc("e-2")' --rev 'desc("mEA-change-m-0")'
3aef76c3fd38 test-copies: add a "change during merge" variant to the A+E test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46596
diff changeset
  3143
  M f
3aef76c3fd38 test-copies: add a "change during merge" variant to the A+E test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46596
diff changeset
  3144
    d (no-filelog !)
3aef76c3fd38 test-copies: add a "change during merge" variant to the A+E test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46596
diff changeset
  3145
  R d
3aef76c3fd38 test-copies: add a "change during merge" variant to the A+E test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46596
diff changeset
  3146
  $ hg status --copies --rev 'desc("i-2")' --rev 'desc("a-2")'
3aef76c3fd38 test-copies: add a "change during merge" variant to the A+E test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46596
diff changeset
  3147
  A f
3aef76c3fd38 test-copies: add a "change during merge" variant to the A+E test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46596
diff changeset
  3148
    d
3aef76c3fd38 test-copies: add a "change during merge" variant to the A+E test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46596
diff changeset
  3149
  R d
3aef76c3fd38 test-copies: add a "change during merge" variant to the A+E test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46596
diff changeset
  3150
  $ hg status --copies --rev 'desc("i-2")' --rev 'desc("e-2")'
3aef76c3fd38 test-copies: add a "change during merge" variant to the A+E test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46596
diff changeset
  3151
  A f
3aef76c3fd38 test-copies: add a "change during merge" variant to the A+E test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46596
diff changeset
  3152
    b
3aef76c3fd38 test-copies: add a "change during merge" variant to the A+E test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46596
diff changeset
  3153
  R b
3aef76c3fd38 test-copies: add a "change during merge" variant to the A+E test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46596
diff changeset
  3154
3aef76c3fd38 test-copies: add a "change during merge" variant to the A+E test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46596
diff changeset
  3155
# From here, we run status against revision where both source file exists.
3aef76c3fd38 test-copies: add a "change during merge" variant to the A+E test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46596
diff changeset
  3156
#
3aef76c3fd38 test-copies: add a "change during merge" variant to the A+E test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46596
diff changeset
  3157
# The filelog based implementation picks an arbitrary side based on revision
3aef76c3fd38 test-copies: add a "change during merge" variant to the A+E test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46596
diff changeset
  3158
# numbers. So the same side "wins" whatever the parents order is. This is
3aef76c3fd38 test-copies: add a "change during merge" variant to the A+E test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46596
diff changeset
  3159
# sub-optimal because depending on revision numbers means the result can be
3aef76c3fd38 test-copies: add a "change during merge" variant to the A+E test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46596
diff changeset
  3160
# different from one repository to the next.
3aef76c3fd38 test-copies: add a "change during merge" variant to the A+E test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46596
diff changeset
  3161
#
3aef76c3fd38 test-copies: add a "change during merge" variant to the A+E test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46596
diff changeset
  3162
# The changeset based algorithm use the parent order to break tie on conflicting
3aef76c3fd38 test-copies: add a "change during merge" variant to the A+E test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46596
diff changeset
  3163
# information and will have a different order depending on who is p1 and p2.
3aef76c3fd38 test-copies: add a "change during merge" variant to the A+E test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46596
diff changeset
  3164
# That order is stable accross repositories. (data from p1 prevails)
3aef76c3fd38 test-copies: add a "change during merge" variant to the A+E test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46596
diff changeset
  3165
3aef76c3fd38 test-copies: add a "change during merge" variant to the A+E test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46596
diff changeset
  3166
  $ hg status --copies --rev 'desc("i-2")' --rev 'desc("mAE-change-m-0")'
3aef76c3fd38 test-copies: add a "change during merge" variant to the A+E test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46596
diff changeset
  3167
  A f
3aef76c3fd38 test-copies: add a "change during merge" variant to the A+E test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46596
diff changeset
  3168
    d
3aef76c3fd38 test-copies: add a "change during merge" variant to the A+E test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46596
diff changeset
  3169
  R b
3aef76c3fd38 test-copies: add a "change during merge" variant to the A+E test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46596
diff changeset
  3170
  R d
3aef76c3fd38 test-copies: add a "change during merge" variant to the A+E test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46596
diff changeset
  3171
  $ hg status --copies --rev 'desc("i-2")' --rev 'desc("mEA-change-m-0")'
3aef76c3fd38 test-copies: add a "change during merge" variant to the A+E test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46596
diff changeset
  3172
  A f
3aef76c3fd38 test-copies: add a "change during merge" variant to the A+E test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46596
diff changeset
  3173
    d (filelog !)
3aef76c3fd38 test-copies: add a "change during merge" variant to the A+E test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46596
diff changeset
  3174
    b (no-filelog !)
3aef76c3fd38 test-copies: add a "change during merge" variant to the A+E test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46596
diff changeset
  3175
  R b
3aef76c3fd38 test-copies: add a "change during merge" variant to the A+E test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46596
diff changeset
  3176
  R d
3aef76c3fd38 test-copies: add a "change during merge" variant to the A+E test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46596
diff changeset
  3177
  $ hg status --copies --rev 'desc("i-0")' --rev 'desc("mAE-change-m-0")'
3aef76c3fd38 test-copies: add a "change during merge" variant to the A+E test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46596
diff changeset
  3178
  A f
3aef76c3fd38 test-copies: add a "change during merge" variant to the A+E test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46596
diff changeset
  3179
    a
46600
0ebfd02dafd5 test-copies: move the new files in the `i` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46599
diff changeset
  3180
  A t
0ebfd02dafd5 test-copies: move the new files in the `i` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46599
diff changeset
  3181
    p
46597
3aef76c3fd38 test-copies: add a "change during merge" variant to the A+E test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46596
diff changeset
  3182
  R a
3aef76c3fd38 test-copies: add a "change during merge" variant to the A+E test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46596
diff changeset
  3183
  R b
46600
0ebfd02dafd5 test-copies: move the new files in the `i` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46599
diff changeset
  3184
  R p
46597
3aef76c3fd38 test-copies: add a "change during merge" variant to the A+E test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46596
diff changeset
  3185
  $ hg status --copies --rev 'desc("i-0")' --rev 'desc("mEA-change-m-0")'
3aef76c3fd38 test-copies: add a "change during merge" variant to the A+E test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46596
diff changeset
  3186
  A f
3aef76c3fd38 test-copies: add a "change during merge" variant to the A+E test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46596
diff changeset
  3187
    a (filelog !)
3aef76c3fd38 test-copies: add a "change during merge" variant to the A+E test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46596
diff changeset
  3188
    b (no-filelog !)
46600
0ebfd02dafd5 test-copies: move the new files in the `i` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46599
diff changeset
  3189
  A t
0ebfd02dafd5 test-copies: move the new files in the `i` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46599
diff changeset
  3190
    p
46597
3aef76c3fd38 test-copies: add a "change during merge" variant to the A+E test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46596
diff changeset
  3191
  R a
3aef76c3fd38 test-copies: add a "change during merge" variant to the A+E test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46596
diff changeset
  3192
  R b
46600
0ebfd02dafd5 test-copies: move the new files in the `i` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46599
diff changeset
  3193
  R p
46597
3aef76c3fd38 test-copies: add a "change during merge" variant to the A+E test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46596
diff changeset
  3194
3aef76c3fd38 test-copies: add a "change during merge" variant to the A+E test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46596
diff changeset
  3195
46591
fbc466484fc3 test-copies: add test chaining multiple merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46590
diff changeset
  3196
Decision from previous merge are properly chained with later merge
fbc466484fc3 test-copies: add test chaining multiple merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46590
diff changeset
  3197
------------------------------------------------------------------
fbc466484fc3 test-copies: add test chaining multiple merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46590
diff changeset
  3198
fbc466484fc3 test-copies: add test chaining multiple merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46590
diff changeset
  3199
fbc466484fc3 test-copies: add test chaining multiple merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46590
diff changeset
  3200
Subcase: chaining conflicting rename resolution
fbc466484fc3 test-copies: add test chaining multiple merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46590
diff changeset
  3201
```````````````````````````````````````````````
fbc466484fc3 test-copies: add test chaining multiple merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46590
diff changeset
  3202
fbc466484fc3 test-copies: add test chaining multiple merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46590
diff changeset
  3203
The "mAEm" and "mEAm" case create a rename tracking conflict on file 'f'. We
fbc466484fc3 test-copies: add test chaining multiple merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46590
diff changeset
  3204
add more change on the respective branch and merge again. These second merge
fbc466484fc3 test-copies: add test chaining multiple merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46590
diff changeset
  3205
does not involve the file 'f' and the arbitration done within "mAEm" and "mEA"
fbc466484fc3 test-copies: add test chaining multiple merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46590
diff changeset
  3206
about that file should stay unchanged.
fbc466484fc3 test-copies: add test chaining multiple merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46590
diff changeset
  3207
fbc466484fc3 test-copies: add test chaining multiple merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46590
diff changeset
  3208
The result from mAEm is the same for the subsequent merge:
fbc466484fc3 test-copies: add test chaining multiple merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46590
diff changeset
  3209
fbc466484fc3 test-copies: add test chaining multiple merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46590
diff changeset
  3210
  $ hg status --copies --rev 'desc("i-0")' --rev 'desc("mAEm")' f
fbc466484fc3 test-copies: add test chaining multiple merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46590
diff changeset
  3211
  A f
fbc466484fc3 test-copies: add test chaining multiple merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46590
diff changeset
  3212
    a (filelog !)
fbc466484fc3 test-copies: add test chaining multiple merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46590
diff changeset
  3213
    a (sidedata !)
fbc466484fc3 test-copies: add test chaining multiple merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46590
diff changeset
  3214
    a (upgraded !)
46657
dde86beca388 copies: tests and fix parallel computation of changed file information
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46649
diff changeset
  3215
    a (upgraded-parallel !)
46591
fbc466484fc3 test-copies: add test chaining multiple merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46590
diff changeset
  3216
fbc466484fc3 test-copies: add test chaining multiple merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46590
diff changeset
  3217
  $ hg status --copies --rev 'desc("i-0")' --rev 'desc("mAE,Km")' f
fbc466484fc3 test-copies: add test chaining multiple merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46590
diff changeset
  3218
  A f
fbc466484fc3 test-copies: add test chaining multiple merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46590
diff changeset
  3219
    a (filelog !)
fbc466484fc3 test-copies: add test chaining multiple merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46590
diff changeset
  3220
    a (sidedata !)
fbc466484fc3 test-copies: add test chaining multiple merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46590
diff changeset
  3221
    a (upgraded !)
46657
dde86beca388 copies: tests and fix parallel computation of changed file information
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46649
diff changeset
  3222
    a (upgraded-parallel !)
46591
fbc466484fc3 test-copies: add test chaining multiple merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46590
diff changeset
  3223
fbc466484fc3 test-copies: add test chaining multiple merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46590
diff changeset
  3224
  $ hg status --copies --rev 'desc("i-0")' --rev 'desc("mK,AEm")' f
fbc466484fc3 test-copies: add test chaining multiple merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46590
diff changeset
  3225
  A f
fbc466484fc3 test-copies: add test chaining multiple merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46590
diff changeset
  3226
    a (filelog !)
46607
c19c662097e1 copies: detect case when a merge decision overwrite previous data
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46605
diff changeset
  3227
    a (sidedata !)
c19c662097e1 copies: detect case when a merge decision overwrite previous data
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46605
diff changeset
  3228
    a (upgraded !)
46657
dde86beca388 copies: tests and fix parallel computation of changed file information
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46649
diff changeset
  3229
    a (upgraded-parallel !)
46591
fbc466484fc3 test-copies: add test chaining multiple merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46590
diff changeset
  3230
fbc466484fc3 test-copies: add test chaining multiple merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46590
diff changeset
  3231
fbc466484fc3 test-copies: add test chaining multiple merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46590
diff changeset
  3232
The result from mEAm is the same for the subsequent merge:
fbc466484fc3 test-copies: add test chaining multiple merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46590
diff changeset
  3233
fbc466484fc3 test-copies: add test chaining multiple merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46590
diff changeset
  3234
  $ hg status --copies --rev 'desc("i-0")' --rev 'desc("mEAm")' f
fbc466484fc3 test-copies: add test chaining multiple merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46590
diff changeset
  3235
  A f
fbc466484fc3 test-copies: add test chaining multiple merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46590
diff changeset
  3236
    a (filelog !)
fbc466484fc3 test-copies: add test chaining multiple merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46590
diff changeset
  3237
    b (sidedata !)
fbc466484fc3 test-copies: add test chaining multiple merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46590
diff changeset
  3238
    b (upgraded !)
46657
dde86beca388 copies: tests and fix parallel computation of changed file information
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46649
diff changeset
  3239
    b (upgraded-parallel !)
46591
fbc466484fc3 test-copies: add test chaining multiple merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46590
diff changeset
  3240
fbc466484fc3 test-copies: add test chaining multiple merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46590
diff changeset
  3241
  $ hg status --copies --rev 'desc("i-0")' --rev 'desc("mEA,Jm")' f
fbc466484fc3 test-copies: add test chaining multiple merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46590
diff changeset
  3242
  A f
fbc466484fc3 test-copies: add test chaining multiple merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46590
diff changeset
  3243
    a (filelog !)
fbc466484fc3 test-copies: add test chaining multiple merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46590
diff changeset
  3244
    b (sidedata !)
fbc466484fc3 test-copies: add test chaining multiple merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46590
diff changeset
  3245
    b (upgraded !)
46657
dde86beca388 copies: tests and fix parallel computation of changed file information
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46649
diff changeset
  3246
    b (upgraded-parallel !)
46591
fbc466484fc3 test-copies: add test chaining multiple merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46590
diff changeset
  3247
fbc466484fc3 test-copies: add test chaining multiple merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46590
diff changeset
  3248
  $ hg status --copies --rev 'desc("i-0")' --rev 'desc("mJ,EAm")' f
fbc466484fc3 test-copies: add test chaining multiple merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46590
diff changeset
  3249
  A f
fbc466484fc3 test-copies: add test chaining multiple merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46590
diff changeset
  3250
    a (filelog !)
46607
c19c662097e1 copies: detect case when a merge decision overwrite previous data
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46605
diff changeset
  3251
    b (sidedata !)
c19c662097e1 copies: detect case when a merge decision overwrite previous data
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46605
diff changeset
  3252
    b (upgraded !)
46657
dde86beca388 copies: tests and fix parallel computation of changed file information
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46649
diff changeset
  3253
    b (upgraded-parallel !)
46591
fbc466484fc3 test-copies: add test chaining multiple merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46590
diff changeset
  3254
46605
388a92023a1a test-copies: introduce merge chains test for the P/Q merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46604
diff changeset
  3255
Subcase: chaining conflicting rename resolution
388a92023a1a test-copies: introduce merge chains test for the P/Q merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46604
diff changeset
  3256
```````````````````````````````````````````````
388a92023a1a test-copies: introduce merge chains test for the P/Q merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46604
diff changeset
  3257
388a92023a1a test-copies: introduce merge chains test for the P/Q merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46604
diff changeset
  3258
The "mPQm" and "mQPm" case create a rename tracking conflict on file 'v'. We
388a92023a1a test-copies: introduce merge chains test for the P/Q merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46604
diff changeset
  3259
add more change on the respective branch and merge again. These second merge
388a92023a1a test-copies: introduce merge chains test for the P/Q merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46604
diff changeset
  3260
does not involve the file 'v' and the arbitration done within "mPQm" and "mQP"
388a92023a1a test-copies: introduce merge chains test for the P/Q merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46604
diff changeset
  3261
about that file should stay unchanged.
388a92023a1a test-copies: introduce merge chains test for the P/Q merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46604
diff changeset
  3262
388a92023a1a test-copies: introduce merge chains test for the P/Q merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46604
diff changeset
  3263
The result from mPQm is the same for the subsequent merge:
388a92023a1a test-copies: introduce merge chains test for the P/Q merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46604
diff changeset
  3264
388a92023a1a test-copies: introduce merge chains test for the P/Q merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46604
diff changeset
  3265
  $ hg status --copies --rev 'desc("i-0")' --rev 'desc("mPQm")' v
388a92023a1a test-copies: introduce merge chains test for the P/Q merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46604
diff changeset
  3266
  A v
388a92023a1a test-copies: introduce merge chains test for the P/Q merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46604
diff changeset
  3267
    r (filelog !)
388a92023a1a test-copies: introduce merge chains test for the P/Q merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46604
diff changeset
  3268
    p (sidedata !)
388a92023a1a test-copies: introduce merge chains test for the P/Q merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46604
diff changeset
  3269
    p (upgraded !)
46657
dde86beca388 copies: tests and fix parallel computation of changed file information
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46649
diff changeset
  3270
    p (upgraded-parallel !)
46605
388a92023a1a test-copies: introduce merge chains test for the P/Q merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46604
diff changeset
  3271
388a92023a1a test-copies: introduce merge chains test for the P/Q merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46604
diff changeset
  3272
  $ hg status --copies --rev 'desc("i-0")' --rev 'desc("mPQ,Tm")' v
388a92023a1a test-copies: introduce merge chains test for the P/Q merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46604
diff changeset
  3273
  A v
388a92023a1a test-copies: introduce merge chains test for the P/Q merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46604
diff changeset
  3274
    r (filelog !)
388a92023a1a test-copies: introduce merge chains test for the P/Q merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46604
diff changeset
  3275
    p (sidedata !)
388a92023a1a test-copies: introduce merge chains test for the P/Q merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46604
diff changeset
  3276
    p (upgraded !)
46657
dde86beca388 copies: tests and fix parallel computation of changed file information
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46649
diff changeset
  3277
    p (upgraded-parallel !)
46605
388a92023a1a test-copies: introduce merge chains test for the P/Q merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46604
diff changeset
  3278
388a92023a1a test-copies: introduce merge chains test for the P/Q merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46604
diff changeset
  3279
  $ hg status --copies --rev 'desc("i-0")' --rev 'desc("mT,PQm")' v
388a92023a1a test-copies: introduce merge chains test for the P/Q merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46604
diff changeset
  3280
  A v
388a92023a1a test-copies: introduce merge chains test for the P/Q merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46604
diff changeset
  3281
    r (filelog !)
46607
c19c662097e1 copies: detect case when a merge decision overwrite previous data
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46605
diff changeset
  3282
    p (sidedata !)
c19c662097e1 copies: detect case when a merge decision overwrite previous data
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46605
diff changeset
  3283
    p (upgraded !)
46657
dde86beca388 copies: tests and fix parallel computation of changed file information
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46649
diff changeset
  3284
    p (upgraded-parallel !)
46605
388a92023a1a test-copies: introduce merge chains test for the P/Q merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46604
diff changeset
  3285
388a92023a1a test-copies: introduce merge chains test for the P/Q merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46604
diff changeset
  3286
388a92023a1a test-copies: introduce merge chains test for the P/Q merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46604
diff changeset
  3287
The result from mQPm is the same for the subsequent merge:
388a92023a1a test-copies: introduce merge chains test for the P/Q merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46604
diff changeset
  3288
388a92023a1a test-copies: introduce merge chains test for the P/Q merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46604
diff changeset
  3289
  $ hg status --copies --rev 'desc("i-0")' --rev 'desc("mQPm")' v
388a92023a1a test-copies: introduce merge chains test for the P/Q merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46604
diff changeset
  3290
  A v
388a92023a1a test-copies: introduce merge chains test for the P/Q merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46604
diff changeset
  3291
    r (no-changeset no-compatibility !)
388a92023a1a test-copies: introduce merge chains test for the P/Q merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46604
diff changeset
  3292
388a92023a1a test-copies: introduce merge chains test for the P/Q merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46604
diff changeset
  3293
  $ hg status --copies --rev 'desc("i-0")' --rev 'desc("mQP,Sm")' v
388a92023a1a test-copies: introduce merge chains test for the P/Q merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46604
diff changeset
  3294
  A v
388a92023a1a test-copies: introduce merge chains test for the P/Q merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46604
diff changeset
  3295
    r (no-changeset no-compatibility !)
388a92023a1a test-copies: introduce merge chains test for the P/Q merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46604
diff changeset
  3296
388a92023a1a test-copies: introduce merge chains test for the P/Q merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46604
diff changeset
  3297
  $ hg status --copies --rev 'desc("i-0")' --rev 'desc("mS,QPm")' v
388a92023a1a test-copies: introduce merge chains test for the P/Q merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46604
diff changeset
  3298
  A v
388a92023a1a test-copies: introduce merge chains test for the P/Q merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46604
diff changeset
  3299
    r (filelog !)
46607
c19c662097e1 copies: detect case when a merge decision overwrite previous data
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46605
diff changeset
  3300
    r (sidedata !)
c19c662097e1 copies: detect case when a merge decision overwrite previous data
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46605
diff changeset
  3301
    r (upgraded !)
46657
dde86beca388 copies: tests and fix parallel computation of changed file information
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46649
diff changeset
  3302
    r (upgraded-parallel !)
46605
388a92023a1a test-copies: introduce merge chains test for the P/Q merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46604
diff changeset
  3303
46591
fbc466484fc3 test-copies: add test chaining multiple merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46590
diff changeset
  3304
46592
3805b13ad7fe test-copies: add test chaining multiple merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46591
diff changeset
  3305
Subcase: chaining salvage information during a merge
3805b13ad7fe test-copies: add test chaining multiple merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46591
diff changeset
  3306
````````````````````````````````````````````````````
3805b13ad7fe test-copies: add test chaining multiple merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46591
diff changeset
  3307
3805b13ad7fe test-copies: add test chaining multiple merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46591
diff changeset
  3308
We add more change on the branch were the file was deleted. merging again
3805b13ad7fe test-copies: add test chaining multiple merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46591
diff changeset
  3309
should preserve the fact eh file was salvaged.
3805b13ad7fe test-copies: add test chaining multiple merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46591
diff changeset
  3310
3805b13ad7fe test-copies: add test chaining multiple merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46591
diff changeset
  3311
reference output:
3805b13ad7fe test-copies: add test chaining multiple merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46591
diff changeset
  3312
3805b13ad7fe test-copies: add test chaining multiple merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46591
diff changeset
  3313
  $ hg status --copies --rev 'desc("i-0")' --rev 'desc("mCB-revert-m-0")'
3805b13ad7fe test-copies: add test chaining multiple merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46591
diff changeset
  3314
  M b
3805b13ad7fe test-copies: add test chaining multiple merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46591
diff changeset
  3315
  A d
46607
c19c662097e1 copies: detect case when a merge decision overwrite previous data
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46605
diff changeset
  3316
    a (no-changeset no-compatibility !)
46600
0ebfd02dafd5 test-copies: move the new files in the `i` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46599
diff changeset
  3317
  A t
0ebfd02dafd5 test-copies: move the new files in the `i` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46599
diff changeset
  3318
    p
46592
3805b13ad7fe test-copies: add test chaining multiple merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46591
diff changeset
  3319
  R a
46600
0ebfd02dafd5 test-copies: move the new files in the `i` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46599
diff changeset
  3320
  R p
46592
3805b13ad7fe test-copies: add test chaining multiple merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46591
diff changeset
  3321
  $ hg status --copies --rev 'desc("i-0")' --rev 'desc("mBC-revert-m-0")'
3805b13ad7fe test-copies: add test chaining multiple merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46591
diff changeset
  3322
  M b
3805b13ad7fe test-copies: add test chaining multiple merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46591
diff changeset
  3323
  A d
46607
c19c662097e1 copies: detect case when a merge decision overwrite previous data
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46605
diff changeset
  3324
    a (no-changeset no-compatibility !)
46600
0ebfd02dafd5 test-copies: move the new files in the `i` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46599
diff changeset
  3325
  A t
0ebfd02dafd5 test-copies: move the new files in the `i` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46599
diff changeset
  3326
    p
46592
3805b13ad7fe test-copies: add test chaining multiple merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46591
diff changeset
  3327
  R a
46600
0ebfd02dafd5 test-copies: move the new files in the `i` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46599
diff changeset
  3328
  R p
46592
3805b13ad7fe test-copies: add test chaining multiple merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46591
diff changeset
  3329
3805b13ad7fe test-copies: add test chaining multiple merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46591
diff changeset
  3330
chained output
3805b13ad7fe test-copies: add test chaining multiple merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46591
diff changeset
  3331
  $ hg status --copies --rev 'desc("i-0")' --rev 'desc("mBC+revert,Lm")'
3805b13ad7fe test-copies: add test chaining multiple merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46591
diff changeset
  3332
  M b
3805b13ad7fe test-copies: add test chaining multiple merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46591
diff changeset
  3333
  A d
46607
c19c662097e1 copies: detect case when a merge decision overwrite previous data
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46605
diff changeset
  3334
    a (no-changeset no-compatibility !)
46600
0ebfd02dafd5 test-copies: move the new files in the `i` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46599
diff changeset
  3335
  A t
0ebfd02dafd5 test-copies: move the new files in the `i` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46599
diff changeset
  3336
    p
46592
3805b13ad7fe test-copies: add test chaining multiple merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46591
diff changeset
  3337
  A unrelated-l
3805b13ad7fe test-copies: add test chaining multiple merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46591
diff changeset
  3338
  R a
46600
0ebfd02dafd5 test-copies: move the new files in the `i` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46599
diff changeset
  3339
  R p
46592
3805b13ad7fe test-copies: add test chaining multiple merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46591
diff changeset
  3340
  $ hg status --copies --rev 'desc("i-0")' --rev 'desc("mCB+revert,Lm")'
3805b13ad7fe test-copies: add test chaining multiple merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46591
diff changeset
  3341
  M b
3805b13ad7fe test-copies: add test chaining multiple merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46591
diff changeset
  3342
  A d
46607
c19c662097e1 copies: detect case when a merge decision overwrite previous data
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46605
diff changeset
  3343
    a (no-changeset no-compatibility !)
46600
0ebfd02dafd5 test-copies: move the new files in the `i` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46599
diff changeset
  3344
  A t
0ebfd02dafd5 test-copies: move the new files in the `i` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46599
diff changeset
  3345
    p
46592
3805b13ad7fe test-copies: add test chaining multiple merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46591
diff changeset
  3346
  A unrelated-l
3805b13ad7fe test-copies: add test chaining multiple merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46591
diff changeset
  3347
  R a
46600
0ebfd02dafd5 test-copies: move the new files in the `i` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46599
diff changeset
  3348
  R p
46592
3805b13ad7fe test-copies: add test chaining multiple merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46591
diff changeset
  3349
  $ hg status --copies --rev 'desc("i-0")' --rev 'desc("mL,BC+revertm")'
3805b13ad7fe test-copies: add test chaining multiple merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46591
diff changeset
  3350
  M b
3805b13ad7fe test-copies: add test chaining multiple merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46591
diff changeset
  3351
  A d
46607
c19c662097e1 copies: detect case when a merge decision overwrite previous data
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46605
diff changeset
  3352
    a (no-changeset no-compatibility !)
46600
0ebfd02dafd5 test-copies: move the new files in the `i` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46599
diff changeset
  3353
  A t
0ebfd02dafd5 test-copies: move the new files in the `i` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46599
diff changeset
  3354
    p
46592
3805b13ad7fe test-copies: add test chaining multiple merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46591
diff changeset
  3355
  A unrelated-l
3805b13ad7fe test-copies: add test chaining multiple merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46591
diff changeset
  3356
  R a
46600
0ebfd02dafd5 test-copies: move the new files in the `i` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46599
diff changeset
  3357
  R p
46592
3805b13ad7fe test-copies: add test chaining multiple merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46591
diff changeset
  3358
  $ hg status --copies --rev 'desc("i-0")' --rev 'desc("mL,CB+revertm")'
3805b13ad7fe test-copies: add test chaining multiple merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46591
diff changeset
  3359
  M b
3805b13ad7fe test-copies: add test chaining multiple merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46591
diff changeset
  3360
  A d
46607
c19c662097e1 copies: detect case when a merge decision overwrite previous data
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46605
diff changeset
  3361
    a (no-changeset no-compatibility !)
46600
0ebfd02dafd5 test-copies: move the new files in the `i` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46599
diff changeset
  3362
  A t
0ebfd02dafd5 test-copies: move the new files in the `i` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46599
diff changeset
  3363
    p
46592
3805b13ad7fe test-copies: add test chaining multiple merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46591
diff changeset
  3364
  A unrelated-l
3805b13ad7fe test-copies: add test chaining multiple merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46591
diff changeset
  3365
  R a
46600
0ebfd02dafd5 test-copies: move the new files in the `i` branch
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46599
diff changeset
  3366
  R p
46592
3805b13ad7fe test-copies: add test chaining multiple merges
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46591
diff changeset
  3367
46593
075b2499e3d6 test-copies: add test chaining multiple merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46592
diff changeset
  3368
Subcase: chaining "merged" information during a merge
075b2499e3d6 test-copies: add test chaining multiple merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46592
diff changeset
  3369
``````````````````````````````````````````````````````
075b2499e3d6 test-copies: add test chaining multiple merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46592
diff changeset
  3370
075b2499e3d6 test-copies: add test chaining multiple merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46592
diff changeset
  3371
When a non-rename change are merged with a copy overwrite, the merge pick the copy source from (p1) as the reference. We should preserve this information in subsequent merges.
075b2499e3d6 test-copies: add test chaining multiple merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46592
diff changeset
  3372
075b2499e3d6 test-copies: add test chaining multiple merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46592
diff changeset
  3373
075b2499e3d6 test-copies: add test chaining multiple merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46592
diff changeset
  3374
reference output:
075b2499e3d6 test-copies: add test chaining multiple merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46592
diff changeset
  3375
075b2499e3d6 test-copies: add test chaining multiple merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46592
diff changeset
  3376
 (for details about the filelog pick, check the mFGm/mGFm case)
075b2499e3d6 test-copies: add test chaining multiple merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46592
diff changeset
  3377
075b2499e3d6 test-copies: add test chaining multiple merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46592
diff changeset
  3378
  $ hg status --copies --rev 'desc("i-0")' --rev 'desc("mFGm")' d
075b2499e3d6 test-copies: add test chaining multiple merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46592
diff changeset
  3379
  A d
075b2499e3d6 test-copies: add test chaining multiple merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46592
diff changeset
  3380
    a (filelog !)
075b2499e3d6 test-copies: add test chaining multiple merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46592
diff changeset
  3381
    h (sidedata !)
075b2499e3d6 test-copies: add test chaining multiple merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46592
diff changeset
  3382
    h (upgraded !)
46657
dde86beca388 copies: tests and fix parallel computation of changed file information
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46649
diff changeset
  3383
    h (upgraded-parallel !)
46593
075b2499e3d6 test-copies: add test chaining multiple merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46592
diff changeset
  3384
  $ hg status --copies --rev 'desc("i-0")' --rev 'desc("mGFm")' d
075b2499e3d6 test-copies: add test chaining multiple merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46592
diff changeset
  3385
  A d
075b2499e3d6 test-copies: add test chaining multiple merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46592
diff changeset
  3386
    a (filelog !)
075b2499e3d6 test-copies: add test chaining multiple merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46592
diff changeset
  3387
    a (sidedata !)
075b2499e3d6 test-copies: add test chaining multiple merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46592
diff changeset
  3388
    a (upgraded !)
46657
dde86beca388 copies: tests and fix parallel computation of changed file information
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46649
diff changeset
  3389
    a (upgraded-parallel !)
46593
075b2499e3d6 test-copies: add test chaining multiple merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46592
diff changeset
  3390
075b2499e3d6 test-copies: add test chaining multiple merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46592
diff changeset
  3391
Chained output
075b2499e3d6 test-copies: add test chaining multiple merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46592
diff changeset
  3392
075b2499e3d6 test-copies: add test chaining multiple merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46592
diff changeset
  3393
  $ hg status --copies --rev 'desc("i-0")' --rev 'desc("mO,FGm")' d
075b2499e3d6 test-copies: add test chaining multiple merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46592
diff changeset
  3394
  A d
075b2499e3d6 test-copies: add test chaining multiple merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46592
diff changeset
  3395
    a (filelog !)
075b2499e3d6 test-copies: add test chaining multiple merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46592
diff changeset
  3396
    h (sidedata !)
075b2499e3d6 test-copies: add test chaining multiple merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46592
diff changeset
  3397
    h (upgraded !)
46657
dde86beca388 copies: tests and fix parallel computation of changed file information
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46649
diff changeset
  3398
    h (upgraded-parallel !)
46593
075b2499e3d6 test-copies: add test chaining multiple merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46592
diff changeset
  3399
  $ hg status --copies --rev 'desc("i-0")' --rev 'desc("mFG,Om")' d
075b2499e3d6 test-copies: add test chaining multiple merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46592
diff changeset
  3400
  A d
075b2499e3d6 test-copies: add test chaining multiple merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46592
diff changeset
  3401
    a (filelog !)
075b2499e3d6 test-copies: add test chaining multiple merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46592
diff changeset
  3402
    h (sidedata !)
075b2499e3d6 test-copies: add test chaining multiple merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46592
diff changeset
  3403
    h (upgraded !)
46657
dde86beca388 copies: tests and fix parallel computation of changed file information
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46649
diff changeset
  3404
    h (upgraded-parallel !)
46593
075b2499e3d6 test-copies: add test chaining multiple merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46592
diff changeset
  3405
075b2499e3d6 test-copies: add test chaining multiple merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46592
diff changeset
  3406
075b2499e3d6 test-copies: add test chaining multiple merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46592
diff changeset
  3407
  $ hg status --copies --rev 'desc("i-0")' --rev 'desc("mGF,Nm")' d
075b2499e3d6 test-copies: add test chaining multiple merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46592
diff changeset
  3408
  A d
46607
c19c662097e1 copies: detect case when a merge decision overwrite previous data
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46605
diff changeset
  3409
    a (no-changeset no-compatibility !)
46593
075b2499e3d6 test-copies: add test chaining multiple merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46592
diff changeset
  3410
  $ hg status --copies --rev 'desc("i-0")' --rev 'desc("mN,GFm")' d
075b2499e3d6 test-copies: add test chaining multiple merge
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46592
diff changeset
  3411
  A d
46607
c19c662097e1 copies: detect case when a merge decision overwrite previous data
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46605
diff changeset
  3412
    a (no-changeset no-compatibility !)
46598
664bee002d1a test-copies: introduce merge chaing test for the A/E + change tests
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46597
diff changeset
  3413
664bee002d1a test-copies: introduce merge chaing test for the A/E + change tests
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46597
diff changeset
  3414
664bee002d1a test-copies: introduce merge chaing test for the A/E + change tests
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46597
diff changeset
  3415
Subcase: chaining conflicting rename resolution, with extra change during the merge
664bee002d1a test-copies: introduce merge chaing test for the A/E + change tests
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46597
diff changeset
  3416
```````````````````````````````````````````````````````````````````````````````````
664bee002d1a test-copies: introduce merge chaing test for the A/E + change tests
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46597
diff changeset
  3417
664bee002d1a test-copies: introduce merge chaing test for the A/E + change tests
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46597
diff changeset
  3418
The "mAEm" and "mEAm" case create a rename tracking conflict on file 'f'. We
664bee002d1a test-copies: introduce merge chaing test for the A/E + change tests
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46597
diff changeset
  3419
add more change on the respective branch and merge again. These second merge
664bee002d1a test-copies: introduce merge chaing test for the A/E + change tests
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46597
diff changeset
  3420
does not involve the file 'f' and the arbitration done within "mAEm" and "mEA"
664bee002d1a test-copies: introduce merge chaing test for the A/E + change tests
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46597
diff changeset
  3421
about that file should stay unchanged.
664bee002d1a test-copies: introduce merge chaing test for the A/E + change tests
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46597
diff changeset
  3422
664bee002d1a test-copies: introduce merge chaing test for the A/E + change tests
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46597
diff changeset
  3423
The result from mAEm is the same for the subsequent merge:
664bee002d1a test-copies: introduce merge chaing test for the A/E + change tests
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46597
diff changeset
  3424
664bee002d1a test-copies: introduce merge chaing test for the A/E + change tests
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46597
diff changeset
  3425
  $ hg status --copies --rev 'desc("i-0")' --rev 'desc("mAE-change-m")' f
664bee002d1a test-copies: introduce merge chaing test for the A/E + change tests
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46597
diff changeset
  3426
  A f
664bee002d1a test-copies: introduce merge chaing test for the A/E + change tests
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46597
diff changeset
  3427
    a (filelog !)
664bee002d1a test-copies: introduce merge chaing test for the A/E + change tests
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46597
diff changeset
  3428
    a (sidedata !)
664bee002d1a test-copies: introduce merge chaing test for the A/E + change tests
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46597
diff changeset
  3429
    a (upgraded !)
46657
dde86beca388 copies: tests and fix parallel computation of changed file information
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46649
diff changeset
  3430
    a (upgraded-parallel !)
46598
664bee002d1a test-copies: introduce merge chaing test for the A/E + change tests
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46597
diff changeset
  3431
664bee002d1a test-copies: introduce merge chaing test for the A/E + change tests
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46597
diff changeset
  3432
  $ hg status --copies --rev 'desc("i-0")' --rev 'desc("mAE-change,Km")' f
664bee002d1a test-copies: introduce merge chaing test for the A/E + change tests
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46597
diff changeset
  3433
  A f
664bee002d1a test-copies: introduce merge chaing test for the A/E + change tests
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46597
diff changeset
  3434
    a (filelog !)
664bee002d1a test-copies: introduce merge chaing test for the A/E + change tests
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46597
diff changeset
  3435
    a (sidedata !)
664bee002d1a test-copies: introduce merge chaing test for the A/E + change tests
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46597
diff changeset
  3436
    a (upgraded !)
46657
dde86beca388 copies: tests and fix parallel computation of changed file information
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46649
diff changeset
  3437
    a (upgraded-parallel !)
46598
664bee002d1a test-copies: introduce merge chaing test for the A/E + change tests
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46597
diff changeset
  3438
664bee002d1a test-copies: introduce merge chaing test for the A/E + change tests
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46597
diff changeset
  3439
  $ hg status --copies --rev 'desc("i-0")' --rev 'desc("mK,AE-change-m")' f
664bee002d1a test-copies: introduce merge chaing test for the A/E + change tests
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46597
diff changeset
  3440
  A f
46607
c19c662097e1 copies: detect case when a merge decision overwrite previous data
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46605
diff changeset
  3441
    a (no-changeset no-compatibility !)
46598
664bee002d1a test-copies: introduce merge chaing test for the A/E + change tests
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46597
diff changeset
  3442
664bee002d1a test-copies: introduce merge chaing test for the A/E + change tests
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46597
diff changeset
  3443
664bee002d1a test-copies: introduce merge chaing test for the A/E + change tests
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46597
diff changeset
  3444
The result from mEAm is the same for the subsequent merge:
664bee002d1a test-copies: introduce merge chaing test for the A/E + change tests
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46597
diff changeset
  3445
664bee002d1a test-copies: introduce merge chaing test for the A/E + change tests
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46597
diff changeset
  3446
  $ hg status --copies --rev 'desc("i-0")' --rev 'desc("mEA-change-m")' f
664bee002d1a test-copies: introduce merge chaing test for the A/E + change tests
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46597
diff changeset
  3447
  A f
664bee002d1a test-copies: introduce merge chaing test for the A/E + change tests
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46597
diff changeset
  3448
    a (filelog !)
664bee002d1a test-copies: introduce merge chaing test for the A/E + change tests
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46597
diff changeset
  3449
    b (sidedata !)
664bee002d1a test-copies: introduce merge chaing test for the A/E + change tests
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46597
diff changeset
  3450
    b (upgraded !)
46657
dde86beca388 copies: tests and fix parallel computation of changed file information
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46649
diff changeset
  3451
    b (upgraded-parallel !)
46598
664bee002d1a test-copies: introduce merge chaing test for the A/E + change tests
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46597
diff changeset
  3452
664bee002d1a test-copies: introduce merge chaing test for the A/E + change tests
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46597
diff changeset
  3453
  $ hg status --copies --rev 'desc("i-0")' --rev 'desc("mEA-change,Jm")' f
664bee002d1a test-copies: introduce merge chaing test for the A/E + change tests
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46597
diff changeset
  3454
  A f
664bee002d1a test-copies: introduce merge chaing test for the A/E + change tests
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46597
diff changeset
  3455
    a (filelog !)
664bee002d1a test-copies: introduce merge chaing test for the A/E + change tests
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46597
diff changeset
  3456
    b (sidedata !)
664bee002d1a test-copies: introduce merge chaing test for the A/E + change tests
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46597
diff changeset
  3457
    b (upgraded !)
46657
dde86beca388 copies: tests and fix parallel computation of changed file information
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46649
diff changeset
  3458
    b (upgraded-parallel !)
46598
664bee002d1a test-copies: introduce merge chaing test for the A/E + change tests
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46597
diff changeset
  3459
664bee002d1a test-copies: introduce merge chaing test for the A/E + change tests
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46597
diff changeset
  3460
  $ hg status --copies --rev 'desc("i-0")' --rev 'desc("mJ,EA-change-m")' f
664bee002d1a test-copies: introduce merge chaing test for the A/E + change tests
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46597
diff changeset
  3461
  A f
664bee002d1a test-copies: introduce merge chaing test for the A/E + change tests
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46597
diff changeset
  3462
    a (filelog !)
46607
c19c662097e1 copies: detect case when a merge decision overwrite previous data
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46605
diff changeset
  3463
    b (sidedata !)
c19c662097e1 copies: detect case when a merge decision overwrite previous data
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46605
diff changeset
  3464
    b (upgraded !)
46657
dde86beca388 copies: tests and fix parallel computation of changed file information
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 46649
diff changeset
  3465
    b (upgraded-parallel !)