tests/test-update-names.t
author Manuel Jacob <me@manueljacob.de>
Wed, 24 Jun 2020 14:44:21 +0200
changeset 44998 f2de8f31cb59
parent 39593 c8514f858788
permissions -rw-r--r--
pycompat: use os.fsencode() to re-encode sys.argv Historically, the previous code made sense, as Py_EncodeLocale() and fs.fsencode() could possibly use different encodings. However, this is not the case anymore for Python 3.2, which uses the locale encoding as the filesystem encoding (this is not true for later Python versions, but see below). See https://vstinner.github.io/painful-history-python-filesystem-encoding.html for a source and more background information. Using os.fsencode() is safer, as the documentation for sys.argv says that it can be used to get the original bytes. When doing further changes, the Python developers will take care that this continues to work. One concrete case where os.fsencode() is more correct is when enabling Python's UTF-8 mode. Py_DecodeLocale() will use UTF-8 in this case. Our previous code would have encoded it using the locale encoding (which might be different), whereas os.fsencode() will encode it with UTF-8. Since we don’t claim to support the UTF-8 mode, this is not really a bug and the patch can go to the default branch. It might be a good idea to not commit this to the stable branch, as it could in theory introduce regressions.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
29480
1e4512eac59e update: teach hg to override untracked dir with a tracked file on update
Kostia Balytskyi <ikostia@fb.com>
parents: 26614
diff changeset
     1
Test update logic when there are renames or weird same-name cases between dirs
1e4512eac59e update: teach hg to override untracked dir with a tracked file on update
Kostia Balytskyi <ikostia@fb.com>
parents: 26614
diff changeset
     2
and files
10874
4f11978ae45d copies: properly visit file context ancestors on working file contexts
Henrik Stuart <henrik.stuart@edlund.dk>
parents:
diff changeset
     3
12328
b63f6422d2a7 tests: fix a bunch of pointless #s in unified tests
Matt Mackall <mpm@selenic.com>
parents: 12316
diff changeset
     4
Update with local changes across a file rename
12299
a73684df0f8a tests: unify test-update-renames
Adrian Buehlmann <adrian@cadifra.com>
parents: 10874
diff changeset
     5
29480
1e4512eac59e update: teach hg to override untracked dir with a tracked file on update
Kostia Balytskyi <ikostia@fb.com>
parents: 26614
diff changeset
     6
  $ hg init r1 && cd r1
12299
a73684df0f8a tests: unify test-update-renames
Adrian Buehlmann <adrian@cadifra.com>
parents: 10874
diff changeset
     7
a73684df0f8a tests: unify test-update-renames
Adrian Buehlmann <adrian@cadifra.com>
parents: 10874
diff changeset
     8
  $ echo a > a
a73684df0f8a tests: unify test-update-renames
Adrian Buehlmann <adrian@cadifra.com>
parents: 10874
diff changeset
     9
  $ hg add a
a73684df0f8a tests: unify test-update-renames
Adrian Buehlmann <adrian@cadifra.com>
parents: 10874
diff changeset
    10
  $ hg ci -m a
a73684df0f8a tests: unify test-update-renames
Adrian Buehlmann <adrian@cadifra.com>
parents: 10874
diff changeset
    11
a73684df0f8a tests: unify test-update-renames
Adrian Buehlmann <adrian@cadifra.com>
parents: 10874
diff changeset
    12
  $ hg mv a b
a73684df0f8a tests: unify test-update-renames
Adrian Buehlmann <adrian@cadifra.com>
parents: 10874
diff changeset
    13
  $ hg ci -m rename
a73684df0f8a tests: unify test-update-renames
Adrian Buehlmann <adrian@cadifra.com>
parents: 10874
diff changeset
    14
a73684df0f8a tests: unify test-update-renames
Adrian Buehlmann <adrian@cadifra.com>
parents: 10874
diff changeset
    15
  $ echo b > b
a73684df0f8a tests: unify test-update-renames
Adrian Buehlmann <adrian@cadifra.com>
parents: 10874
diff changeset
    16
  $ hg ci -m change
a73684df0f8a tests: unify test-update-renames
Adrian Buehlmann <adrian@cadifra.com>
parents: 10874
diff changeset
    17
a73684df0f8a tests: unify test-update-renames
Adrian Buehlmann <adrian@cadifra.com>
parents: 10874
diff changeset
    18
  $ hg up -q 0
a73684df0f8a tests: unify test-update-renames
Adrian Buehlmann <adrian@cadifra.com>
parents: 10874
diff changeset
    19
a73684df0f8a tests: unify test-update-renames
Adrian Buehlmann <adrian@cadifra.com>
parents: 10874
diff changeset
    20
  $ echo c > a
a73684df0f8a tests: unify test-update-renames
Adrian Buehlmann <adrian@cadifra.com>
parents: 10874
diff changeset
    21
