tests/test-merge-symlinks.t
author Martin von Zweigbergk <martinvonz@google.com>
Mon, 19 Jun 2017 13:18:00 -0700
changeset 32924 f044295cdb7a
parent 16913 f2719b387380
child 32938 b6776b34e44e
permissions -rw-r--r--
repair: move check for existing transaction earlier Several benefits: * Gets close the comment describing it * Splits off unrelated comment about "backup" argument * Error checking is customarily done early * If we added an early return to the method, it would still consistently fail if there was an existing transaction (so we would find and fix that case quickly) One test needs updating with for this change, because we no longer create the backup bundle before we fail. I don't see much reason to create that backup bundle. If some command was adding content and then trying to strip it as well within the transaction, we would have a backup for the user, but the risk of that not being discovered in development seems very small.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
12459
15f07e8e4742 tests: unify test-merge-symlinks
Matt Mackall <mpm@selenic.com>
parents: 7080
diff changeset
     1
  $ cat > echo.py <<EOF
15f07e8e4742 tests: unify test-merge-symlinks
Matt Mackall <mpm@selenic.com>
parents: 7080
diff changeset
     2
  > #!/usr/bin/env python
15f07e8e4742 tests: unify test-merge-symlinks
Matt Mackall <mpm@selenic.com>
parents: 7080
diff changeset
     3
  > import os, sys
15f07e8e4742 tests: unify test-merge-symlinks
Matt Mackall <mpm@selenic.com>
parents: 7080
diff changeset
     4
  > try:
15f07e8e4742 tests: unify test-merge-symlinks
Matt Mackall <mpm@selenic.com>
parents: 7080
diff changeset
     5
  >     import msvcrt
15f07e8e4742 tests: unify test-merge-symlinks
Matt Mackall <mpm@selenic.com>
parents: 7080
diff changeset
     6
  >     msvcrt.setmode(sys.stdout.fileno(), os.O_BINARY)
15f07e8e4742 tests: unify test-merge-symlinks
Matt Mackall <mpm@selenic.com>
parents: 7080
diff changeset
     7
  >     msvcrt.setmode(sys.stderr.fileno(), os.O_BINARY)
15f07e8e4742 tests: unify test-merge-symlinks
Matt Mackall <mpm@selenic.com>
parents: 7080
diff changeset
     8
  > except ImportError:
15f07e8e4742 tests: unify test-merge-symlinks
Matt Mackall <mpm@selenic.com>
parents: 7080
diff changeset
     9
  >     pass
15f07e8e4742 tests: unify test-merge-symlinks
Matt Mackall <mpm@selenic.com>
parents: 7080
diff changeset
    10
  > 
15f07e8e4742 tests: unify test-merge-symlinks
Matt Mackall <mpm@selenic.com>
parents: 7080
diff changeset
    11
  > for k in ('HG_FILE', 'HG_MY_ISLINK', 'HG_OTHER_ISLINK', 'HG_BASE_ISLINK'):
15f07e8e4742 tests: unify test-merge-symlinks
Matt Mackall <mpm@selenic.com>
parents: 7080
diff changeset
    12
  >     print k, os.environ[k]
15f07e8e4742 tests: unify test-merge-symlinks
Matt Mackall <mpm@selenic.com>
parents: 7080
diff changeset
    13
  > EOF
7080
a6477aa893b8 tests: Windows compatibility fixes
Patrick Mezard <pmezard@gmail.com>
parents: 5408
diff changeset
    14
12459
15f07e8e4742 tests: unify test-merge-symlinks
Matt Mackall <mpm@selenic.com>
parents: 7080
diff changeset
    15
Create 2 heads containing the same file, once as
15f07e8e4742 tests: unify test-merge-symlinks
Matt Mackall <mpm@selenic.com>
parents: 7080
diff changeset
    16
a file, once as a link. Bundle was generated with:
5391
786c1206a029 Test *_ISLINK merge environment vars
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
    17
5408
36794dbe66a3 Test workingctx exec/link bit for copies.
Patrick Mezard <pmezard@gmail.com>
parents: 5391
diff changeset
    18
