tests/test-merge-symlinks.t
author Steve Borho <steve@borho.org>
Tue, 19 Oct 2010 22:33:52 -0500
changeset 12788 de793925862e
parent 12459 15f07e8e4742
child 13439 d724a69309e0
permissions -rw-r--r--
merge: implement --tool arguments using new ui.forcemerge configurable ui.forcemerge is set before calling into merge or resolve commands, then unset to prevent ui pollution for further operations. ui.forcemerge takes precedence over HGMERGE, but mimics HGMERGE behavior if the given --tool is not found by the merge-tools machinery. This makes it possible to do: hg resolve --tool="python mymerge.py" FILE With this approach, HGMERGE and ui.merge are not harmed by --tool
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
5391
786c1206a029 Test *_ISLINK merge environment vars
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
     1
12459
15f07e8e4742 tests: unify test-merge-symlinks
Matt Mackall <mpm@selenic.com>
parents: 7080
diff changeset
     2
  $ cat > echo.py <<EOF
15f07e8e4742 tests: unify test-merge-symlinks
Matt Mackall <mpm@selenic.com>
parents: 7080
diff changeset
     3
  > #!/usr/bin/env python
15f07e8e4742 tests: unify test-merge-symlinks
Matt Mackall <mpm@selenic.com>
parents: 7080
diff changeset
     4
  > import os, sys
15f07e8e4742 tests: unify test-merge-symlinks
Matt Mackall <mpm@selenic.com>
parents: 7080
diff changeset
     5
  > try:
15f07e8e4742 tests: unify test-merge-symlinks
Matt Mackall <mpm@selenic.com>
parents: 7080
diff changeset
     6
  >     import msvcrt
15f07e8e4742 tests: unify test-merge-symlinks
Matt Mackall <mpm@selenic.com>
parents: 7080
diff changeset
     7
  >     msvcrt.setmode(sys.stdout.fileno(), os.O_BINARY)
15f07e8e4742 tests: unify test-merge-symlinks
Matt Mackall <mpm@selenic.com>
parents: 7080
diff changeset
     8
  >     msvcrt.setmode(sys.stderr.fileno(), os.O_BINARY)
15f07e8e4742 tests: unify test-merge-symlinks
Matt Mackall <mpm@selenic.com>
parents: 7080
diff changeset
     9
  > except ImportError:
15f07e8e4742 tests: unify test-merge-symlinks
Matt Mackall <mpm@selenic.com>
parents: 7080
diff changeset
    10
  >     pass
15f07e8e4742 tests: unify test-merge-symlinks
Matt Mackall <mpm@selenic.com>
parents: 7080
diff changeset
    11
  > 
15f07e8e4742 tests: unify test-merge-symlinks
Matt Mackall <mpm@selenic.com>
parents: 7080
diff changeset
    12
  > 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
    13
  >     print k, os.environ[k]
15f07e8e4742 tests: unify test-merge-symlinks
Matt Mackall <mpm@selenic.com>
parents: 7080
diff changeset
    14
  > EOF
7080
a6477aa893b8 tests: Windows compatibility fixes
Patrick Mezard <pmezard@gmail.com>
parents: 5408
diff changeset
    15
12459
15f07e8e4742 tests: unify test-merge-symlinks
Matt Mackall <mpm@selenic.com>
parents: 7080
diff changeset
    16
Create 2 heads containing the same file, once as
15f07e8e4742 tests: unify test-merge-symlinks
Matt Mackall <mpm@selenic.com>
parents: 7080
diff changeset
    17
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
    18
5408
36794dbe66a3 Test workingctx exec/link bit for copies.
Patrick Mezard <pmezard@gmail.com>
parents: 5391
diff changeset
    19
# hg init t
36794dbe66a3 Test workingctx exec/link bit for copies.
Patrick Mezard <pmezard@gmail.com>
parents: 5391
diff changeset
    20
# cd t
36794dbe66a3 Test workingctx exec/link bit for copies.
Patrick Mezard <pmezard@gmail.com>
parents: 5391
diff changeset
    21
# echo a > a
36794dbe66a3 Test workingctx exec/link bit for copies.
Patrick Mezard <pmezard@gmail.com>
parents: 5391
diff changeset
    22
# hg ci -qAm t0 -d '0 0'
36794dbe66a3 Test workingctx exec/link bit for copies.
Patrick Mezard <pmezard@gmail.com>
parents: 5391
diff changeset
    23
# echo l > l
36794dbe66a3 Test workingctx exec/link bit for copies.
Patrick Mezard <pmezard@gmail.com>
parents: 5391
diff changeset
    24