a73684df0f8a tests: unify test-update-renames
Adrian Buehlmann <adrian@cadifra.com>
parents: 10874
diff changeset
    22
  $ hg up
a73684df0f8a tests: unify test-update-renames
Adrian Buehlmann <adrian@cadifra.com>
parents: 10874
diff changeset
    23
  merging a and b to b
26614
ef1eb6df7071 simplemerge: move conflict warning message to filemerge
Siddharth Agarwal <sid0@fb.com>
parents: 16911
diff changeset
    24
  warning: conflicts while merging b! (edit, then use 'hg resolve --mark')
12299
a73684df0f8a tests: unify test-update-renames
Adrian Buehlmann <adrian@cadifra.com>
parents: 10874
diff changeset
    25
  0 files updated, 0 files merged, 0 files removed, 1 files unresolved
a73684df0f8a tests: unify test-update-renames
Adrian Buehlmann <adrian@cadifra.com>
parents: 10874
diff changeset
    26
  use 'hg resolve' to retry unresolved file merges
12316
4134686b83e1 tests: add exit codes to unified tests
Matt Mackall <mpm@selenic.com>
parents: 12299
diff changeset
    27
  [1]
29480
1e4512eac59e update: teach hg to override untracked dir with a tracked file on update
Kostia Balytskyi <ikostia@fb.com>
parents: 26614
diff changeset
    28
1e4512eac59e update: teach hg to override untracked dir with a tracked file on update
Kostia Balytskyi <ikostia@fb.com>
parents: 26614
diff changeset
    29
Test update when local untracked directory exists with the same name as a
1e4512eac59e update: teach hg to override untracked dir with a tracked file on update
Kostia Balytskyi <ikostia@fb.com>
parents: 26614
diff changeset
    30
tracked file in a commit we are updating to
1e4512eac59e update: teach hg to override untracked dir with a tracked file on update
Kostia Balytskyi <ikostia@fb.com>
parents: 26614
diff changeset
    31
  $ hg init r2 && cd r2
1e4512eac59e update: teach hg to override untracked dir with a tracked file on update
Kostia Balytskyi <ikostia@fb.com>
parents: 26614
diff changeset
    32
  $ echo root > root && hg ci -Am root  # rev 0
1e4512eac59e update: teach hg to override untracked dir with a tracked file on update
Kostia Balytskyi <ikostia@fb.com>
parents: 26614
diff changeset
    33
  adding root
1e4512eac59e update: teach hg to override untracked dir with a tracked file on update
Kostia Balytskyi <ikostia@fb.com>
parents: 26614
diff changeset
    34
  $ echo text > name && hg ci -Am "name is a file"  # rev 1
1e4512eac59e update: teach hg to override untracked dir with a tracked file on update
Kostia Balytskyi <ikostia@fb.com>
parents: 26614
diff changeset
    35
  adding name
1e4512eac59e update: teach hg to override untracked dir with a tracked file on update
Kostia Balytskyi <ikostia@fb.com>
parents: 26614
diff changeset
    36
  $ hg up 0
1e4512eac59e update: teach hg to override untracked dir with a tracked file on update
Kostia Balytskyi <ikostia@fb.com>
parents: 26614
diff changeset
    37
  0 files updated, 0 files merged, 1 files removed, 0 files unresolved
1e4512eac59e update: teach hg to override untracked dir with a tracked file on update
Kostia Balytskyi <ikostia@fb.com>
parents: 26614
diff changeset
    38
  $ mkdir name
1e4512eac59e update: teach hg to override untracked dir with a tracked file on update
Kostia Balytskyi <ikostia@fb.com>
parents: 26614
diff changeset
    39
  $ hg up 1
1e4512eac59e update: teach hg to override untracked dir with a tracked file on update
Kostia Balytskyi <ikostia@fb.com>
parents: 26614
diff changeset
    40
  1 files updated, 0 files merged, 0 files removed, 0 files unresolved
1e4512eac59e update: teach hg to override untracked dir with a tracked file on update
Kostia Balytskyi <ikostia@fb.com>
parents: 26614
diff changeset
    41
1e4512eac59e update: teach hg to override untracked dir with a tracked file on update
Kostia Balytskyi <ikostia@fb.com>
parents: 26614
diff changeset
    42
Test update when local untracked directory exists with some files in it and has
1e4512eac59e update: teach hg to override untracked dir with a tracked file on update
Kostia Balytskyi <ikostia@fb.com>
parents: 26614
diff changeset
    43
the same name a tracked file in a commit we are updating to. In future this
1e4512eac59e update: teach hg to override untracked dir with a tracked file on update
Kostia Balytskyi <ikostia@fb.com>
parents: 26614
diff changeset
    44