# hg init t
36794dbe66a3 Test workingctx exec/link bit for copies.
Patrick Mezard <pmezard@gmail.com>
parents: 5391
diff changeset
    19
# cd t
36794dbe66a3 Test workingctx exec/link bit for copies.
Patrick Mezard <pmezard@gmail.com>
parents: 5391
diff changeset
    20
# echo a > a
36794dbe66a3 Test workingctx exec/link bit for copies.
Patrick Mezard <pmezard@gmail.com>
parents: 5391
diff changeset
    21
# hg ci -qAm t0 -d '0 0'
36794dbe66a3 Test workingctx exec/link bit for copies.
Patrick Mezard <pmezard@gmail.com>
parents: 5391
diff changeset
    22
# echo l > l
36794dbe66a3 Test workingctx exec/link bit for copies.
Patrick Mezard <pmezard@gmail.com>
parents: 5391
diff changeset
    23
# hg ci -qAm t1 -d '1 0'
36794dbe66a3 Test workingctx exec/link bit for copies.
Patrick Mezard <pmezard@gmail.com>
parents: 5391
diff changeset
    24
# hg up -C 0
36794dbe66a3 Test workingctx exec/link bit for copies.
Patrick Mezard <pmezard@gmail.com>
parents: 5391
diff changeset
    25
# ln -s a l
36794dbe66a3 Test workingctx exec/link bit for copies.
Patrick Mezard <pmezard@gmail.com>
parents: 5391
diff changeset
    26
# hg ci -qAm t2 -d '2 0'
36794dbe66a3 Test workingctx exec/link bit for copies.
Patrick Mezard <pmezard@gmail.com>
parents: 5391
diff changeset
    27
# echo l2 > l2
36794dbe66a3 Test workingctx exec/link bit for copies.
Patrick Mezard <pmezard@gmail.com>
parents: 5391
diff changeset
    28
# hg ci -qAm t3 -d '3 0'
36794dbe66a3 Test workingctx exec/link bit for copies.
Patrick Mezard <pmezard@gmail.com>
parents: 5391
diff changeset
    29
12459
15f07e8e4742 tests: unify test-merge-symlinks
Matt Mackall <mpm@selenic.com>
parents: 7080
diff changeset
    30
  $ hg init t
15f07e8e4742 tests: unify test-merge-symlinks
Matt Mackall <mpm@selenic.com>
parents: 7080
diff changeset
    31
  $ cd t
14116
cd3032437064 tests: move test bundles in a bundles/ subdirectory
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 13439
diff changeset
    32
  $ hg -q pull "$TESTDIR/bundles/test-merge-symlinks.hg"
12459
15f07e8e4742 tests: unify test-merge-symlinks
Matt Mackall <mpm@selenic.com>
parents: 7080
diff changeset
    33
  $ hg up -C 3
15f07e8e4742 tests: unify test-merge-symlinks
Matt Mackall <mpm@selenic.com>
parents: 7080
diff changeset
    34
  3 files updated, 0 files merged, 0 files removed, 0 files unresolved
15f07e8e4742 tests: unify test-merge-symlinks
Matt Mackall <mpm@selenic.com>
parents: 7080
diff changeset
    35
15f07e8e4742 tests: unify test-merge-symlinks
Matt Mackall <mpm@selenic.com>
parents: 7080
diff changeset
    36
Merge them and display *_ISLINK vars
15f07e8e4742 tests: unify test-merge-symlinks
Matt Mackall <mpm@selenic.com>
parents: 7080
diff changeset
    37
merge heads
5391
786c1206a029 Test *_ISLINK merge environment vars
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
    38
12788
de793925862e merge: implement --tool arguments using new ui.forcemerge configurable
Steve Borho <steve@borho.org>
parents: 12459
diff changeset
    39
  $ hg merge --tool="python ../echo.py"
13439
d724a69309e0 util: flush stdout before calling external processes
Mads Kiilerich <mads@kiilerich.com>
parents: 12788
diff changeset
    40
  merging l
12459
15f07e8e4742 tests: unify test-merge-symlinks
Matt Mackall <mpm@selenic.com>
parents: 7080
diff changeset
    41
  HG_FILE l
