tests/test-origbackup-conflict.t
author Augie Fackler <augie@google.com>
Tue, 10 Oct 2017 11:02:40 -0400
changeset 34570 dbb2027f4974
parent 34543 6fad8059a970
child 34691 857fc3313f7b
permissions -rw-r--r--
tests: use readlink.py instead of readlink The latter doesn't always exist, such as on Solaris-derived platforms. Differential Revision: https://phab.mercurial-scm.org/D997
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
34543
6fad8059a970 scmutil: handle conflicting files and dirs in origbackuppath
Mark Thomas <mbthomas@fb.com>
parents:
diff changeset
     1
Set up repo
6fad8059a970 scmutil: handle conflicting files and dirs in origbackuppath
Mark Thomas <mbthomas@fb.com>
parents:
diff changeset
     2
6fad8059a970 scmutil: handle conflicting files and dirs in origbackuppath
Mark Thomas <mbthomas@fb.com>
parents:
diff changeset
     3
  $ cat << EOF >> $HGRCPATH
6fad8059a970 scmutil: handle conflicting files and dirs in origbackuppath
Mark Thomas <mbthomas@fb.com>
parents:
diff changeset
     4
  > [ui]
6fad8059a970 scmutil: handle conflicting files and dirs in origbackuppath
Mark Thomas <mbthomas@fb.com>
parents:
diff changeset
     5
  > origbackuppath=.hg/origbackups
6fad8059a970 scmutil: handle conflicting files and dirs in origbackuppath
Mark Thomas <mbthomas@fb.com>
parents:
diff changeset
     6
  > [merge]
6fad8059a970 scmutil: handle conflicting files and dirs in origbackuppath
Mark Thomas <mbthomas@fb.com>
parents:
diff changeset
     7
  > checkunknown=warn
6fad8059a970 scmutil: handle conflicting files and dirs in origbackuppath
Mark Thomas <mbthomas@fb.com>
parents:
diff changeset
     8
  > EOF
6fad8059a970 scmutil: handle conflicting files and dirs in origbackuppath
Mark Thomas <mbthomas@fb.com>
parents:
diff changeset
     9
  $ hg init repo
6fad8059a970 scmutil: handle conflicting files and dirs in origbackuppath
Mark Thomas <mbthomas@fb.com>
parents:
diff changeset
    10
  $ cd repo
6fad8059a970 scmutil: handle conflicting files and dirs in origbackuppath
Mark Thomas <mbthomas@fb.com>
parents:
diff changeset
    11
  $ echo base > base
6fad8059a970 scmutil: handle conflicting files and dirs in origbackuppath
Mark Thomas <mbthomas@fb.com>
parents:
diff changeset
    12
  $ hg add base
6fad8059a970 scmutil: handle conflicting files and dirs in origbackuppath
Mark Thomas <mbthomas@fb.com>
parents:
diff changeset
    13
  $ hg commit -m "base"
6fad8059a970 scmutil: handle conflicting files and dirs in origbackuppath
Mark Thomas <mbthomas@fb.com>
parents:
diff changeset
    14
6fad8059a970 scmutil: handle conflicting files and dirs in origbackuppath
Mark Thomas <mbthomas@fb.com>
parents:
diff changeset
    15
Make a dir named b that contains a file
6fad8059a970 scmutil: handle conflicting files and dirs in origbackuppath
Mark Thomas <mbthomas@fb.com>
parents:
diff changeset
    16
6fad8059a970 scmutil: handle conflicting files and dirs in origbackuppath
Mark Thomas <mbthomas@fb.com>
parents:
diff changeset
    17
  $ mkdir -p b
6fad8059a970 scmutil: handle conflicting files and dirs in origbackuppath
Mark Thomas <mbthomas@fb.com>
parents:
diff changeset
    18
  $ echo c1 > b/c
6fad8059a970 scmutil: handle conflicting files and dirs in origbackuppath
Mark Thomas <mbthomas@fb.com>
parents:
diff changeset
    19
  $ hg add b/c