should be updated to give an friendlier error message, but now we should just
1e4512eac59e update: teach hg to override untracked dir with a tracked file on update
Kostia Balytskyi <ikostia@fb.com>
parents: 26614
diff changeset
    45
make sure that this does not erase untracked data
1e4512eac59e update: teach hg to override untracked dir with a tracked file on update
Kostia Balytskyi <ikostia@fb.com>
parents: 26614
diff changeset
    46
  $ hg up 0
1e4512eac59e update: teach hg to override untracked dir with a tracked file on update
Kostia Balytskyi <ikostia@fb.com>
parents: 26614
diff changeset
    47
  0 files updated, 0 files merged, 1 files removed, 0 files unresolved
1e4512eac59e update: teach hg to override untracked dir with a tracked file on update
Kostia Balytskyi <ikostia@fb.com>
parents: 26614
diff changeset
    48
  $ mkdir name
1e4512eac59e update: teach hg to override untracked dir with a tracked file on update
Kostia Balytskyi <ikostia@fb.com>
parents: 26614
diff changeset
    49
  $ echo text > name/file
1e4512eac59e update: teach hg to override untracked dir with a tracked file on update
Kostia Balytskyi <ikostia@fb.com>
parents: 26614
diff changeset
    50
  $ hg st
1e4512eac59e update: teach hg to override untracked dir with a tracked file on update
Kostia Balytskyi <ikostia@fb.com>
parents: 26614
diff changeset
    51
  ? name/file
1e4512eac59e update: teach hg to override untracked dir with a tracked file on update
Kostia Balytskyi <ikostia@fb.com>
parents: 26614
diff changeset
    52
  $ hg up 1
39593
c8514f858788 tests: stabilize change for handling not quoting non-empty-directory
Matt Harbison <matt_harbison@yahoo.com>
parents: 39577
diff changeset
    53
  abort: Unlinking directory not permitted: *$TESTTMP/r1/r2/name* (glob) (windows !)
39577
cb1329738d64 tests: handle Python 3 not quoting non-empty-directory error
Augie Fackler <augie@google.com>
parents: 39478
diff changeset
    54
  abort: Directory not empty: '?\$TESTTMP/r1/r2/name'? (re) (no-windows !)
39196
8c6775e812d8 merge: do not delete untracked files silently (issue5962)
Yuya Nishihara <yuya@tcha.org>
parents: 34942
diff changeset
    55
  [255]
8c6775e812d8 merge: do not delete untracked files silently (issue5962)
Yuya Nishihara <yuya@tcha.org>
parents: 34942
diff changeset
    56
  $ cat name/file
8c6775e812d8 merge: do not delete untracked files silently (issue5962)
Yuya Nishihara <yuya@tcha.org>
parents: 34942
diff changeset
    57
  text
29480
1e4512eac59e update: teach hg to override untracked dir with a tracked file on update
Kostia Balytskyi <ikostia@fb.com>
parents: 26614
diff changeset
    58
  $ cd ..
29629
b33c0c38d68f update: fix bug when update tries to modify folder symlink
Kostia Balytskyi <ikostia@fb.com>
parents: 29480
diff changeset
    59
b33c0c38d68f update: fix bug when update tries to modify folder symlink
Kostia Balytskyi <ikostia@fb.com>
parents: 29480
diff changeset
    60
#if symlink
b33c0c38d68f update: fix bug when update tries to modify folder symlink
Kostia Balytskyi <ikostia@fb.com>
parents: 29480
diff changeset
    61
b33c0c38d68f update: fix bug when update tries to modify folder symlink
Kostia Balytskyi <ikostia@fb.com>
parents: 29480
diff changeset
    62
Test update when two commits have symlinks that point to different folders
b33c0c38d68f update: fix bug when update tries to modify folder symlink
Kostia Balytskyi <ikostia@fb.com>
parents: 29480
diff changeset
    63
  $ hg init r3 && cd r3
b33c0c38d68f update: fix bug when update tries to modify folder symlink
Kostia Balytskyi <ikostia@fb.com>
parents: 29480
diff changeset
    64
  $ echo root > root && hg ci -Am root
b33c0c38d68f update: fix bug when update tries to modify folder symlink
Kostia Balytskyi <ikostia@fb.com>
parents: 29480
diff changeset
    65
  adding root
b33c0c38d68f update: fix bug when update tries to modify folder symlink
Kostia Balytskyi <ikostia@fb.com>
parents: 29480
diff changeset
    66
  $ mkdir folder1 && mkdir folder2
b33c0c38d68f update: fix bug when update tries to modify folder symlink
Kostia Balytskyi <ikostia@fb.com>
parents: 29480
diff changeset
    67
  $ ln -s folder1 folder
