tests/test-merge-internal-tools-pattern.t
author Gregory Szorc <gregory.szorc@gmail.com>
Fri, 13 Jan 2017 20:16:56 -0800
changeset 30818 4c0a5a256ae8
parent 26071 ff12a6c63c3d
child 35704 41ef02ba329b
permissions -rw-r--r--
localrepo: experimental support for non-zlib revlog compression The final part of integrating the compression manager APIs into revlog storage is the plumbing for repositories to advertise they are using non-zlib storage and for revlogs to instantiate a non-zlib compression engine. The main intent of the compression manager work was to zstd all of the things. Adding zstd to revlogs has proved to be more involved than other places because revlogs are... special. Very small inputs and the use of delta chains (which are themselves a form of compression) are a completely different use case from streaming compression, which bundles and the wire protocol employ. I've conducted numerous experiments with zstd in revlogs and have yet to formalize compression settings and a storage architecture that I'm confident I won't regret later. In other words, I'm not yet ready to commit to a new mechanism for using zstd - or any other compression format - in revlogs. That being said, having some support for zstd (and other compression formats) in revlogs in core is beneficial. It can allow others to conduct experiments. This patch introduces *highly experimental* support for non-zlib compression formats in revlogs. Introduced is a config option to control which compression engine to use. Also introduced is a namespace of "exp-compression-*" requirements to denote support for non-zlib compression in revlogs. I've prefixed the namespace with "exp-" (short for "experimental") because I'm not confident of the requirements "schema" and in no way want to give the illusion of supporting these requirements in the future. I fully intend to drop support for these requirements once we figure out what we're doing with zstd in revlogs. A good portion of the patch is teaching the requirements system about registered compression engines and passing the requested compression engine as an opener option so revlogs can instantiate the proper compression engine for new operations. That's a verbose way of saying "we can now use zstd in revlogs!" On an `hg pull` conversion of the mozilla-unified repo with no extra redelta settings (like aggressivemergedeltas), we can see the impact of zstd vs zlib in revlogs: $ hg perfrevlogchunks -c ! chunk ! wall 2.032052 comb 2.040000 user 1.990000 sys 0.050000 (best of 5) ! wall 1.866360 comb 1.860000 user 1.820000 sys 0.040000 (best of 6) ! chunk batch ! wall 1.877261 comb 1.870000 user 1.860000 sys 0.010000 (best of 6) ! wall 1.705410 comb 1.710000 user 1.690000 sys 0.020000 (best of 6) $ hg perfrevlogchunks -m ! chunk ! wall 2.721427 comb 2.720000 user 2.640000 sys 0.080000 (best of 4) ! wall 2.035076 comb 2.030000 user 1.950000 sys 0.080000 (best of 5) ! chunk batch ! wall 2.614561 comb 2.620000 user 2.580000 sys 0.040000 (best of 4) ! wall 1.910252 comb 1.910000 user 1.880000 sys 0.030000 (best of 6) $ hg perfrevlog -c -d 1 ! wall 4.812885 comb 4.820000 user 4.800000 sys 0.020000 (best of 3) ! wall 4.699621 comb 4.710000 user 4.700000 sys 0.010000 (best of 3) $ hg perfrevlog -m -d 1000 ! wall 34.252800 comb 34.250000 user 33.730000 sys 0.520000 (best of 3) ! wall 24.094999 comb 24.090000 user 23.320000 sys 0.770000 (best of 3) Only modest wins for the changelog. But manifest reading is significantly faster. What's going on? One reason might be data volume. zstd decompresses faster. So given more bytes, it will put more distance between it and zlib. Another reason is size. In the current design, zstd revlogs are *larger*: debugcreatestreamclonebundle (size in bytes) zlib: 1,638,852,492 zstd: 1,680,601,332 I haven't investigated this fully, but I reckon a significant cause of larger revlogs is that the zstd frame/header has more bytes than zlib's. For very small inputs or data that doesn't compress well, we'll tend to store more uncompressed chunks than with zlib (because the compressed size isn't smaller than original). This will make revlog reading faster because it is doing less decompression. Moving on to bundle performance: $ hg bundle -a -t none-v2 (total CPU time) zlib: 102.79s zstd: 97.75s So, marginal CPU decrease for reading all chunks in all revlogs (this is somewhat disappointing). $ hg bundle -a -t <engine>-v2 (total CPU time) zlib: 191.59s zstd: 115.36s This last test effectively measures the difference between zlib->zlib and zstd->zstd for revlogs to bundle. This is a rough approximation of what a server does during `hg clone`. There are some promising results for zstd. But not enough for me to feel comfortable advertising it to users. We'll get there...
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
26071
ff12a6c63c3d filemerge: add 'union' merge to internal merge tool
Erik Huelsmann <ehuels@gmail.com>
parents: 12328
diff changeset
     1