6fad8059a970 scmutil: handle conflicting files and dirs in origbackuppath
Mark Thomas <mbthomas@fb.com>
parents:
diff changeset
    20
  $ hg commit -m "c1"
6fad8059a970 scmutil: handle conflicting files and dirs in origbackuppath
Mark Thomas <mbthomas@fb.com>
parents:
diff changeset
    21
  $ hg bookmark c1
6fad8059a970 scmutil: handle conflicting files and dirs in origbackuppath
Mark Thomas <mbthomas@fb.com>
parents:
diff changeset
    22
6fad8059a970 scmutil: handle conflicting files and dirs in origbackuppath
Mark Thomas <mbthomas@fb.com>
parents:
diff changeset
    23
Peform an update that causes b/c to be backed up
6fad8059a970 scmutil: handle conflicting files and dirs in origbackuppath
Mark Thomas <mbthomas@fb.com>
parents:
diff changeset
    24
6fad8059a970 scmutil: handle conflicting files and dirs in origbackuppath
Mark Thomas <mbthomas@fb.com>
parents:
diff changeset
    25
  $ hg up -q 0
6fad8059a970 scmutil: handle conflicting files and dirs in origbackuppath
Mark Thomas <mbthomas@fb.com>
parents:
diff changeset
    26
  $ mkdir -p b
6fad8059a970 scmutil: handle conflicting files and dirs in origbackuppath
Mark Thomas <mbthomas@fb.com>
parents:
diff changeset
    27
  $ echo c2 > b/c
6fad8059a970 scmutil: handle conflicting files and dirs in origbackuppath
Mark Thomas <mbthomas@fb.com>
parents:
diff changeset
    28
  $ hg up --verbose c1
6fad8059a970 scmutil: handle conflicting files and dirs in origbackuppath
Mark Thomas <mbthomas@fb.com>
parents:
diff changeset
    29
  resolving manifests
6fad8059a970 scmutil: handle conflicting files and dirs in origbackuppath
Mark Thomas <mbthomas@fb.com>
parents:
diff changeset
    30
  b/c: replacing untracked file
6fad8059a970 scmutil: handle conflicting files and dirs in origbackuppath
Mark Thomas <mbthomas@fb.com>
parents:
diff changeset
    31
  getting b/c
6fad8059a970 scmutil: handle conflicting files and dirs in origbackuppath
Mark Thomas <mbthomas@fb.com>
parents:
diff changeset
    32
  creating directory: $TESTTMP/repo/.hg/origbackups/b
6fad8059a970 scmutil: handle conflicting files and dirs in origbackuppath
Mark Thomas <mbthomas@fb.com>
parents:
diff changeset
    33
  1 files updated, 0 files merged, 0 files removed, 0 files unresolved
6fad8059a970 scmutil: handle conflicting files and dirs in origbackuppath
Mark Thomas <mbthomas@fb.com>
parents:
diff changeset
    34
  (activating bookmark c1)
6fad8059a970 scmutil: handle conflicting files and dirs in origbackuppath
Mark Thomas <mbthomas@fb.com>
parents:
diff changeset
    35
  $ test -f .hg/origbackups/b/c
6fad8059a970 scmutil: handle conflicting files and dirs in origbackuppath
Mark Thomas <mbthomas@fb.com>
parents:
diff changeset
    36
6fad8059a970 scmutil: handle conflicting files and dirs in origbackuppath
Mark Thomas <mbthomas@fb.com>
parents:
diff changeset
    37
Make a file named b
6fad8059a970 scmutil: handle conflicting files and dirs in origbackuppath
Mark Thomas <mbthomas@fb.com>
parents:
diff changeset
    38
6fad8059a970 scmutil: handle conflicting files and dirs in origbackuppath
Mark Thomas <mbthomas@fb.com>
parents:
diff changeset
    39
  $ hg up -q 0
