tests/test-convert-cvs-detectmerge.t
author A. S. Budden <abudden@gmail.com>
Fri, 30 Mar 2012 22:08:46 +0100
changeset 16324 46b991a1f428
parent 14824 7698c275aa56
child 18376 13d73bf6be29
permissions -rw-r--r--
record: allow splitting of hunks by manually editing patches It is possible that unrelated changes in a file are on sequential lines. The current record extension does not allow these to be committed independently. An example use case for this is in software development for deeply embedded real-time systems. In these environments, it is not always possible to use a debugger (due to time-constraints) and hence inline UART-based printing is often used. When fixing a bug in a module, it is often convenient to add a large number of 'printf's (linked to the UART via a custom fputc) to the module in order to work out what is going wrong. printf is a very slow function (and also variadic so somewhat frowned upon by the MISRA standard) and hence it is highly undesirable to commit these lines to the repository. If only a partial fix is implemented, however, it is desirable to commit the fix without deleting all of the printf lines. This is also simplifies removal of the printf lines as once the final fix is committed, 'hg revert' does the rest. It is likely that the printf lines will be very near the actual fix, so being able to split the hunk is very useful in this case. There were two alternatives I considered for the user interface. One was to manually edit the patch, the other to allow a hunk to be split into individual lines for consideration. The latter option would require a significant refactor of the record module and is less flexible. While the former is potentially more complicated to use, this is a feature that is likely to only be used in certain exceptional cases (such as the use case proposed above) and hence I felt that the complexity would not be a considerable issue. I've also written a follow-up patch that refactors the 'prompt' code to base everything on the choices variable. This tidies up and clarifies the code a bit (removes constructs like 'if ret == 7' and removes the 'e' option from the file scope options as it's not relevant there. It's not really a necessity, so I've excluded it from this submission for now, but I can send it separately if there's a desire and it's on bitbucket (see below) in the meantime. Possible future improvements include: * Tidying up the 'prompt' code to base everything on the choices variable. This would allow entries to be removed from the prompt as currently 'e' is offered even for entire file patches, which is currently unsupported. * Allowing the entire file (or even multi-file) patch to be edited manually: this would require quite a large refactor without much benefit, so I decided to exclude it from the initial submission. * Allow the option to retry if a patch fails to apply (this is what Git does). This would require quite a bit of refactoring given the current 'hg record' implementation, so it's debatable whether it's worth it. Output is similar to existing record user interface except that an additional option ('e') exists to allow manual editing of the patch. This opens the user's configured editor with the patch. A comment is added to the bottom of the patch explaining what to do (based on Git's one). A large proportion of the changeset is test-case changes to update the options reported by record (Ynesfdaq? instead of Ynsfdaq?). Functional changes are in record.py and there are some new test cases in test-record.t.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
12521
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
     1
Test config convert.cvsps.mergefrom config setting.
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
     2