b33c0c38d68f update: fix bug when update tries to modify folder symlink
Kostia Balytskyi <ikostia@fb.com>
parents: 29480
diff changeset
    68
  $ hg ci -Am "symlink to folder1"
b33c0c38d68f update: fix bug when update tries to modify folder symlink
Kostia Balytskyi <ikostia@fb.com>
parents: 29480
diff changeset
    69
  adding folder
b33c0c38d68f update: fix bug when update tries to modify folder symlink
Kostia Balytskyi <ikostia@fb.com>
parents: 29480
diff changeset
    70
  $ rm folder
b33c0c38d68f update: fix bug when update tries to modify folder symlink
Kostia Balytskyi <ikostia@fb.com>
parents: 29480
diff changeset
    71
  $ ln -s folder2 folder
b33c0c38d68f update: fix bug when update tries to modify folder symlink
Kostia Balytskyi <ikostia@fb.com>
parents: 29480
diff changeset
    72
  $ hg ci -Am "symlink to folder2"
b33c0c38d68f update: fix bug when update tries to modify folder symlink
Kostia Balytskyi <ikostia@fb.com>
parents: 29480
diff changeset
    73
  $ hg up 1
b33c0c38d68f update: fix bug when update tries to modify folder symlink
Kostia Balytskyi <ikostia@fb.com>
parents: 29480
diff changeset
    74
  1 files updated, 0 files merged, 0 files removed, 0 files unresolved
b33c0c38d68f update: fix bug when update tries to modify folder symlink
Kostia Balytskyi <ikostia@fb.com>
parents: 29480
diff changeset
    75
  $ cd ..
b33c0c38d68f update: fix bug when update tries to modify folder symlink
Kostia Balytskyi <ikostia@fb.com>
parents: 29480
diff changeset
    76
b33c0c38d68f update: fix bug when update tries to modify folder symlink
Kostia Balytskyi <ikostia@fb.com>
parents: 29480
diff changeset
    77
#endif
30172
90a6c18a7c1d update: warn if cwd was deleted
Stanislau Hlebik <stash@fb.com>
parents: 29629
diff changeset
    78
30230
46a0203dfb89 tests: run "cwd was removed" test only if cwd can actually be removed
Yuya Nishihara <yuya@tcha.org>
parents: 30172
diff changeset
    79
#if rmcwd
46a0203dfb89 tests: run "cwd was removed" test only if cwd can actually be removed
Yuya Nishihara <yuya@tcha.org>
parents: 30172
diff changeset
    80
30172
90a6c18a7c1d update: warn if cwd was deleted
Stanislau Hlebik <stash@fb.com>
parents: 29629
diff changeset
    81
Test that warning is printed if cwd is deleted during update
90a6c18a7c1d update: warn if cwd was deleted
Stanislau Hlebik <stash@fb.com>
parents: 29629
diff changeset
    82
  $ hg init r4 && cd r4
90a6c18a7c1d update: warn if cwd was deleted
Stanislau Hlebik <stash@fb.com>
parents: 29629
diff changeset
    83
  $ mkdir dir
90a6c18a7c1d update: warn if cwd was deleted
Stanislau Hlebik <stash@fb.com>
parents: 29629
diff changeset
    84
  $ cd dir
90a6c18a7c1d update: warn if cwd was deleted
Stanislau Hlebik <stash@fb.com>
parents: 29629
diff changeset
    85
  $ echo a > a
90a6c18a7c1d update: warn if cwd was deleted
Stanislau Hlebik <stash@fb.com>
parents: 29629
diff changeset
    86
  $ echo b > b
90a6c18a7c1d update: warn if cwd was deleted
Stanislau Hlebik <stash@fb.com>
parents: 29629
diff changeset
    87
  $ hg add a b
90a6c18a7c1d update: warn if cwd was deleted
Stanislau Hlebik <stash@fb.com>
parents: 29629
diff changeset
    88
  $ hg ci -m "file and dir"
90a6c18a7c1d update: warn if cwd was deleted
Stanislau Hlebik <stash@fb.com>
parents: 29629
diff changeset
    89
  $ hg up -q null
90a6c18a7c1d update: warn if cwd was deleted
Stanislau Hlebik <stash@fb.com>
parents: 29629
diff changeset
    90
  current directory was removed
90a6c18a7c1d update: warn if cwd was deleted
Stanislau Hlebik <stash@fb.com>
parents: 29629
diff changeset
    91
  (consider changing to repo root: $TESTTMP/r1/r4)
30230
46a0203dfb89 tests: run "cwd was removed" test only if cwd can actually be removed
Yuya Nishihara <yuya@tcha.org>
parents: 30172
diff changeset
    92
46a0203dfb89 tests: run "cwd was removed" test only if cwd can actually be removed
Yuya Nishihara <yuya@tcha.org>
parents: 30172
diff changeset
    93
#endif