6fad8059a970 scmutil: handle conflicting files and dirs in origbackuppath
Mark Thomas <mbthomas@fb.com>
parents:
diff changeset
    40
  $ echo b1 > b
6fad8059a970 scmutil: handle conflicting files and dirs in origbackuppath
Mark Thomas <mbthomas@fb.com>
parents:
diff changeset
    41
  $ hg add b
6fad8059a970 scmutil: handle conflicting files and dirs in origbackuppath
Mark Thomas <mbthomas@fb.com>
parents:
diff changeset
    42
  $ hg commit -m b1
6fad8059a970 scmutil: handle conflicting files and dirs in origbackuppath
Mark Thomas <mbthomas@fb.com>
parents:
diff changeset
    43
  created new head
6fad8059a970 scmutil: handle conflicting files and dirs in origbackuppath
Mark Thomas <mbthomas@fb.com>
parents:
diff changeset
    44
  $ hg bookmark b1
6fad8059a970 scmutil: handle conflicting files and dirs in origbackuppath
Mark Thomas <mbthomas@fb.com>
parents:
diff changeset
    45
6fad8059a970 scmutil: handle conflicting files and dirs in origbackuppath
Mark Thomas <mbthomas@fb.com>
parents:
diff changeset
    46
Perform an update that causes b to be backed up - it should replace the backup b dir
6fad8059a970 scmutil: handle conflicting files and dirs in origbackuppath
Mark Thomas <mbthomas@fb.com>
parents:
diff changeset
    47
6fad8059a970 scmutil: handle conflicting files and dirs in origbackuppath
Mark Thomas <mbthomas@fb.com>
parents:
diff changeset
    48
  $ hg up -q 0
6fad8059a970 scmutil: handle conflicting files and dirs in origbackuppath
Mark Thomas <mbthomas@fb.com>
parents:
diff changeset
    49
  $ echo b2 > b
6fad8059a970 scmutil: handle conflicting files and dirs in origbackuppath
Mark Thomas <mbthomas@fb.com>
parents:
diff changeset
    50
  $ hg up --verbose b1
6fad8059a970 scmutil: handle conflicting files and dirs in origbackuppath
Mark Thomas <mbthomas@fb.com>
parents:
diff changeset
    51
  resolving manifests
6fad8059a970 scmutil: handle conflicting files and dirs in origbackuppath
Mark Thomas <mbthomas@fb.com>
parents:
diff changeset
    52
  b: replacing untracked file
6fad8059a970 scmutil: handle conflicting files and dirs in origbackuppath
Mark Thomas <mbthomas@fb.com>
parents:
diff changeset
    53
  getting b
6fad8059a970 scmutil: handle conflicting files and dirs in origbackuppath
Mark Thomas <mbthomas@fb.com>
parents:
diff changeset
    54
  removing conflicting directory: $TESTTMP/repo/.hg/origbackups/b
6fad8059a970 scmutil: handle conflicting files and dirs in origbackuppath
Mark Thomas <mbthomas@fb.com>
parents:
diff changeset
    55
  1 files updated, 0 files merged, 0 files removed, 0 files unresolved
6fad8059a970 scmutil: handle conflicting files and dirs in origbackuppath
Mark Thomas <mbthomas@fb.com>
parents:
diff changeset
    56
  (activating bookmark b1)
6fad8059a970 scmutil: handle conflicting files and dirs in origbackuppath
Mark Thomas <mbthomas@fb.com>
parents:
diff changeset
    57
  $ test -f .hg/origbackups/b
6fad8059a970 scmutil: handle conflicting files and dirs in origbackuppath
Mark Thomas <mbthomas@fb.com>
parents:
diff changeset
    58
6fad8059a970 scmutil: handle conflicting files and dirs in origbackuppath
Mark Thomas <mbthomas@fb.com>
parents:
diff changeset
    59