Make sure that the internal merge tools (internal:fail, internal:local,
ff12a6c63c3d filemerge: add 'union' merge to internal merge tool
Erik Huelsmann <ehuels@gmail.com>
parents: 12328
diff changeset
     2
internal:union and internal:other) are used when matched by a
ff12a6c63c3d filemerge: add 'union' merge to internal merge tool
Erik Huelsmann <ehuels@gmail.com>
parents: 12328
diff changeset
     3
merge-pattern in hgrc
6521
a3668330f14a test that internal merge tools are used when set for a merge-pattern in hgrc
Dov Feldstern <dfeldstern@fastimap.com>
parents:
diff changeset
     4
12257
470e0b1ddc6e tests: unify test-merge-internal-tools-pattern
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
     5
Make sure HGMERGE doesn't interfere with the test:
470e0b1ddc6e tests: unify test-merge-internal-tools-pattern
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
     6
470e0b1ddc6e tests: unify test-merge-internal-tools-pattern
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
     7
  $ unset HGMERGE
470e0b1ddc6e tests: unify test-merge-internal-tools-pattern
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
     8
470e0b1ddc6e tests: unify test-merge-internal-tools-pattern
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
     9
  $ hg init
470e0b1ddc6e tests: unify test-merge-internal-tools-pattern
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    10
470e0b1ddc6e tests: unify test-merge-internal-tools-pattern
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    11
Initial file contents:
6521
a3668330f14a test that internal merge tools are used when set for a merge-pattern in hgrc
Dov Feldstern <dfeldstern@fastimap.com>
parents:
diff changeset
    12
12257
470e0b1ddc6e tests: unify test-merge-internal-tools-pattern
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    13
  $ echo "line 1" > f
470e0b1ddc6e tests: unify test-merge-internal-tools-pattern
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    14
  $ echo "line 2" >> f
470e0b1ddc6e tests: unify test-merge-internal-tools-pattern
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    15
  $ echo "line 3" >> f
470e0b1ddc6e tests: unify test-merge-internal-tools-pattern
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    16
  $ hg ci -Am "revision 0"
470e0b1ddc6e tests: unify test-merge-internal-tools-pattern
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    17
  adding f
470e0b1ddc6e tests: unify test-merge-internal-tools-pattern
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    18
470e0b1ddc6e tests: unify test-merge-internal-tools-pattern
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    19
  $ cat f
470e0b1ddc6e tests: unify test-merge-internal-tools-pattern
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    20
  line 1
470e0b1ddc6e tests: unify test-merge-internal-tools-pattern
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    21
  line 2
470e0b1ddc6e tests: unify test-merge-internal-tools-pattern
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    22
  line 3
470e0b1ddc6e tests: unify test-merge-internal-tools-pattern
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    23
470e0b1ddc6e tests: unify test-merge-internal-tools-pattern
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    24
Branch 1: editing line 1:
470e0b1ddc6e tests: unify test-merge-internal-tools-pattern
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    25
470e0b1ddc6e tests: unify test-merge-internal-tools-pattern
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    26
  $ sed 's/line 1/first line/' f > f.new
470e0b1ddc6e tests: unify test-merge-internal-tools-pattern
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    27
  $ mv f.new f
