Mercurial > hg
annotate tests/test-confused-revert.t @ 27370:d9e3ebe56970 stable
record: don't dereference symlinks while copying over stat data
Previously, we could be calling os.utime or os.chflags (via shutil.copystat) on
a symlink. These functions dereference symlinks, so this would have caused the
timestamp of the target to be set. On a read-only or similarly weird
filesystem, this might cause an exception to be raised.
This is pretty hard to test because conjuring up a read-only filesystem for
test purposes is non-trivial.
author | Siddharth Agarwal <sid0@fb.com> |
---|---|
date | Sat, 12 Dec 2015 10:58:05 -0800 |
parents | a934b9249574 |
children | fc1d75e7a98d |
rev | line source |
---|---|
12284
f7eb190310ef
tests: unify test-confused-revert
Adrian Buehlmann <adrian@cadifra.com>
parents:
12156
diff
changeset
|
1 $ hg init |
f7eb190310ef
tests: unify test-confused-revert
Adrian Buehlmann <adrian@cadifra.com>
parents:
12156
diff
changeset
|
2 $ echo foo > a |
f7eb190310ef
tests: unify test-confused-revert
Adrian Buehlmann <adrian@cadifra.com>
parents:
12156
diff
changeset
|
3 $ hg add a |
f7eb190310ef
tests: unify test-confused-revert
Adrian Buehlmann <adrian@cadifra.com>
parents:
12156
diff
changeset
|
4 $ hg commit -m "1" |
1449
30146be3437c
Add test-confused-revert, fix permissions on test-revert
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
5 |
12284
f7eb190310ef
tests: unify test-confused-revert
Adrian Buehlmann <adrian@cadifra.com>
parents:
12156
diff
changeset
|
6 $ echo bar > b |
f7eb190310ef
tests: unify test-confused-revert
Adrian Buehlmann <adrian@cadifra.com>
parents:
12156
diff
changeset
|
7 $ hg add b |
f7eb190310ef
tests: unify test-confused-revert
Adrian Buehlmann <adrian@cadifra.com>
parents:
12156
diff
changeset
|
8 $ hg remove a |
1449
30146be3437c
Add test-confused-revert, fix permissions on test-revert
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
9 |
12284
f7eb190310ef
tests: unify test-confused-revert
Adrian Buehlmann <adrian@cadifra.com>
parents:
12156
diff
changeset
|
10 Should show a removed and b added: |
f7eb190310ef
tests: unify test-confused-revert
Adrian Buehlmann <adrian@cadifra.com>
parents:
12156
diff
changeset
|
11 |
f7eb190310ef
tests: unify test-confused-revert
Adrian Buehlmann <adrian@cadifra.com>
parents:
12156
diff
changeset
|
12 $ hg status |
f7eb190310ef
tests: unify test-confused-revert
Adrian Buehlmann <adrian@cadifra.com>
parents:
12156
diff
changeset
|
13 A b |
f7eb190310ef
tests: unify test-confused-revert
Adrian Buehlmann <adrian@cadifra.com>
parents:
12156
diff
changeset
|
14 R a |
1449
30146be3437c
Add test-confused-revert, fix permissions on test-revert
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
15 |
12284
f7eb190310ef
tests: unify test-confused-revert
Adrian Buehlmann <adrian@cadifra.com>
parents:
12156
diff
changeset
|
16 $ hg revert --all |
f7eb190310ef
tests: unify test-confused-revert
Adrian Buehlmann <adrian@cadifra.com>
parents:
12156
diff
changeset
|
17 undeleting a |
f7eb190310ef
tests: unify test-confused-revert
Adrian Buehlmann <adrian@cadifra.com>
parents:
12156
diff
changeset
|
18 forgetting b |
1449
30146be3437c
Add test-confused-revert, fix permissions on test-revert
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
19 |
12284
f7eb190310ef
tests: unify test-confused-revert
Adrian Buehlmann <adrian@cadifra.com>
parents:
12156
diff
changeset
|
20 Should show b unknown and a back to normal: |
f7eb190310ef
tests: unify test-confused-revert
Adrian Buehlmann <adrian@cadifra.com>
parents:
12156
diff
changeset
|
21 |
f7eb190310ef
tests: unify test-confused-revert
Adrian Buehlmann <adrian@cadifra.com>
parents:
12156
diff
changeset
|
22 $ hg status |
f7eb190310ef
tests: unify test-confused-revert
Adrian Buehlmann <adrian@cadifra.com>
parents:
12156
diff
changeset
|
23 ? b |
f7eb190310ef
tests: unify test-confused-revert
Adrian Buehlmann <adrian@cadifra.com>
parents:
12156
diff
changeset
|
24 |
f7eb190310ef
tests: unify test-confused-revert
Adrian Buehlmann <adrian@cadifra.com>
parents:
12156
diff
changeset
|
25 $ rm b |
1449
30146be3437c
Add test-confused-revert, fix permissions on test-revert
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
26 |
12284
f7eb190310ef
tests: unify test-confused-revert
Adrian Buehlmann <adrian@cadifra.com>
parents:
12156
diff
changeset
|
27 $ hg co -C 0 |
f7eb190310ef
tests: unify test-confused-revert
Adrian Buehlmann <adrian@cadifra.com>
parents:
12156
diff
changeset
|
28 0 files updated, 0 files merged, 0 files removed, 0 files unresolved |
f7eb190310ef
tests: unify test-confused-revert
Adrian Buehlmann <adrian@cadifra.com>
parents:
12156
diff
changeset
|
29 $ echo foo-a > a |
f7eb190310ef
tests: unify test-confused-revert
Adrian Buehlmann <adrian@cadifra.com>
parents:
12156
diff
changeset
|
30 $ hg commit -m "2a" |
1449
30146be3437c
Add test-confused-revert, fix permissions on test-revert
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
31 |
12284
f7eb190310ef
tests: unify test-confused-revert
Adrian Buehlmann <adrian@cadifra.com>
parents:
12156
diff
changeset
|
32 $ hg co -C 0 |
f7eb190310ef
tests: unify test-confused-revert
Adrian Buehlmann <adrian@cadifra.com>
parents:
12156
diff
changeset
|
33 1 files updated, 0 files merged, 0 files removed, 0 files unresolved |
f7eb190310ef
tests: unify test-confused-revert
Adrian Buehlmann <adrian@cadifra.com>
parents:
12156
diff
changeset
|
34 $ echo foo-b > a |
f7eb190310ef
tests: unify test-confused-revert
Adrian Buehlmann <adrian@cadifra.com>
parents:
12156
diff
changeset
|
35 $ hg commit -m "2b" |
f7eb190310ef
tests: unify test-confused-revert
Adrian Buehlmann <adrian@cadifra.com>
parents:
12156
diff
changeset
|
36 created new head |
1449
30146be3437c
Add test-confused-revert, fix permissions on test-revert
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
37 |
12284
f7eb190310ef
tests: unify test-confused-revert
Adrian Buehlmann <adrian@cadifra.com>
parents:
12156
diff
changeset
|
38 $ HGMERGE=true hg merge 1 |
f7eb190310ef
tests: unify test-confused-revert
Adrian Buehlmann <adrian@cadifra.com>
parents:
12156
diff
changeset
|
39 merging a |
f7eb190310ef
tests: unify test-confused-revert
Adrian Buehlmann <adrian@cadifra.com>
parents:
12156
diff
changeset
|
40 0 files updated, 1 files merged, 0 files removed, 0 files unresolved |
f7eb190310ef
tests: unify test-confused-revert
Adrian Buehlmann <adrian@cadifra.com>
parents:
12156
diff
changeset
|
41 (branch merge, don't forget to commit) |
1449
30146be3437c
Add test-confused-revert, fix permissions on test-revert
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
42 |
12284
f7eb190310ef
tests: unify test-confused-revert
Adrian Buehlmann <adrian@cadifra.com>
parents:
12156
diff
changeset
|
43 Should show foo-b: |
f7eb190310ef
tests: unify test-confused-revert
Adrian Buehlmann <adrian@cadifra.com>
parents:
12156
diff
changeset
|
44 |
f7eb190310ef
tests: unify test-confused-revert
Adrian Buehlmann <adrian@cadifra.com>
parents:
12156
diff
changeset
|
45 $ cat a |
f7eb190310ef
tests: unify test-confused-revert
Adrian Buehlmann <adrian@cadifra.com>
parents:
12156
diff
changeset
|
46 foo-b |
1449
30146be3437c
Add test-confused-revert, fix permissions on test-revert
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
47 |
12284
f7eb190310ef
tests: unify test-confused-revert
Adrian Buehlmann <adrian@cadifra.com>
parents:
12156
diff
changeset
|
48 $ echo bar > b |
f7eb190310ef
tests: unify test-confused-revert
Adrian Buehlmann <adrian@cadifra.com>
parents:
12156
diff
changeset
|
49 $ hg add b |
f7eb190310ef
tests: unify test-confused-revert
Adrian Buehlmann <adrian@cadifra.com>
parents:
12156
diff
changeset
|
50 $ rm a |
f7eb190310ef
tests: unify test-confused-revert
Adrian Buehlmann <adrian@cadifra.com>
parents:
12156
diff
changeset
|
51 $ hg remove a |
1449
30146be3437c
Add test-confused-revert, fix permissions on test-revert
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
52 |
12284
f7eb190310ef
tests: unify test-confused-revert
Adrian Buehlmann <adrian@cadifra.com>
parents:
12156
diff
changeset
|
53 Should show a removed and b added: |
f7eb190310ef
tests: unify test-confused-revert
Adrian Buehlmann <adrian@cadifra.com>
parents:
12156
diff
changeset
|
54 |
f7eb190310ef
tests: unify test-confused-revert
Adrian Buehlmann <adrian@cadifra.com>
parents:
12156
diff
changeset
|
55 $ hg status |
f7eb190310ef
tests: unify test-confused-revert
Adrian Buehlmann <adrian@cadifra.com>
parents:
12156
diff
changeset
|
56 A b |
f7eb190310ef
tests: unify test-confused-revert
Adrian Buehlmann <adrian@cadifra.com>
parents:
12156
diff
changeset
|
57 R a |
1449
30146be3437c
Add test-confused-revert, fix permissions on test-revert
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
58 |
12284
f7eb190310ef
tests: unify test-confused-revert
Adrian Buehlmann <adrian@cadifra.com>
parents:
12156
diff
changeset
|
59 Revert should fail: |
f7eb190310ef
tests: unify test-confused-revert
Adrian Buehlmann <adrian@cadifra.com>
parents:
12156
diff
changeset
|
60 |
13022
3fd4e4e81382
revert: improve merge advice and favor its error over all
timeless <timeless@gmail.com>
parents:
12316
diff
changeset
|
61 $ hg revert |
14903
a934b9249574
revert: restore check for uncommitted merge (issue2915) (BC)
Matt Mackall <mpm@selenic.com>
parents:
14721
diff
changeset
|
62 abort: uncommitted merge with no revision specified |
a934b9249574
revert: restore check for uncommitted merge (issue2915) (BC)
Matt Mackall <mpm@selenic.com>
parents:
14721
diff
changeset
|
63 (use "hg update" or see "hg help revert") |
12316
4134686b83e1
tests: add exit codes to unified tests
Matt Mackall <mpm@selenic.com>
parents:
12284
diff
changeset
|
64 [255] |
1449
30146be3437c
Add test-confused-revert, fix permissions on test-revert
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
65 |
12284
f7eb190310ef
tests: unify test-confused-revert
Adrian Buehlmann <adrian@cadifra.com>
parents:
12156
diff
changeset
|
66 Revert should be ok now: |
f7eb190310ef
tests: unify test-confused-revert
Adrian Buehlmann <adrian@cadifra.com>
parents:
12156
diff
changeset
|
67 |
f7eb190310ef
tests: unify test-confused-revert
Adrian Buehlmann <adrian@cadifra.com>
parents:
12156
diff
changeset
|
68 $ hg revert -r2 --all |
f7eb190310ef
tests: unify test-confused-revert
Adrian Buehlmann <adrian@cadifra.com>
parents:
12156
diff
changeset
|
69 undeleting a |
f7eb190310ef
tests: unify test-confused-revert
Adrian Buehlmann <adrian@cadifra.com>
parents:
12156
diff
changeset
|
70 forgetting b |
1449
30146be3437c
Add test-confused-revert, fix permissions on test-revert
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
71 |
12284
f7eb190310ef
tests: unify test-confused-revert
Adrian Buehlmann <adrian@cadifra.com>
parents:
12156
diff
changeset
|
72 Should show b unknown and a marked modified (merged): |
f7eb190310ef
tests: unify test-confused-revert
Adrian Buehlmann <adrian@cadifra.com>
parents:
12156
diff
changeset
|
73 |
f7eb190310ef
tests: unify test-confused-revert
Adrian Buehlmann <adrian@cadifra.com>
parents:
12156
diff
changeset
|
74 $ hg status |
f7eb190310ef
tests: unify test-confused-revert
Adrian Buehlmann <adrian@cadifra.com>
parents:
12156
diff
changeset
|
75 M a |
f7eb190310ef
tests: unify test-confused-revert
Adrian Buehlmann <adrian@cadifra.com>
parents:
12156
diff
changeset
|
76 ? b |
2214
6c6c0e5595a2
make test-confused-revert check working dir with two parents.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
1933
diff
changeset
|
77 |
12284
f7eb190310ef
tests: unify test-confused-revert
Adrian Buehlmann <adrian@cadifra.com>
parents:
12156
diff
changeset
|
78 Should show foo-b: |
1449
30146be3437c
Add test-confused-revert, fix permissions on test-revert
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
79 |
12284
f7eb190310ef
tests: unify test-confused-revert
Adrian Buehlmann <adrian@cadifra.com>
parents:
12156
diff
changeset
|
80 $ cat a |
f7eb190310ef
tests: unify test-confused-revert
Adrian Buehlmann <adrian@cadifra.com>
parents:
12156
diff
changeset
|
81 foo-b |
1449
30146be3437c
Add test-confused-revert, fix permissions on test-revert
Matt Mackall <mpm@selenic.com>
parents:
diff
changeset
|
82 |