Perform an update the causes b/c to be backed up again - it should replace the backup b file
6fad8059a970 scmutil: handle conflicting files and dirs in origbackuppath
Mark Thomas <mbthomas@fb.com>
parents:
diff changeset
    60
6fad8059a970 scmutil: handle conflicting files and dirs in origbackuppath
Mark Thomas <mbthomas@fb.com>
parents:
diff changeset
    61
  $ hg up -q 0
6fad8059a970 scmutil: handle conflicting files and dirs in origbackuppath
Mark Thomas <mbthomas@fb.com>
parents:
diff changeset
    62
  $ mkdir b
6fad8059a970 scmutil: handle conflicting files and dirs in origbackuppath
Mark Thomas <mbthomas@fb.com>
parents:
diff changeset
    63
  $ echo c3 > b/c
6fad8059a970 scmutil: handle conflicting files and dirs in origbackuppath
Mark Thomas <mbthomas@fb.com>
parents:
diff changeset
    64
  $ hg up --verbose c1
6fad8059a970 scmutil: handle conflicting files and dirs in origbackuppath
Mark Thomas <mbthomas@fb.com>
parents:
diff changeset
    65
  resolving manifests
6fad8059a970 scmutil: handle conflicting files and dirs in origbackuppath
Mark Thomas <mbthomas@fb.com>
parents:
diff changeset
    66
  b/c: replacing untracked file
6fad8059a970 scmutil: handle conflicting files and dirs in origbackuppath
Mark Thomas <mbthomas@fb.com>
parents:
diff changeset
    67
  getting b/c
6fad8059a970 scmutil: handle conflicting files and dirs in origbackuppath
Mark Thomas <mbthomas@fb.com>
parents:
diff changeset
    68
  creating directory: $TESTTMP/repo/.hg/origbackups/b
6fad8059a970 scmutil: handle conflicting files and dirs in origbackuppath
Mark Thomas <mbthomas@fb.com>
parents:
diff changeset
    69
  removing conflicting file: $TESTTMP/repo/.hg/origbackups/b
6fad8059a970 scmutil: handle conflicting files and dirs in origbackuppath
Mark Thomas <mbthomas@fb.com>
parents:
diff changeset
    70
  1 files updated, 0 files merged, 0 files removed, 0 files unresolved
6fad8059a970 scmutil: handle conflicting files and dirs in origbackuppath
Mark Thomas <mbthomas@fb.com>
parents:
diff changeset
    71
  (activating bookmark c1)
6fad8059a970 scmutil: handle conflicting files and dirs in origbackuppath
Mark Thomas <mbthomas@fb.com>
parents:
diff changeset
    72
  $ test -d .hg/origbackups/b
6fad8059a970 scmutil: handle conflicting files and dirs in origbackuppath
Mark Thomas <mbthomas@fb.com>
parents:
diff changeset
    73
6fad8059a970 scmutil: handle conflicting files and dirs in origbackuppath
Mark Thomas <mbthomas@fb.com>
parents:
diff changeset
    74
Cause a symlink to be backed up that points to a valid location from the backup dir
6fad8059a970 scmutil: handle conflicting files and dirs in origbackuppath
Mark Thomas <mbthomas@fb.com>
parents:
diff changeset
    75
6fad8059a970 scmutil: handle conflicting files and dirs in origbackuppath
Mark Thomas <mbthomas@fb.com>
parents:
diff changeset
    76
  $ hg up -q 0
6fad8059a970 scmutil: handle conflicting files and dirs in origbackuppath
Mark Thomas <mbthomas@fb.com>
parents:
diff changeset
    77
  $ mkdir ../sym-link-target
6fad8059a970 scmutil: handle conflicting files and dirs in origbackuppath
Mark Thomas <mbthomas@fb.com>
parents:
diff changeset
    78
  $ ln -s ../../../sym-link-target b
6fad8059a970 scmutil: handle conflicting files and dirs in origbackuppath
Mark Thomas <mbthomas@fb.com>
parents:
diff changeset
    79
  $ hg up b1