470e0b1ddc6e tests: unify test-merge-internal-tools-pattern
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    28
  $ hg ci -Am "edited first line"
6521
a3668330f14a test that internal merge tools are used when set for a merge-pattern in hgrc
Dov Feldstern <dfeldstern@fastimap.com>
parents:
diff changeset
    29
12257
470e0b1ddc6e tests: unify test-merge-internal-tools-pattern
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    30
Branch 2: editing line 3:
470e0b1ddc6e tests: unify test-merge-internal-tools-pattern
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    31
470e0b1ddc6e tests: unify test-merge-internal-tools-pattern
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    32
  $ hg update 0
470e0b1ddc6e tests: unify test-merge-internal-tools-pattern
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    33
  1 files updated, 0 files merged, 0 files removed, 0 files unresolved
470e0b1ddc6e tests: unify test-merge-internal-tools-pattern
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    34
  $ sed 's/line 3/third line/' f > f.new
470e0b1ddc6e tests: unify test-merge-internal-tools-pattern
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    35
  $ mv f.new f
470e0b1ddc6e tests: unify test-merge-internal-tools-pattern
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    36
  $ hg ci -Am "edited third line"
470e0b1ddc6e tests: unify test-merge-internal-tools-pattern
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    37
  created new head
470e0b1ddc6e tests: unify test-merge-internal-tools-pattern
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    38
470e0b1ddc6e tests: unify test-merge-internal-tools-pattern
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    39
Merge using internal:fail tool:
470e0b1ddc6e tests: unify test-merge-internal-tools-pattern
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    40
470e0b1ddc6e tests: unify test-merge-internal-tools-pattern
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    41
  $ echo "[merge-patterns]" > .hg/hgrc
470e0b1ddc6e tests: unify test-merge-internal-tools-pattern
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    42
  $ echo "* = internal:fail" >> .hg/hgrc
6521
a3668330f14a test that internal merge tools are used when set for a merge-pattern in hgrc
Dov Feldstern <dfeldstern@fastimap.com>
parents:
diff changeset
    43
12257
470e0b1ddc6e tests: unify test-merge-internal-tools-pattern
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    44
  $ hg merge
470e0b1ddc6e tests: unify test-merge-internal-tools-pattern
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    45
  0 files updated, 0 files merged, 0 files removed, 1 files unresolved
12314
f2daa6ab514a merge: suggest 'hg up -C .' for discarding changes, not 'hg up -C'
Brodie Rao <brodie@bitheap.org>
parents: 12257
diff changeset
    46
  use 'hg resolve' to retry unresolved file merges or 'hg update -C .' to abandon
12316
4134686b83e1 tests: add exit codes to unified tests
Matt Mackall <mpm@selenic.com>
parents: 12314
diff changeset
    47
  [1]
12257
470e0b1ddc6e tests: unify test-merge-internal-tools-pattern
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    48
470e0b1ddc6e tests: unify test-merge-internal-tools-pattern
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    49
  $ cat f
470e0b1ddc6e tests: unify test-merge-internal-tools-pattern
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    50
  line 1
470e0b1ddc6e tests: unify test-merge-internal-tools-pattern
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    51
  line 2
470e0b1ddc6e tests: unify test-merge-internal-tools-pattern
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    52
  third line
470e0b1ddc6e tests: unify test-merge-internal-tools-pattern
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    53
470e0b1ddc6e tests: unify test-merge-internal-tools-pattern
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    54
  $ hg stat
470e0b1ddc6e tests: unify test-merge-internal-tools-pattern
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    55
  M f
470e0b1ddc6e tests: unify test-merge-internal-tools-pattern
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    56
470e0b1ddc6e tests: unify test-merge-internal-tools-pattern
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    57
Merge using internal:local tool:
6521
a3668330f14a test that internal merge tools are used when set for a merge-pattern in hgrc
Dov Feldstern <dfeldstern@fastimap.com>
parents:
diff changeset
    58
12257
470e0b1ddc6e tests: unify test-merge-internal-tools-pattern
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    59
  $ hg update -C 2
