tests/test-convert-cvs-detectmerge.t
author Gregory Szorc <gregory.szorc@gmail.com>
Wed, 12 Sep 2018 11:02:16 -0700
changeset 39703 bfeab472e3c0
parent 23675 96529f81e2e9
child 44722 e5e5ee2b60e4
permissions -rw-r--r--
localrepo: create new function for instantiating a local repo object Today, there is a single local repository class - localrepository. Its __init__ is responsible for loading the .hg/requires file and taking different actions depending on what is present. In addition, extensions may define a "reposetup" function that monkeypatches constructed repository instances, often by implementing a derived type and changing the __class__ of the repo instance. Work around alternate storage backends and partial clone has made it clear to me that shoehorning all this logic into __init__ and operating on an existing instance is too convoluted. For example, localrepository assumes revlog storage and swapping in non-revlog storage requires overriding e.g. file() to return something that isn't a revlog. I've authored various patches that either: a) teach various methods (like file()) about different states and taking the appropriate code path at run-time b) create methods/attributes/callables used for instantiating things and populating these in __init__ "a" incurs run-time performance penalties and makes code more complicated since various functions have a bunch of "if storage is X" branches. "b" makes localrepository quickly explode in complexity. My plan for tackling this problem is to make the local repository type more dynamic. Instead of a static localrepository class/type that supports all of the local repository configurations (revlogs vs other, revlogs with ellipsis, revlog v1 versus revlog v2, etc), we'll dynamically construct a type providing the implementations that are needed for the repository on disk, derived from the .hg/requires file and configuration options. The constructed repository type will be specialized and methods won't need to be taught about different implementations nor overloaded. We may also leverage this functionality for building types that don't implement all attributes. For example, the "intents" feature allows commands to declare that they are read only. By dynamically constructing a repository type, we could return a repository instance with no attributes related to mutating the repository. This could include things like a "changelog" property implementation that doesn't check whether it needs to invalidate the hidden revisions set on every access. This commit establishes a function for building a local repository instance. Future commits will start moving functionality from localrepository.__init__ to this function. Then we'll start dynamically changing the returned type depending on options that are present. This change may seem radical. But it should be fully compatible with the reposetup() model - at least for now. Differential Revision: https://phab.mercurial-scm.org/D4563
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
22046
7a9cbb315d84 tests: replace exit 80 with #require
Matt Mackall <mpm@selenic.com>
parents: 20117
diff changeset
     1
#require cvs
7a9cbb315d84 tests: replace exit 80 with #require
Matt Mackall <mpm@selenic.com>
parents: 20117
diff changeset
     2
12521
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
     3
Test config convert.cvsps.mergefrom config setting.
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
     4