6fad8059a970 scmutil: handle conflicting files and dirs in origbackuppath
Mark Thomas <mbthomas@fb.com>
parents:
diff changeset
    80
  b: replacing untracked file
6fad8059a970 scmutil: handle conflicting files and dirs in origbackuppath
Mark Thomas <mbthomas@fb.com>
parents:
diff changeset
    81
  1 files updated, 0 files merged, 0 files removed, 0 files unresolved
6fad8059a970 scmutil: handle conflicting files and dirs in origbackuppath
Mark Thomas <mbthomas@fb.com>
parents:
diff changeset
    82
  (activating bookmark b1)
34570
dbb2027f4974 tests: use readlink.py instead of readlink
Augie Fackler <augie@google.com>
parents: 34543
diff changeset
    83
  $ readlink.py .hg/origbackups/b
dbb2027f4974 tests: use readlink.py instead of readlink
Augie Fackler <augie@google.com>
parents: 34543
diff changeset
    84
  .hg/origbackups/b -> ../../../sym-link-target
34543
6fad8059a970 scmutil: handle conflicting files and dirs in origbackuppath
Mark Thomas <mbthomas@fb.com>
parents:
diff changeset
    85
6fad8059a970 scmutil: handle conflicting files and dirs in origbackuppath
Mark Thomas <mbthomas@fb.com>
parents:
diff changeset
    86
Perform an update that causes b/c to be backed up again - it should not go into the target dir
6fad8059a970 scmutil: handle conflicting files and dirs in origbackuppath
Mark Thomas <mbthomas@fb.com>
parents:
diff changeset
    87
6fad8059a970 scmutil: handle conflicting files and dirs in origbackuppath
Mark Thomas <mbthomas@fb.com>
parents:
diff changeset
    88
  $ hg up -q 0
6fad8059a970 scmutil: handle conflicting files and dirs in origbackuppath
Mark Thomas <mbthomas@fb.com>
parents:
diff changeset
    89
  $ mkdir b
6fad8059a970 scmutil: handle conflicting files and dirs in origbackuppath
Mark Thomas <mbthomas@fb.com>
parents:
diff changeset
    90
  $ echo c4 > b/c
6fad8059a970 scmutil: handle conflicting files and dirs in origbackuppath
Mark Thomas <mbthomas@fb.com>
parents:
diff changeset
    91
  $ hg up --verbose c1
6fad8059a970 scmutil: handle conflicting files and dirs in origbackuppath
Mark Thomas <mbthomas@fb.com>
parents:
diff changeset
    92
  resolving manifests
6fad8059a970 scmutil: handle conflicting files and dirs in origbackuppath
Mark Thomas <mbthomas@fb.com>
parents:
diff changeset
    93
  b/c: replacing untracked file
6fad8059a970 scmutil: handle conflicting files and dirs in origbackuppath
Mark Thomas <mbthomas@fb.com>
parents:
diff changeset
    94
  getting b/c
6fad8059a970 scmutil: handle conflicting files and dirs in origbackuppath
Mark Thomas <mbthomas@fb.com>
parents:
diff changeset
    95
  creating directory: $TESTTMP/repo/.hg/origbackups/b
6fad8059a970 scmutil: handle conflicting files and dirs in origbackuppath
Mark Thomas <mbthomas@fb.com>
parents:
diff changeset
    96
  removing conflicting file: $TESTTMP/repo/.hg/origbackups/b
6fad8059a970 scmutil: handle conflicting files and dirs in origbackuppath
Mark Thomas <mbthomas@fb.com>
parents:
diff changeset
    97
  1 files updated, 0 files merged, 0 files removed, 0 files unresolved
6fad8059a970 scmutil: handle conflicting files and dirs in origbackuppath
Mark Thomas <mbthomas@fb.com>
parents:
diff changeset
    98
  (activating bookmark c1)