470e0b1ddc6e tests: unify test-merge-internal-tools-pattern
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    60
  1 files updated, 0 files merged, 0 files removed, 0 files unresolved
470e0b1ddc6e tests: unify test-merge-internal-tools-pattern
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    61
  $ sed 's/internal:fail/internal:local/' .hg/hgrc > .hg/hgrc.new
470e0b1ddc6e tests: unify test-merge-internal-tools-pattern
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    62
  $ mv .hg/hgrc.new .hg/hgrc
470e0b1ddc6e tests: unify test-merge-internal-tools-pattern
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    63
470e0b1ddc6e tests: unify test-merge-internal-tools-pattern
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    64
  $ hg merge
470e0b1ddc6e tests: unify test-merge-internal-tools-pattern
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    65
  0 files updated, 1 files merged, 0 files removed, 0 files unresolved
470e0b1ddc6e tests: unify test-merge-internal-tools-pattern
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    66
  (branch merge, don't forget to commit)
470e0b1ddc6e tests: unify test-merge-internal-tools-pattern
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    67
470e0b1ddc6e tests: unify test-merge-internal-tools-pattern
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    68
  $ cat f
470e0b1ddc6e tests: unify test-merge-internal-tools-pattern
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    69
  line 1
470e0b1ddc6e tests: unify test-merge-internal-tools-pattern
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    70
  line 2
470e0b1ddc6e tests: unify test-merge-internal-tools-pattern
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    71
  third line
6521
a3668330f14a test that internal merge tools are used when set for a merge-pattern in hgrc
Dov Feldstern <dfeldstern@fastimap.com>
parents:
diff changeset
    72
12257
470e0b1ddc6e tests: unify test-merge-internal-tools-pattern
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    73
  $ hg stat
470e0b1ddc6e tests: unify test-merge-internal-tools-pattern
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    74
  M f
470e0b1ddc6e tests: unify test-merge-internal-tools-pattern
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    75
470e0b1ddc6e tests: unify test-merge-internal-tools-pattern
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    76
Merge using internal:other tool:
470e0b1ddc6e tests: unify test-merge-internal-tools-pattern
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    77
470e0b1ddc6e tests: unify test-merge-internal-tools-pattern
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    78
  $ hg update -C 2
470e0b1ddc6e tests: unify test-merge-internal-tools-pattern
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    79
  1 files updated, 0 files merged, 0 files removed, 0 files unresolved
470e0b1ddc6e tests: unify test-merge-internal-tools-pattern
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    80
  $ sed 's/internal:local/internal:other/' .hg/hgrc > .hg/hgrc.new
470e0b1ddc6e tests: unify test-merge-internal-tools-pattern
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    81
  $ mv .hg/hgrc.new .hg/hgrc
470e0b1ddc6e tests: unify test-merge-internal-tools-pattern
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    82
470e0b1ddc6e tests: unify test-merge-internal-tools-pattern
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    83
  $ hg merge
470e0b1ddc6e tests: unify test-merge-internal-tools-pattern
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    84
  0 files updated, 1 files merged, 0 files removed, 0 files unresolved
470e0b1ddc6e tests: unify test-merge-internal-tools-pattern
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    85
  (branch merge, don't forget to commit)
6521
a3668330f14a test that internal merge tools are used when set for a merge-pattern in hgrc
Dov Feldstern <dfeldstern@fastimap.com>
parents:
diff changeset
    86
12257
470e0b1ddc6e tests: unify test-merge-internal-tools-pattern
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    87
  $ cat f
470e0b1ddc6e tests: unify test-merge-internal-tools-pattern
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    88
  first line
470e0b1ddc6e tests: unify test-merge-internal-tools-pattern
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    89
  line 2
470e0b1ddc6e tests: unify test-merge-internal-tools-pattern
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    90
  line 3
470e0b1ddc6e tests: unify test-merge-internal-tools-pattern
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    91
470e0b1ddc6e tests: unify test-merge-internal-tools-pattern
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    92
  $ hg stat
470e0b1ddc6e tests: unify test-merge-internal-tools-pattern
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    93
  M f
470e0b1ddc6e tests: unify test-merge-internal-tools-pattern
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    94
470e0b1ddc6e tests: unify test-merge-internal-tools-pattern
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    95
Merge using default tool:
470e0b1ddc6e tests: unify test-merge-internal-tools-pattern
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    96
470e0b1ddc6e tests: unify test-merge-internal-tools-pattern
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    97
  $ hg update -C 2
470e0b1ddc6e tests: unify test-merge-internal-tools-pattern
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    98
  1 files updated, 0 files merged, 0 files removed, 0 files unresolved
470e0b1ddc6e tests: unify test-merge-internal-tools-pattern
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
    99
  $ rm .hg/hgrc
6521
a3668330f14a test that internal merge tools are used when set for a merge-pattern in hgrc
Dov Feldstern <dfeldstern@fastimap.com>
parents:
diff changeset
   100
12257
470e0b1ddc6e tests: unify test-merge-internal-tools-pattern
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
   101
  $ hg merge
470e0b1ddc6e tests: unify test-merge-internal-tools-pattern
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
   102
  merging f
470e0b1ddc6e tests: unify test-merge-internal-tools-pattern
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
   103
  0 files updated, 1 files merged, 0 files removed, 0 files unresolved
470e0b1ddc6e tests: unify test-merge-internal-tools-pattern
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
   104
  (branch merge, don't forget to commit)
6521
a3668330f14a test that internal merge tools are used when set for a merge-pattern in hgrc
Dov Feldstern <dfeldstern@fastimap.com>
parents:
diff changeset
   105
12257
470e0b1ddc6e tests: unify test-merge-internal-tools-pattern
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
   106
  $ cat f
470e0b1ddc6e tests: unify test-merge-internal-tools-pattern
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
   107
  first line
470e0b1ddc6e tests: unify test-merge-internal-tools-pattern
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
   108
  line 2
470e0b1ddc6e tests: unify test-merge-internal-tools-pattern
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
   109
  third line
470e0b1ddc6e tests: unify test-merge-internal-tools-pattern
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
   110
470e0b1ddc6e tests: unify test-merge-internal-tools-pattern
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
   111
  $ hg stat
470e0b1ddc6e tests: unify test-merge-internal-tools-pattern
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
   112
  M f
470e0b1ddc6e tests: unify test-merge-internal-tools-pattern
Adrian Buehlmann <adrian@cadifra.com>
parents: 12156
diff changeset
   113
26071
ff12a6c63c3d filemerge: add 'union' merge to internal merge tool
Erik Huelsmann <ehuels@gmail.com>
parents: 12328
diff changeset
   114
Merge using internal:union tool:
ff12a6c63c3d filemerge: add 'union' merge to internal merge tool
Erik Huelsmann <ehuels@gmail.com>
parents: 12328
diff changeset
   115
ff12a6c63c3d filemerge: add 'union' merge to internal merge tool
Erik Huelsmann <ehuels@gmail.com>
parents: 12328
diff changeset
   116
  $ hg update -C 2
ff12a6c63c3d filemerge: add 'union' merge to internal merge tool
Erik Huelsmann <ehuels@gmail.com>
parents: 12328
diff changeset
   117
  1 files updated, 0 files merged, 0 files removed, 0 files unresolved
ff12a6c63c3d filemerge: add 'union' merge to internal merge tool
Erik Huelsmann <ehuels@gmail.com>
parents: 12328
diff changeset
   118
ff12a6c63c3d filemerge: add 'union' merge to internal merge tool
Erik Huelsmann <ehuels@gmail.com>
parents: 12328
diff changeset
   119
  $ echo "line 4a" >>f
ff12a6c63c3d filemerge: add 'union' merge to internal merge tool
Erik Huelsmann <ehuels@gmail.com>
parents: 12328
diff changeset
   120
  $ hg ci -Am "Adding fourth line (commit 4)"
ff12a6c63c3d filemerge: add 'union' merge to internal merge tool
Erik Huelsmann <ehuels@gmail.com>
parents: 12328
diff changeset
   121
  $ hg update 2
ff12a6c63c3d filemerge: add 'union' merge to internal merge tool
Erik Huelsmann <ehuels@gmail.com>
parents: 12328
diff changeset
   122
  1 files updated, 0 files merged, 0 files removed, 0 files unresolved
ff12a6c63c3d filemerge: add 'union' merge to internal merge tool
Erik Huelsmann <ehuels@gmail.com>
parents: 12328
diff changeset
   123
ff12a6c63c3d filemerge: add 'union' merge to internal merge tool
Erik Huelsmann <ehuels@gmail.com>
parents: 12328
diff changeset
   124
  $ echo "line 4b" >>f
ff12a6c63c3d filemerge: add 'union' merge to internal merge tool
Erik Huelsmann <ehuels@gmail.com>
parents: 12328
diff changeset
   125
  $ hg ci -Am "Adding fourth line v2 (commit 5)"
ff12a6c63c3d filemerge: add 'union' merge to internal merge tool
Erik Huelsmann <ehuels@gmail.com>
parents: 12328
diff changeset
   126
  created new head
ff12a6c63c3d filemerge: add 'union' merge to internal merge tool
Erik Huelsmann <ehuels@gmail.com>
parents: 12328
diff changeset
   127
ff12a6c63c3d filemerge: add 'union' merge to internal merge tool
Erik Huelsmann <ehuels@gmail.com>
parents: 12328
diff changeset
   128
  $ echo "[merge-patterns]" > .hg/hgrc
ff12a6c63c3d filemerge: add 'union' merge to internal merge tool
Erik Huelsmann <ehuels@gmail.com>
parents: 12328
diff changeset
   129
  $ echo "* = internal:union" >> .hg/hgrc
ff12a6c63c3d filemerge: add 'union' merge to internal merge tool
Erik Huelsmann <ehuels@gmail.com>
parents: 12328
diff changeset
   130
ff12a6c63c3d filemerge: add 'union' merge to internal merge tool
Erik Huelsmann <ehuels@gmail.com>
parents: 12328
diff changeset
   131
  $ hg merge 3
ff12a6c63c3d filemerge: add 'union' merge to internal merge tool
Erik Huelsmann <ehuels@gmail.com>
parents: 12328
diff changeset
   132
  merging f
ff12a6c63c3d filemerge: add 'union' merge to internal merge tool
Erik Huelsmann <ehuels@gmail.com>
parents: 12328
diff changeset
   133
  1 files updated, 0 files merged, 0 files removed, 0 files unresolved
ff12a6c63c3d filemerge: add 'union' merge to internal merge tool
Erik Huelsmann <ehuels@gmail.com>
parents: 12328
diff changeset
   134
  (branch merge, don't forget to commit)
ff12a6c63c3d filemerge: add 'union' merge to internal merge tool
Erik Huelsmann <ehuels@gmail.com>
parents: 12328
diff changeset
   135
ff12a6c63c3d filemerge: add 'union' merge to internal merge tool
Erik Huelsmann <ehuels@gmail.com>
parents: 12328
diff changeset
   136
  $ cat f
ff12a6c63c3d filemerge: add 'union' merge to internal merge tool
Erik Huelsmann <ehuels@gmail.com>
parents: 12328
diff changeset
   137
  line 1
ff12a6c63c3d filemerge: add 'union' merge to internal merge tool
Erik Huelsmann <ehuels@gmail.com>
parents: 12328
diff changeset
   138
  line 2
ff12a6c63c3d filemerge: add 'union' merge to internal merge tool
Erik Huelsmann <ehuels@gmail.com>
parents: 12328
diff changeset
   139
  third line
ff12a6c63c3d filemerge: add 'union' merge to internal merge tool
Erik Huelsmann <ehuels@gmail.com>
parents: 12328
diff changeset
   140
  line 4b
ff12a6c63c3d filemerge: add 'union' merge to internal merge tool
Erik Huelsmann <ehuels@gmail.com>
parents: 12328
diff changeset
   141
  line 4a