(Should test similar mergeto feature, but I don't understand it yet.)
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
     3
Requires builtin cvsps.
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
     4
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
     5
  $ "$TESTDIR/hghave" cvs || exit 80
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
     6
  $ CVSROOT=`pwd`/cvsrepo
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
     7
  $ export CVSROOT
8170
6c4fdde87f90 cvsps: add test for merge detection (issue1615).
Greg Ward <greg-hg@gerg.ca>
parents:
diff changeset
     8
12521
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
     9
  $ cvscall()
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
    10
  > {
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
    11
  >     cvs -f "$@"
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
    12
  > }
8170
6c4fdde87f90 cvsps: add test for merge detection (issue1615).
Greg Ward <greg-hg@gerg.ca>
parents:
diff changeset
    13
12521
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
    14
output of 'cvs ci' varies unpredictably, so just discard it
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
    15
XXX copied from test-convert-cvs-synthetic
8170
6c4fdde87f90 cvsps: add test for merge detection (issue1615).
Greg Ward <greg-hg@gerg.ca>
parents:
diff changeset
    16
12521
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
    17
  $ cvsci()
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
    18
  > {
14569
017ab404e588 tests: fix up date ambiguity in cvs test
Matt Mackall <mpm@selenic.com>
parents: 12640
diff changeset
    19
  >     sleep 1
12521
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
    20
  >     cvs -f ci "$@" > /dev/null
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
    21
  > }
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
    22
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
    23
XXX copied from test-convert-cvs-synthetic
8170
6c4fdde87f90 cvsps: add test for merge detection (issue1615).
Greg Ward <greg-hg@gerg.ca>
parents:
diff changeset
    24
12521
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
    25
  $ echo "[extensions]" >> $HGRCPATH
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
    26
  $ echo "convert = " >> $HGRCPATH
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
    27
  $ echo "graphlog = " >> $HGRCPATH
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
    28
  $ echo "[convert]" >> $HGRCPATH
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
    29
  $ echo "cvsps.cache=0" >> $HGRCPATH
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
    30
  $ echo "cvsps.mergefrom=\[MERGE from (\S+)\]" >> $HGRCPATH
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
    31
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
    32
create cvs repository with one project
8170
6c4fdde87f90 cvsps: add test for merge detection (issue1615).
Greg Ward <greg-hg@gerg.ca>
parents:
diff changeset
    33
12521
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
    34
  $ mkdir cvsrepo
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
    35
  $ cvscall -q -d "$CVSROOT" init
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
    36
  $ mkdir cvsrepo/proj
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
    37
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
    38
populate cvs repository
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
    39
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
    40
  $ cvscall -Q co proj
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
    41
  $ cd proj
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
    42
  $ touch file1
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
    43
  $ cvscall -Q add file1
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
    44
  $ cvsci -m"add file1 on trunk"
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
    45
  cvs commit: Examining .
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
    46
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
    47
create two release branches
8170
6c4fdde87f90 cvsps: add test for merge detection (issue1615).
Greg Ward <greg-hg@gerg.ca>
parents:
diff changeset
    48
12521
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
    49
  $ cvscall -q tag -b v1_0
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
    50
  T file1
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
    51
  $ cvscall -q tag -b v1_1
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
    52
  T file1
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
    53
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
    54
modify file1 on branch v1_0
8170
6c4fdde87f90 cvsps: add test for merge detection (issue1615).
Greg Ward <greg-hg@gerg.ca>
parents:
diff changeset
    55
12521
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
    56
  $ cvscall -Q update -rv1_0
14824
7698c275aa56 tests: restore previous fix for date ambiguity in cvs test
Mads Kiilerich <mads@kiilerich.com>
parents: 14569
diff changeset
    57
  $ sleep 1
12521
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
    58
  $ echo "change" >> file1
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
    59
  $ cvsci -m"add text"
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
    60
  cvs commit: Examining .
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
    61
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
    62
make unrelated change on v1_1
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
    63
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
    64
  $ cvscall -Q update -rv1_1
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
    65
  $ touch unrelated
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
    66
  $ cvscall -Q add unrelated
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
    67
  $ cvsci -m"unrelated change"
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
    68
  cvs commit: Examining .
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
    69
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
    70
merge file1 to v1_1
8170
6c4fdde87f90 cvsps: add test for merge detection (issue1615).
Greg Ward <greg-hg@gerg.ca>
parents:
diff changeset
    71
12521
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
    72
  $ cvscall -Q update -jv1_0
12640
6cc4b14fb76b tests: remove redundant globs
Mads Kiilerich <mads@kiilerich.com>
parents: 12585
diff changeset
    73
  RCS file: $TESTTMP/cvsrepo/proj/file1,v
12521
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
    74
  retrieving revision 1.1
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
    75
  retrieving revision 1.1.2.1
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
    76
  Merging differences between 1.1 and 1.1.2.1 into file1
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
    77
  $ cvsci -m"add text [MERGE from v1_0]"
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
    78
  cvs commit: Examining .
8170
6c4fdde87f90 cvsps: add test for merge detection (issue1615).
Greg Ward <greg-hg@gerg.ca>
parents:
diff changeset
    79
12521
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
    80
merge change to trunk
8170
6c4fdde87f90 cvsps: add test for merge detection (issue1615).
Greg Ward <greg-hg@gerg.ca>
parents:
diff changeset
    81
12521
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
    82
  $ cvscall -Q update -A
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
    83
  $ cvscall -Q update -jv1_1
12640
6cc4b14fb76b tests: remove redundant globs
Mads Kiilerich <mads@kiilerich.com>
parents: 12585
diff changeset
    84
  RCS file: $TESTTMP/cvsrepo/proj/file1,v
12521
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
    85
  retrieving revision 1.1
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
    86
  retrieving revision 1.1.4.1
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
    87
  Merging differences between 1.1 and 1.1.4.1 into file1
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
    88
  $ cvsci -m"add text [MERGE from v1_1]"
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
    89
  cvs commit: Examining .
8170
6c4fdde87f90 cvsps: add test for merge detection (issue1615).
Greg Ward <greg-hg@gerg.ca>
parents:
diff changeset
    90
12521
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
    91
non-merged change on trunk
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
    92
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
    93
  $ echo "foo" > file2
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
    94
  $ cvscall -Q add file2
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
    95
  $ cvsci -m"add file2 on trunk" file2
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
    96
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
    97
this will create rev 1.3
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
    98
change on trunk to backport
8170
6c4fdde87f90 cvsps: add test for merge detection (issue1615).
Greg Ward <greg-hg@gerg.ca>
parents:
diff changeset
    99
12521
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
   100
  $ echo "backport me" >> file1
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
   101
  $ cvsci -m"add other text" file1
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
   102
  $ cvscall log file1
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
   103
  
12640
6cc4b14fb76b tests: remove redundant globs
Mads Kiilerich <mads@kiilerich.com>
parents: 12585
diff changeset
   104
  RCS file: $TESTTMP/cvsrepo/proj/file1,v
12521
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
   105
  Working file: file1
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
   106
  head: 1.3
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
   107
  branch:
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
   108
  locks: strict
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
   109
  access list:
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
   110
  symbolic names:
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
   111
  	v1_1: 1.1.0.4
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
   112
  	v1_0: 1.1.0.2
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
   113
  keyword substitution: kv
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
   114
  total revisions: 5;	selected revisions: 5
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
   115
  description:
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
   116
  ----------------------------
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
   117
  revision 1.3
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
   118
  date: * (glob)
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
   119
  add other text
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
   120
  ----------------------------
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
   121
  revision 1.2
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
   122
  date: * (glob)
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
   123
  add text [MERGE from v1_1]
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
   124
  ----------------------------
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
   125
  revision 1.1
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
   126
  date: * (glob)
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
   127
  branches:  1.1.2;  1.1.4;
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
   128
  add file1 on trunk
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
   129
  ----------------------------
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
   130
  revision 1.1.4.1
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
   131
  date: * (glob)
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
   132
  add text [MERGE from v1_0]
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
   133
  ----------------------------
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
   134
  revision 1.1.2.1
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
   135
  date: * (glob)
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
   136
  add text
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
   137
  =============================================================================
8170
6c4fdde87f90 cvsps: add test for merge detection (issue1615).
Greg Ward <greg-hg@gerg.ca>
parents:
diff changeset
   138
12521
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
   139
XXX how many ways are there to spell "trunk" with CVS?
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
   140
backport trunk change to v1_1
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
   141
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
   142
  $ cvscall -Q update -rv1_1
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
   143
  $ cvscall -Q update -j1.2 -j1.3 file1
12640
6cc4b14fb76b tests: remove redundant globs
Mads Kiilerich <mads@kiilerich.com>
parents: 12585
diff changeset
   144
  RCS file: $TESTTMP/cvsrepo/proj/file1,v
12521
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
   145
  retrieving revision 1.2
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
   146
  retrieving revision 1.3
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
   147
  Merging differences between 1.2 and 1.3 into file1
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
   148
  $ cvsci -m"add other text [MERGE from HEAD]" file1
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
   149
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
   150
fix bug on v1_1, merge to trunk with error
8170
6c4fdde87f90 cvsps: add test for merge detection (issue1615).
Greg Ward <greg-hg@gerg.ca>
parents:
diff changeset
   151
12521
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
   152
  $ cvscall -Q update -rv1_1
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
   153
  $ echo "merge forward" >> file1
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
   154
  $ cvscall -Q tag unmerged
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
   155
  $ cvsci -m"fix file1"
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
   156
  cvs commit: Examining .
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
   157
  $ cvscall -Q update -A
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
   158
  $ cvscall -Q update -junmerged -jv1_1
12640
6cc4b14fb76b tests: remove redundant globs
Mads Kiilerich <mads@kiilerich.com>
parents: 12585
diff changeset
   159
  RCS file: $TESTTMP/cvsrepo/proj/file1,v
12521
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
   160
  retrieving revision 1.1.4.2
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
   161
  retrieving revision 1.1.4.3
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
   162
  Merging differences between 1.1.4.2 and 1.1.4.3 into file1
8170
6c4fdde87f90 cvsps: add test for merge detection (issue1615).
Greg Ward <greg-hg@gerg.ca>
parents:
diff changeset
   163
12521
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
   164
note the typo in the commit log message
8170
6c4fdde87f90 cvsps: add test for merge detection (issue1615).
Greg Ward <greg-hg@gerg.ca>
parents:
diff changeset
   165
12521
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
   166
  $ cvsci -m"fix file1 [MERGE from v1-1]"
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
   167
  cvs commit: Examining .
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
   168
  $ cvs -Q tag -d unmerged
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
   169
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
   170
convert to hg
8170
6c4fdde87f90 cvsps: add test for merge detection (issue1615).
Greg Ward <greg-hg@gerg.ca>
parents:
diff changeset
   171
12521
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
   172
  $ cd ..
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
   173
  $ hg convert proj proj.hg
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
   174
  initializing destination proj.hg repository
12640
6cc4b14fb76b tests: remove redundant globs
Mads Kiilerich <mads@kiilerich.com>
parents: 12585
diff changeset
   175
  connecting to $TESTTMP/cvsrepo
12521
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
   176
  scanning source...
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
   177
  collecting CVS rlog
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
   178
  12 log entries
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
   179
  creating changesets
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
   180
  warning: CVS commit message references non-existent branch 'v1-1':
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
   181
  fix file1 [MERGE from v1-1]
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
   182
  10 changeset entries
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
   183
  sorting...
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
   184
  converting...
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
   185
  9 add file1 on trunk
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
   186
  8 add text
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
   187
  7 unrelated change
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
   188
  6 add text [MERGE from v1_0]
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
   189
  5 add text [MERGE from v1_1]
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
   190
  4 add file2 on trunk
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
   191
  3 add other text
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
   192
  2 add other text [MERGE from HEAD]
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
   193
  1 fix file1
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
   194
  0 fix file1 [MERGE from v1-1]
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
   195
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
   196
complete log
8170
6c4fdde87f90 cvsps: add test for merge detection (issue1615).
Greg Ward <greg-hg@gerg.ca>
parents:
diff changeset
   197
12521
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
   198
  $ template="{rev}: '{branches}' {desc}\n"
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
   199
  $ hg -R proj.hg log --template="$template"
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
   200
  9: '' fix file1 [MERGE from v1-1]
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
   201
  8: 'v1_1' fix file1
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
   202
  7: 'v1_1' add other text [MERGE from HEAD]
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
   203
  6: '' add other text
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
   204
  5: '' add file2 on trunk
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
   205
  4: '' add text [MERGE from v1_1]
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
   206
  3: 'v1_1' add text [MERGE from v1_0]
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
   207
  2: 'v1_1' unrelated change
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
   208
  1: 'v1_0' add text
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
   209
  0: '' add file1 on trunk
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
   210
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
   211
graphical log
8171
4e5bd9b97bb3 cvsps: fix crash when log message refers to non-existent branch (issue1615).
Greg Ward <greg-hg@gerg.ca>
parents: 8170
diff changeset
   212
12521
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
   213
  $ hg -R proj.hg glog --template="$template"
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
   214
  o  9: '' fix file1 [MERGE from v1-1]
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
   215
  |
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
   216
  | o  8: 'v1_1' fix file1
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
   217
  | |
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
   218
  | o  7: 'v1_1' add other text [MERGE from HEAD]
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
   219
  |/|
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
   220
  o |  6: '' add other text
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
   221
  | |
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
   222
  o |  5: '' add file2 on trunk
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
   223
  | |
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
   224
  o |  4: '' add text [MERGE from v1_1]
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
   225
  |\|
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
   226
  | o    3: 'v1_1' add text [MERGE from v1_0]
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
   227
  | |\
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
   228
  +---o  2: 'v1_1' unrelated change
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
   229
  | |
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
   230
  | o  1: 'v1_0' add text
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
   231
  |/
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
   232
  o  0: '' add file1 on trunk
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
   233