15f07e8e4742 tests: unify test-merge-symlinks
Matt Mackall <mpm@selenic.com>
parents: 7080
diff changeset
    42
  HG_MY_ISLINK 1
15f07e8e4742 tests: unify test-merge-symlinks
Matt Mackall <mpm@selenic.com>
parents: 7080
diff changeset
    43
  HG_OTHER_ISLINK 0
15f07e8e4742 tests: unify test-merge-symlinks
Matt Mackall <mpm@selenic.com>
parents: 7080
diff changeset
    44
  HG_BASE_ISLINK 0
15f07e8e4742 tests: unify test-merge-symlinks
Matt Mackall <mpm@selenic.com>
parents: 7080
diff changeset
    45
  0 files updated, 1 files merged, 0 files removed, 0 files unresolved
15f07e8e4742 tests: unify test-merge-symlinks
Matt Mackall <mpm@selenic.com>
parents: 7080
diff changeset
    46
  (branch merge, don't forget to commit)
5408
36794dbe66a3 Test workingctx exec/link bit for copies.
Patrick Mezard <pmezard@gmail.com>
parents: 5391
diff changeset
    47
12459
15f07e8e4742 tests: unify test-merge-symlinks
Matt Mackall <mpm@selenic.com>
parents: 7080
diff changeset
    48
Test working directory symlink bit calculation wrt copies,
15f07e8e4742 tests: unify test-merge-symlinks
Matt Mackall <mpm@selenic.com>
parents: 7080
diff changeset
    49
especially on non-supporting systems.
15f07e8e4742 tests: unify test-merge-symlinks
Matt Mackall <mpm@selenic.com>
parents: 7080
diff changeset
    50
merge working directory
15f07e8e4742 tests: unify test-merge-symlinks
Matt Mackall <mpm@selenic.com>
parents: 7080
diff changeset
    51
15f07e8e4742 tests: unify test-merge-symlinks
Matt Mackall <mpm@selenic.com>
parents: 7080
diff changeset
    52
  $ hg up -C 2
15f07e8e4742 tests: unify test-merge-symlinks
Matt Mackall <mpm@selenic.com>
parents: 7080
diff changeset
    53
  1 files updated, 0 files merged, 1 files removed, 0 files unresolved
15f07e8e4742 tests: unify test-merge-symlinks
Matt Mackall <mpm@selenic.com>
parents: 7080
diff changeset
    54
  $ hg copy l l2
15f07e8e4742 tests: unify test-merge-symlinks
Matt Mackall <mpm@selenic.com>
parents: 7080
diff changeset
    55
  $ HGMERGE="python ../echo.py" hg up 3
13439
d724a69309e0 util: flush stdout before calling external processes
Mads Kiilerich <mads@kiilerich.com>
parents: 12788
diff changeset
    56
  merging l2
12459
15f07e8e4742 tests: unify test-merge-symlinks
Matt Mackall <mpm@selenic.com>
parents: 7080
diff changeset
    57
  HG_FILE l2
15f07e8e4742 tests: unify test-merge-symlinks
Matt Mackall <mpm@selenic.com>
parents: 7080
diff changeset
    58
  HG_MY_ISLINK 1
15f07e8e4742 tests: unify test-merge-symlinks
Matt Mackall <mpm@selenic.com>
parents: 7080
diff changeset
    59
  HG_OTHER_ISLINK 0
15f07e8e4742 tests: unify test-merge-symlinks
Matt Mackall <mpm@selenic.com>
parents: 7080
diff changeset
    60
  HG_BASE_ISLINK 0
15f07e8e4742 tests: unify test-merge-symlinks
Matt Mackall <mpm@selenic.com>
parents: 7080
diff changeset
    61
  0 files updated, 1 files merged, 0 files removed, 0 files unresolved
16913
f2719b387380 tests: add missing trailing 'cd ..'
Mads Kiilerich <mads@kiilerich.com>
parents: 16907
diff changeset
    62
f2719b387380 tests: add missing trailing 'cd ..'
Mads Kiilerich <mads@kiilerich.com>
parents: 16907
diff changeset
    63
  $ cd ..