(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
     5
Requires builtin cvsps.
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
     6
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
     7
  $ CVSROOT=`pwd`/cvsrepo
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
     8
  $ export CVSROOT
8170
6c4fdde87f90 cvsps: add test for merge detection (issue1615).
Greg Ward <greg-hg@gerg.ca>
parents:
diff changeset
     9
12521
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
    10
  $ cvscall()
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
    11
  > {
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
    12
  >     cvs -f "$@"
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
    13
  > }
8170
6c4fdde87f90 cvsps: add test for merge detection (issue1615).
Greg Ward <greg-hg@gerg.ca>
parents:
diff changeset
    14
12521
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
    15
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
    16
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
    17
12521
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
    18
  $ cvsci()
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
    19
  > {
14569
017ab404e588 tests: fix up date ambiguity in cvs test
Matt Mackall <mpm@selenic.com>
parents: 12640
diff changeset
    20
  >     sleep 1
12521
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
    21
  >     cvs -f ci "$@" > /dev/null
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
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
    24
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
    25
23172
e955549cd045 tests: write hgrc of more than two lines by using shell heredoc
Yuya Nishihara <yuya@tcha.org>
parents: 22046
diff changeset
    26
  $ cat <<EOF >> $HGRCPATH
e955549cd045 tests: write hgrc of more than two lines by using shell heredoc
Yuya Nishihara <yuya@tcha.org>
parents: 22046
diff changeset
    27
  > [extensions]
e955549cd045 tests: write hgrc of more than two lines by using shell heredoc
Yuya Nishihara <yuya@tcha.org>
parents: 22046
diff changeset
    28
  > convert =
e955549cd045 tests: write hgrc of more than two lines by using shell heredoc
Yuya Nishihara <yuya@tcha.org>
parents: 22046
diff changeset
    29
  > [convert]
e955549cd045 tests: write hgrc of more than two lines by using shell heredoc
Yuya Nishihara <yuya@tcha.org>
parents: 22046
diff changeset
    30
  > cvsps.cache = 0
e955549cd045 tests: write hgrc of more than two lines by using shell heredoc
Yuya Nishihara <yuya@tcha.org>
parents: 22046
diff changeset
    31
  > cvsps.mergefrom = \[MERGE from (\S+)\]
e955549cd045 tests: write hgrc of more than two lines by using shell heredoc
Yuya Nishihara <yuya@tcha.org>
parents: 22046
diff changeset
    32
  > EOF
12521
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
    33
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
    34
create cvs repository with one project
8170
6c4fdde87f90 cvsps: add test for merge detection (issue1615).
Greg Ward <greg-hg@gerg.ca>
parents:
diff changeset
    35
12521
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
    36
  $ cvscall -q -d "$CVSROOT" init
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
    37
  $ mkdir cvsrepo/proj
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
    38
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
    39
populate cvs repository
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
    40
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
    41
  $ cvscall -Q co proj
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
    42
  $ cd proj
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
    43
  $ touch file1
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
    44
  $ cvscall -Q add file1
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
    45
  $ cvsci -m"add file1 on trunk"
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
    46
  cvs commit: Examining .
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
    47
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
    48
create two release branches
8170
6c4fdde87f90 cvsps: add test for merge detection (issue1615).
Greg Ward <greg-hg@gerg.ca>
parents:
diff changeset
    49
12521
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
    50
  $ cvscall -q tag -b v1_0
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
    51
  T file1
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
    52
  $ cvscall -q tag -b v1_1
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
    53
  T file1
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
    54
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
    55
modify file1 on branch v1_0
8170
6c4fdde87f90 cvsps: add test for merge detection (issue1615).
Greg Ward <greg-hg@gerg.ca>
parents:
diff changeset
    56
12521
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
    57
  $ 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
    58
  $ sleep 1
12521
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
    59
  $ echo "change" >> file1
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
    60
  $ cvsci -m"add text"
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
    61
  cvs commit: Examining .
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
    62
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
    63
make unrelated change on v1_1
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
    64
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
    65
  $ cvscall -Q update -rv1_1
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
    66
  $ touch unrelated
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
    67
  $ cvscall -Q add unrelated
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
    68
  $ cvsci -m"unrelated change"
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
    69
  cvs commit: Examining .
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
    70
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
    71
merge file1 to v1_1
8170
6c4fdde87f90 cvsps: add test for merge detection (issue1615).
Greg Ward <greg-hg@gerg.ca>
parents:
diff changeset
    72
12521
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
    73
  $ cvscall -Q update -jv1_0
12640
6cc4b14fb76b tests: remove redundant globs
Mads Kiilerich <mads@kiilerich.com>
parents: 12585
diff changeset
    74
  RCS file: $TESTTMP/cvsrepo/proj/file1,v
12521
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
    75
  retrieving revision 1.1
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
    76
  retrieving revision 1.1.2.1
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
    77
  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
    78
  $ cvsci -m"add text [MERGE from v1_0]"
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
    79
  cvs commit: Examining .
8170
6c4fdde87f90 cvsps: add test for merge detection (issue1615).
Greg Ward <greg-hg@gerg.ca>
parents:
diff changeset
    80
12521
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
    81
merge change to trunk
8170
6c4fdde87f90 cvsps: add test for merge detection (issue1615).
Greg Ward <greg-hg@gerg.ca>
parents:
diff changeset
    82
12521
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
    83
  $ cvscall -Q update -A
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
    84
  $ cvscall -Q update -jv1_1
12640
6cc4b14fb76b tests: remove redundant globs
Mads Kiilerich <mads@kiilerich.com>
parents: 12585
diff changeset
    85
  RCS file: $TESTTMP/cvsrepo/proj/file1,v
12521
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
    86
  retrieving revision 1.1
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
    87
  retrieving revision 1.1.4.1
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
    88
  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
    89
  $ cvsci -m"add text [MERGE from v1_1]"
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
    90
  cvs commit: Examining .
8170
6c4fdde87f90 cvsps: add test for merge detection (issue1615).
Greg Ward <greg-hg@gerg.ca>
parents:
diff changeset
    91
12521
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
    92
non-merged change on trunk
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
    93
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
    94
  $ echo "foo" > file2
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
    95
  $ cvscall -Q add file2
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
    96
  $ cvsci -m"add file2 on trunk" file2
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
    97
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
    98
this will create rev 1.3
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
    99
change on trunk to backport
8170
6c4fdde87f90 cvsps: add test for merge detection (issue1615).
Greg Ward <greg-hg@gerg.ca>
parents:
diff changeset
   100
12521
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
   101
  $ echo "backport me" >> file1
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
   102
  $ cvsci -m"add other text" file1
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
   103
  $ cvscall log file1
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
   104
  
12640
6cc4b14fb76b tests: remove redundant globs
Mads Kiilerich <mads@kiilerich.com>
parents: 12585
diff changeset
   105
  RCS file: $TESTTMP/cvsrepo/proj/file1,v
12521
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
   106
  Working file: file1
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
   107
  head: 1.3
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
   108
  branch:
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
   109
  locks: strict
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
   110
  access list:
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
   111
  symbolic names:
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
   112
  	v1_1: 1.1.0.4
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
   113
  	v1_0: 1.1.0.2
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
   114
  keyword substitution: kv
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
   115
  total revisions: 5;	selected revisions: 5
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
   116
  description:
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
   117
  ----------------------------
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
   118
  revision 1.3
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
   119
  date: * (glob)
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
   120
  add other text
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
   121
  ----------------------------
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
   122
  revision 1.2
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
   123
  date: * (glob)
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
   124
  add text [MERGE from v1_1]
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
   125
  ----------------------------
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
   126
  revision 1.1
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
   127
  date: * (glob)
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
   128
  branches:  1.1.2;  1.1.4;
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
   129
  add file1 on trunk
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
   130
  ----------------------------
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
   131
  revision 1.1.4.1
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
   132
  date: * (glob)
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
   133
  add text [MERGE from v1_0]
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
   134
  ----------------------------
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
   135
  revision 1.1.2.1
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
   136
  date: * (glob)
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
   137
  add text
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
   138
  =============================================================================
8170
6c4fdde87f90 cvsps: add test for merge detection (issue1615).
Greg Ward <greg-hg@gerg.ca>
parents:
diff changeset
   139
12521
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
   140
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
   141
backport trunk change to v1_1
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
   142
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
   143
  $ cvscall -Q update -rv1_1
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
   144
  $ cvscall -Q update -j1.2 -j1.3 file1
12640
6cc4b14fb76b tests: remove redundant globs
Mads Kiilerich <mads@kiilerich.com>
parents: 12585
diff changeset
   145
  RCS file: $TESTTMP/cvsrepo/proj/file1,v
12521
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
   146
  retrieving revision 1.2
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
   147
  retrieving revision 1.3
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
   148
  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
   149
  $ 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
   150
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
   151
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
   152
12521
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
   153
  $ cvscall -Q update -rv1_1
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
   154
  $ echo "merge forward" >> file1
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
   155
  $ cvscall -Q tag unmerged
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
   156
  $ cvsci -m"fix file1"
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
   157
  cvs commit: Examining .
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
   158
  $ cvscall -Q update -A
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
   159
  $ cvscall -Q update -junmerged -jv1_1
12640
6cc4b14fb76b tests: remove redundant globs
Mads Kiilerich <mads@kiilerich.com>
parents: 12585
diff changeset
   160
  RCS file: $TESTTMP/cvsrepo/proj/file1,v
12521
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
   161
  retrieving revision 1.1.4.2
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
   162
  retrieving revision 1.1.4.3
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
   163
  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
   164
12521
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
   165
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
   166
12521
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
   167
  $ cvsci -m"fix file1 [MERGE from v1-1]"
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
   168
  cvs commit: Examining .
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
   169
  $ cvs -Q tag -d unmerged
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
   170
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
   171
convert to hg
8170
6c4fdde87f90 cvsps: add test for merge detection (issue1615).
Greg Ward <greg-hg@gerg.ca>
parents:
diff changeset
   172
12521
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
   173
  $ cd ..
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
   174
  $ hg convert proj proj.hg
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
   175
  initializing destination proj.hg repository
12640
6cc4b14fb76b tests: remove redundant globs
Mads Kiilerich <mads@kiilerich.com>
parents: 12585
diff changeset
   176
  connecting to $TESTTMP/cvsrepo
12521
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
   177
  scanning source...
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
   178
  collecting CVS rlog
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
   179
  12 log entries
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
   180
  creating changesets
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
   181
  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
   182
  fix file1 [MERGE from v1-1]
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
   183
  10 changeset entries
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
   184
  sorting...
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
   185
  converting...
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
   186
  9 add file1 on trunk
18376
13d73bf6be29 convert: make toposort order stable when multiple orderings are possible
Mads Kiilerich <mads@kiilerich.com>
parents: 14824
diff changeset
   187
  8 unrelated change
13d73bf6be29 convert: make toposort order stable when multiple orderings are possible
Mads Kiilerich <mads@kiilerich.com>
parents: 14824
diff changeset
   188
  7 add text
12521
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
   189
  6 add text [MERGE from v1_0]
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
   190
  5 add text [MERGE from v1_1]
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
   191
  4 add file2 on trunk
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
   192
  3 add other text
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
   193
  2 add other text [MERGE from HEAD]
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
   194
  1 fix file1
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
   195
  0 fix file1 [MERGE from v1-1]
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
   196
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
   197
complete log
8170
6c4fdde87f90 cvsps: add test for merge detection (issue1615).
Greg Ward <greg-hg@gerg.ca>
parents:
diff changeset
   198
12521
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
   199
  $ template="{rev}: '{branches}' {desc}\n"
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
   200
  $ hg -R proj.hg log --template="$template"
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
   201
  9: '' fix file1 [MERGE from v1-1]
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
   202
  8: 'v1_1' fix file1
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
   203
  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
   204
  6: '' add other text
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
   205
  5: '' add file2 on trunk
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
   206
  4: '' add text [MERGE from v1_1]
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
   207
  3: 'v1_1' add text [MERGE from v1_0]
18376
13d73bf6be29 convert: make toposort order stable when multiple orderings are possible
Mads Kiilerich <mads@kiilerich.com>
parents: 14824
diff changeset
   208
  2: 'v1_0' add text
13d73bf6be29 convert: make toposort order stable when multiple orderings are possible
Mads Kiilerich <mads@kiilerich.com>
parents: 14824
diff changeset
   209
  1: 'v1_1' unrelated change
12521
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
   210
  0: '' add file1 on trunk
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
   211
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
   212
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
   213
20117
aa9385f983fa tests: don't load unnecessary graphlog extension
Martin Geisler <martin@geisler.net>
parents: 18376
diff changeset
   214
  $ hg -R proj.hg log -G --template="$template"
12521
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
   215
  o  9: '' fix file1 [MERGE from v1-1]
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
   216
  |
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
   217
  | o  8: 'v1_1' fix file1
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
   218
  | |
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
   219
  | 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
   220
  |/|
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
   221
  o |  6: '' add other text
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
   222
  | |
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
   223
  o |  5: '' add file2 on trunk
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
   224
  | |
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
   225
  o |  4: '' add text [MERGE from v1_1]
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
   226
  |\|
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
   227
  | 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
   228
  | |\
18376
13d73bf6be29 convert: make toposort order stable when multiple orderings are possible
Mads Kiilerich <mads@kiilerich.com>
parents: 14824
diff changeset
   229
  +---o  2: 'v1_0' add text
12521
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
   230
  | |
18376
13d73bf6be29 convert: make toposort order stable when multiple orderings are possible
Mads Kiilerich <mads@kiilerich.com>
parents: 14824
diff changeset
   231
  | o  1: 'v1_1' unrelated change
12521
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
   232
  |/
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
   233
  o  0: '' add file1 on trunk
539480ce1c89 tests: unify test-convert-cvs-detectmerge
Matt Mackall <mpm@selenic.com>
parents: 9543
diff changeset
   234