# hg ci -qAm t1 -d '1 0'
36794dbe66a3 Test workingctx exec/link bit for copies.
Patrick Mezard <pmezard@gmail.com>
parents: 5391
diff changeset
    25
# hg up -C 0
36794dbe66a3 Test workingctx exec/link bit for copies.
Patrick Mezard <pmezard@gmail.com>
parents: 5391
diff changeset
    26
# ln -s a l
36794dbe66a3 Test workingctx exec/link bit for copies.
Patrick Mezard <pmezard@gmail.com>
parents: 5391
diff changeset
    27
# hg ci -qAm t2 -d '2 0'
36794dbe66a3 Test workingctx exec/link bit for copies.
Patrick Mezard <pmezard@gmail.com>
parents: 5391
diff changeset
    28
# echo l2 > l2
36794dbe66a3 Test workingctx exec/link bit for copies.
Patrick Mezard <pmezard@gmail.com>
parents: 5391
diff changeset
    29
# hg ci -qAm t3 -d '3 0'
36794dbe66a3 Test workingctx exec/link bit for copies.
Patrick Mezard <pmezard@gmail.com>
parents: 5391
diff changeset
    30
12459
15f07e8e4742 tests: unify test-merge-symlinks
Matt Mackall <mpm@selenic.com>
parents: 7080
diff changeset
    31
  $ hg init t
15f07e8e4742 tests: unify test-merge-symlinks
Matt Mackall <mpm@selenic.com>
parents: 7080
diff changeset
    32
  $ cd t
15f07e8e4742 tests: unify test-merge-symlinks
Matt Mackall <mpm@selenic.com>
parents: 7080
diff changeset
    33
  $ hg -q pull "$TESTDIR/test-merge-symlinks.hg"
15f07e8e4742 tests: unify test-merge-symlinks
Matt Mackall <mpm@selenic.com>
parents: 7080
diff changeset
    34
  $ hg up -C 3
15f07e8e4742 tests: unify test-merge-symlinks
Matt Mackall <mpm@selenic.com>
parents: 7080
diff changeset
    35
  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
    36
15f07e8e4742 tests: unify test-merge-symlinks
Matt Mackall <mpm@selenic.com>
parents: 7080
diff changeset
    37
Merge them and display *_ISLINK vars
15f07e8e4742 tests: unify test-merge-symlinks
Matt Mackall <mpm@selenic.com>
parents: 7080
diff changeset
    38
merge heads
5391
786c1206a029 Test *_ISLINK merge environment vars
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
    39
12788
de793925862e merge: implement --tool arguments using new ui.forcemerge configurable
Steve Borho <steve@borho.org>
parents: 12459
diff changeset
    40
  $ hg merge --tool="python ../echo.py"
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
  merging l
15f07e8e4742 tests: unify test-merge-symlinks
Matt Mackall <mpm@selenic.com>
parents: 7080
diff changeset
    46
  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
    47
  (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
    48
12459
15f07e8e4742 tests: unify test-merge-symlinks
Matt Mackall <mpm@selenic.com>
parents: 7080
diff changeset
    49
Test working directory symlink bit calculation wrt copies,
15f07e8e4742 tests: unify test-merge-symlinks
Matt Mackall <mpm@selenic.com>
parents: 7080
diff changeset
    50
especially on non-supporting systems.
15f07e8e4742 tests: unify test-merge-symlinks
Matt Mackall <mpm@selenic.com>
parents: 7080
diff changeset
    51
merge working directory
15f07e8e4742 tests: unify test-merge-symlinks
Matt Mackall <mpm@selenic.com>
parents: 7080
diff changeset
    52
15f07e8e4742 tests: unify test-merge-symlinks
Matt Mackall <mpm@selenic.com>
parents: 7080
diff changeset
    53
  $ hg up -C 2
15f07e8e4742 tests: unify test-merge-symlinks
Matt Mackall <mpm@selenic.com>
parents: 7080
diff changeset
    54
  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
    55
  $ hg copy l l2
15f07e8e4742 tests: unify test-merge-symlinks
Matt Mackall <mpm@selenic.com>
parents: 7080
diff changeset
    56
  $ HGMERGE="python ../echo.py" hg up 3
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
  merging l2
15f07e8e4742 tests: unify test-merge-symlinks
Matt Mackall <mpm@selenic.com>
parents: 7080
diff changeset
    62
  0 files updated, 1 files merged, 0 files removed, 0 files unresolved