6fad8059a970 scmutil: handle conflicting files and dirs in origbackuppath
Mark Thomas <mbthomas@fb.com>
parents:
diff changeset
    99
  $ cat .hg/origbackups/b/c
6fad8059a970 scmutil: handle conflicting files and dirs in origbackuppath
Mark Thomas <mbthomas@fb.com>
parents:
diff changeset
   100
  c4
6fad8059a970 scmutil: handle conflicting files and dirs in origbackuppath
Mark Thomas <mbthomas@fb.com>
parents:
diff changeset
   101
  $ ls ../sym-link-target
6fad8059a970 scmutil: handle conflicting files and dirs in origbackuppath
Mark Thomas <mbthomas@fb.com>
parents:
diff changeset
   102
6fad8059a970 scmutil: handle conflicting files and dirs in origbackuppath
Mark Thomas <mbthomas@fb.com>
parents:
diff changeset
   103
Incorrectly configure origbackuppath to be under a file
6fad8059a970 scmutil: handle conflicting files and dirs in origbackuppath
Mark Thomas <mbthomas@fb.com>
parents:
diff changeset
   104
6fad8059a970 scmutil: handle conflicting files and dirs in origbackuppath
Mark Thomas <mbthomas@fb.com>
parents:
diff changeset
   105
  $ echo data > .hg/badorigbackups
6fad8059a970 scmutil: handle conflicting files and dirs in origbackuppath
Mark Thomas <mbthomas@fb.com>
parents:
diff changeset
   106
  $ hg up -q 0
6fad8059a970 scmutil: handle conflicting files and dirs in origbackuppath
Mark Thomas <mbthomas@fb.com>
parents:
diff changeset
   107
  $ mkdir b
6fad8059a970 scmutil: handle conflicting files and dirs in origbackuppath
Mark Thomas <mbthomas@fb.com>
parents:
diff changeset
   108
  $ echo c5 > b/c
6fad8059a970 scmutil: handle conflicting files and dirs in origbackuppath
Mark Thomas <mbthomas@fb.com>
parents:
diff changeset
   109
  $ hg up --verbose c1 --config ui.origbackuppath=.hg/badorigbackups
6fad8059a970 scmutil: handle conflicting files and dirs in origbackuppath
Mark Thomas <mbthomas@fb.com>
parents:
diff changeset
   110
  resolving manifests
6fad8059a970 scmutil: handle conflicting files and dirs in origbackuppath
Mark Thomas <mbthomas@fb.com>
parents:
diff changeset
   111
  b/c: replacing untracked file
6fad8059a970 scmutil: handle conflicting files and dirs in origbackuppath
Mark Thomas <mbthomas@fb.com>
parents:
diff changeset
   112
  getting b/c
6fad8059a970 scmutil: handle conflicting files and dirs in origbackuppath
Mark Thomas <mbthomas@fb.com>
parents:
diff changeset
   113
  creating directory: $TESTTMP/repo/.hg/badorigbackups/b
6fad8059a970 scmutil: handle conflicting files and dirs in origbackuppath
Mark Thomas <mbthomas@fb.com>
parents:
diff changeset
   114
  abort: Not a directory: '$TESTTMP/repo/.hg/badorigbackups/b'
6fad8059a970 scmutil: handle conflicting files and dirs in origbackuppath
Mark Thomas <mbthomas@fb.com>
parents:
diff changeset
   115
  [255]
6fad8059a970 scmutil: handle conflicting files and dirs in origbackuppath
Mark Thomas <mbthomas@fb.com>
parents:
diff changeset
   116
  $ cat .hg/badorigbackups
6fad8059a970 scmutil: handle conflicting files and dirs in origbackuppath
Mark Thomas <mbthomas@fb.com>
parents:
diff changeset
   117
  data
6fad8059a970 scmutil: handle conflicting files and dirs in origbackuppath
Mark Thomas <mbthomas@fb.com>
parents:
diff changeset
   118