Mercurial > hg
annotate tests/test-rename-rev.t @ 45587:768412472663
merge: store cases when a file is absent post merge in commitinfo
Some merges can result in file being absent form working directory. This can be
one of file was kept deleted or file was removed by merge code.
User might revert the file back before committing. In such cases we will like to
have better handling and create new filenodes.
We store this info in mergestate as commitinfo so that we can use it while
committing to create new filenode if required.
Differential Revision: https://phab.mercurial-scm.org/D9003
author | Pulkit Goyal <7895pulkit@gmail.com> |
---|---|
date | Mon, 24 Aug 2020 15:35:34 +0530 |
parents | 5178dd2233d0 |
children | 8d72e29ad1e0 |
rev | line source |
---|---|
12098
12108d7f2ce1
tests: unify test-rename
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
11551
diff
changeset
|
1 $ hg init |
12108d7f2ce1
tests: unify test-rename
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
11551
diff
changeset
|
2 $ mkdir d1 d1/d11 d2 |
12108d7f2ce1
tests: unify test-rename
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
11551
diff
changeset
|
3 $ echo d1/a > d1/a |
12108d7f2ce1
tests: unify test-rename
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
11551
diff
changeset
|
4 $ echo d1/ba > d1/ba |
12108d7f2ce1
tests: unify test-rename
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
11551
diff
changeset
|
5 $ echo d1/a1 > d1/d11/a1 |
12108d7f2ce1
tests: unify test-rename
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
11551
diff
changeset
|
6 $ echo d1/b > d1/b |
12108d7f2ce1
tests: unify test-rename
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
11551
diff
changeset
|
7 $ echo d2/b > d2/b |
12108d7f2ce1
tests: unify test-rename
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
11551
diff
changeset
|
8 $ hg add d1/a d1/b d1/ba d1/d11/a1 d2/b |
44367
9dab3fa64325
copy: add experimental support for marking committed copies
Martin von Zweigbergk <martinvonz@google.com>
parents:
39350
diff
changeset
|
9 $ hg commit -m "intial" |
12898
f2fd909053d9
test-rename: test with absolute paths
Martin Geisler <mg@aragost.com>
parents:
12897
diff
changeset
|
10 |
1512
53ad6ee6ede4
generalize copy/rename to handle more than one source directory
Robin Farine <robin.farine@terminus.org>
parents:
diff
changeset
|
11 |
44367
9dab3fa64325
copy: add experimental support for marking committed copies
Martin von Zweigbergk <martinvonz@google.com>
parents:
39350
diff
changeset
|
12 Test single file |
1565
4bcbc126b80b
fix rename --after
Robin Farine <robin.farine@terminus.org>
parents:
1515
diff
changeset
|
13 |
44806
8e47b43d665f
tests: show poor error message for `hg cp -A --at-rev . non-existent dst`
Martin von Zweigbergk <martinvonz@google.com>
parents:
44805
diff
changeset
|
14 # One recorded copy, one copy to record after commit |
44367
9dab3fa64325
copy: add experimental support for marking committed copies
Martin von Zweigbergk <martinvonz@google.com>
parents:
39350
diff
changeset
|
15 $ hg cp d1/b d1/c |
9dab3fa64325
copy: add experimental support for marking committed copies
Martin von Zweigbergk <martinvonz@google.com>
parents:
39350
diff
changeset
|
16 $ cp d1/b d1/d |
9dab3fa64325
copy: add experimental support for marking committed copies
Martin von Zweigbergk <martinvonz@google.com>
parents:
39350
diff
changeset
|
17 $ hg add d1/d |
9dab3fa64325
copy: add experimental support for marking committed copies
Martin von Zweigbergk <martinvonz@google.com>
parents:
39350
diff
changeset
|
18 $ hg ci -m 'copy d1/b to d1/c and d1/d' |
9dab3fa64325
copy: add experimental support for marking committed copies
Martin von Zweigbergk <martinvonz@google.com>
parents:
39350
diff
changeset
|
19 $ hg st -C --change . |
9dab3fa64325
copy: add experimental support for marking committed copies
Martin von Zweigbergk <martinvonz@google.com>
parents:
39350
diff
changeset
|
20 A d1/c |
12098
12108d7f2ce1
tests: unify test-rename
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
11551
diff
changeset
|
21 d1/b |
44367
9dab3fa64325
copy: add experimental support for marking committed copies
Martin von Zweigbergk <martinvonz@google.com>
parents:
39350
diff
changeset
|
22 A d1/d |
9dab3fa64325
copy: add experimental support for marking committed copies
Martin von Zweigbergk <martinvonz@google.com>
parents:
39350
diff
changeset
|
23 # Errors out without --after for now |
9dab3fa64325
copy: add experimental support for marking committed copies
Martin von Zweigbergk <martinvonz@google.com>
parents:
39350
diff
changeset
|
24 $ hg cp --at-rev . d1/b d1/d |
9dab3fa64325
copy: add experimental support for marking committed copies
Martin von Zweigbergk <martinvonz@google.com>
parents:
39350
diff
changeset
|
25 abort: --at-rev requires --after |
9dab3fa64325
copy: add experimental support for marking committed copies
Martin von Zweigbergk <martinvonz@google.com>
parents:
39350
diff
changeset
|
26 [255] |
44806
8e47b43d665f
tests: show poor error message for `hg cp -A --at-rev . non-existent dst`
Martin von Zweigbergk <martinvonz@google.com>
parents:
44805
diff
changeset
|
27 # Errors out with non-existent source |
8e47b43d665f
tests: show poor error message for `hg cp -A --at-rev . non-existent dst`
Martin von Zweigbergk <martinvonz@google.com>
parents:
44805
diff
changeset
|
28 $ hg cp -A --at-rev . d1/non-existent d1/d |
8e47b43d665f
tests: show poor error message for `hg cp -A --at-rev . non-existent dst`
Martin von Zweigbergk <martinvonz@google.com>
parents:
44805
diff
changeset
|
29 d1/non-existent: no such file in rev 55d1fd85ef0a |
44807
16596f5e1afa
copy: give better error message when no source paths found with --at-rev
Martin von Zweigbergk <martinvonz@google.com>
parents:
44806
diff
changeset
|
30 abort: no files to copy |
44806
8e47b43d665f
tests: show poor error message for `hg cp -A --at-rev . non-existent dst`
Martin von Zweigbergk <martinvonz@google.com>
parents:
44805
diff
changeset
|
31 [255] |
44367
9dab3fa64325
copy: add experimental support for marking committed copies
Martin von Zweigbergk <martinvonz@google.com>
parents:
39350
diff
changeset
|
32 # Errors out with non-existent destination |
9dab3fa64325
copy: add experimental support for marking committed copies
Martin von Zweigbergk <martinvonz@google.com>
parents:
39350
diff
changeset
|
33 $ hg cp -A --at-rev . d1/b d1/non-existent |
9dab3fa64325
copy: add experimental support for marking committed copies
Martin von Zweigbergk <martinvonz@google.com>
parents:
39350
diff
changeset
|
34 abort: d1/non-existent: copy destination does not exist in 8a9d70fa20c9 |
9dab3fa64325
copy: add experimental support for marking committed copies
Martin von Zweigbergk <martinvonz@google.com>
parents:
39350
diff
changeset
|
35 [255] |
9dab3fa64325
copy: add experimental support for marking committed copies
Martin von Zweigbergk <martinvonz@google.com>
parents:
39350
diff
changeset
|
36 # Successful invocation |
9dab3fa64325
copy: add experimental support for marking committed copies
Martin von Zweigbergk <martinvonz@google.com>
parents:
39350
diff
changeset
|
37 $ hg cp -A --at-rev . d1/b d1/d |
9dab3fa64325
copy: add experimental support for marking committed copies
Martin von Zweigbergk <martinvonz@google.com>
parents:
39350
diff
changeset
|
38 saved backup bundle to $TESTTMP/.hg/strip-backup/8a9d70fa20c9-973ae357-copy.hg |
9dab3fa64325
copy: add experimental support for marking committed copies
Martin von Zweigbergk <martinvonz@google.com>
parents:
39350
diff
changeset
|
39 # New copy is recorded, and previously recorded copy is also still there |
9dab3fa64325
copy: add experimental support for marking committed copies
Martin von Zweigbergk <martinvonz@google.com>
parents:
39350
diff
changeset
|
40 $ hg st -C --change . |
9dab3fa64325
copy: add experimental support for marking committed copies
Martin von Zweigbergk <martinvonz@google.com>
parents:
39350
diff
changeset
|
41 A d1/c |
12098
12108d7f2ce1
tests: unify test-rename
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
11551
diff
changeset
|
42 d1/b |
44367
9dab3fa64325
copy: add experimental support for marking committed copies
Martin von Zweigbergk <martinvonz@google.com>
parents:
39350
diff
changeset
|
43 A d1/d |
12098
12108d7f2ce1
tests: unify test-rename
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
11551
diff
changeset
|
44 d1/b |
12108d7f2ce1
tests: unify test-rename
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
11551
diff
changeset
|
45 |
45369
5178dd2233d0
rename: add support for --at-rev, which marks as copy and removes the source
Martin von Zweigbergk <martinvonz@google.com>
parents:
44807
diff
changeset
|
46 Test moved file (not copied) using 'hg cp' command |
44804
5c49a4fdb238
tests: show that `hg cp -A --at-rev .` doesn't work for renames
Martin von Zweigbergk <martinvonz@google.com>
parents:
44367
diff
changeset
|
47 |
5c49a4fdb238
tests: show that `hg cp -A --at-rev .` doesn't work for renames
Martin von Zweigbergk <martinvonz@google.com>
parents:
44367
diff
changeset
|
48 $ hg co 0 |
5c49a4fdb238
tests: show that `hg cp -A --at-rev .` doesn't work for renames
Martin von Zweigbergk <martinvonz@google.com>
parents:
44367
diff
changeset
|
49 0 files updated, 0 files merged, 2 files removed, 0 files unresolved |
5c49a4fdb238
tests: show that `hg cp -A --at-rev .` doesn't work for renames
Martin von Zweigbergk <martinvonz@google.com>
parents:
44367
diff
changeset
|
50 $ mv d1/b d1/d |
5c49a4fdb238
tests: show that `hg cp -A --at-rev .` doesn't work for renames
Martin von Zweigbergk <martinvonz@google.com>
parents:
44367
diff
changeset
|
51 $ hg rm -A d1/b |
5c49a4fdb238
tests: show that `hg cp -A --at-rev .` doesn't work for renames
Martin von Zweigbergk <martinvonz@google.com>
parents:
44367
diff
changeset
|
52 $ hg add d1/d |
5c49a4fdb238
tests: show that `hg cp -A --at-rev .` doesn't work for renames
Martin von Zweigbergk <martinvonz@google.com>
parents:
44367
diff
changeset
|
53 $ hg ci -m 'move d1/b to d1/d' |
5c49a4fdb238
tests: show that `hg cp -A --at-rev .` doesn't work for renames
Martin von Zweigbergk <martinvonz@google.com>
parents:
44367
diff
changeset
|
54 created new head |
5c49a4fdb238
tests: show that `hg cp -A --at-rev .` doesn't work for renames
Martin von Zweigbergk <martinvonz@google.com>
parents:
44367
diff
changeset
|
55 $ hg cp -A --at-rev . d1/b d1/d |
44805
02bf61bb4a70
copy: to find copy source, walk parent of revision we're marking copies in
Martin von Zweigbergk <martinvonz@google.com>
parents:
44804
diff
changeset
|
56 saved backup bundle to $TESTTMP/.hg/strip-backup/519850c3ea27-153c8fbb-copy.hg |
44804
5c49a4fdb238
tests: show that `hg cp -A --at-rev .` doesn't work for renames
Martin von Zweigbergk <martinvonz@google.com>
parents:
44367
diff
changeset
|
57 $ hg st -C --change . |
5c49a4fdb238
tests: show that `hg cp -A --at-rev .` doesn't work for renames
Martin von Zweigbergk <martinvonz@google.com>
parents:
44367
diff
changeset
|
58 A d1/d |
44805
02bf61bb4a70
copy: to find copy source, walk parent of revision we're marking copies in
Martin von Zweigbergk <martinvonz@google.com>
parents:
44804
diff
changeset
|
59 d1/b |
44804
5c49a4fdb238
tests: show that `hg cp -A --at-rev .` doesn't work for renames
Martin von Zweigbergk <martinvonz@google.com>
parents:
44367
diff
changeset
|
60 R d1/b |
5c49a4fdb238
tests: show that `hg cp -A --at-rev .` doesn't work for renames
Martin von Zweigbergk <martinvonz@google.com>
parents:
44367
diff
changeset
|
61 |
45369
5178dd2233d0
rename: add support for --at-rev, which marks as copy and removes the source
Martin von Zweigbergk <martinvonz@google.com>
parents:
44807
diff
changeset
|
62 Test moved file (not copied) using 'hg mv' command |
5178dd2233d0
rename: add support for --at-rev, which marks as copy and removes the source
Martin von Zweigbergk <martinvonz@google.com>
parents:
44807
diff
changeset
|
63 |
5178dd2233d0
rename: add support for --at-rev, which marks as copy and removes the source
Martin von Zweigbergk <martinvonz@google.com>
parents:
44807
diff
changeset
|
64 $ hg co 0 |
5178dd2233d0
rename: add support for --at-rev, which marks as copy and removes the source
Martin von Zweigbergk <martinvonz@google.com>
parents:
44807
diff
changeset
|
65 1 files updated, 0 files merged, 1 files removed, 0 files unresolved |
5178dd2233d0
rename: add support for --at-rev, which marks as copy and removes the source
Martin von Zweigbergk <martinvonz@google.com>
parents:
44807
diff
changeset
|
66 $ mv d1/b d1/d |
5178dd2233d0
rename: add support for --at-rev, which marks as copy and removes the source
Martin von Zweigbergk <martinvonz@google.com>
parents:
44807
diff
changeset
|
67 $ hg rm -A d1/b |
5178dd2233d0
rename: add support for --at-rev, which marks as copy and removes the source
Martin von Zweigbergk <martinvonz@google.com>
parents:
44807
diff
changeset
|
68 $ hg add d1/d |
5178dd2233d0
rename: add support for --at-rev, which marks as copy and removes the source
Martin von Zweigbergk <martinvonz@google.com>
parents:
44807
diff
changeset
|
69 $ hg ci -m 'move d1/b to d1/d' |
5178dd2233d0
rename: add support for --at-rev, which marks as copy and removes the source
Martin von Zweigbergk <martinvonz@google.com>
parents:
44807
diff
changeset
|
70 created new head |
5178dd2233d0
rename: add support for --at-rev, which marks as copy and removes the source
Martin von Zweigbergk <martinvonz@google.com>
parents:
44807
diff
changeset
|
71 $ hg mv -A --at-rev . d1/b d1/d |
5178dd2233d0
rename: add support for --at-rev, which marks as copy and removes the source
Martin von Zweigbergk <martinvonz@google.com>
parents:
44807
diff
changeset
|
72 saved backup bundle to $TESTTMP/.hg/strip-backup/519850c3ea27-153c8fbb-copy.hg |
5178dd2233d0
rename: add support for --at-rev, which marks as copy and removes the source
Martin von Zweigbergk <martinvonz@google.com>
parents:
44807
diff
changeset
|
73 $ hg st -C --change . |
5178dd2233d0
rename: add support for --at-rev, which marks as copy and removes the source
Martin von Zweigbergk <martinvonz@google.com>
parents:
44807
diff
changeset
|
74 A d1/d |
5178dd2233d0
rename: add support for --at-rev, which marks as copy and removes the source
Martin von Zweigbergk <martinvonz@google.com>
parents:
44807
diff
changeset
|
75 d1/b |
5178dd2233d0
rename: add support for --at-rev, which marks as copy and removes the source
Martin von Zweigbergk <martinvonz@google.com>
parents:
44807
diff
changeset
|
76 R d1/b |
5178dd2233d0
rename: add support for --at-rev, which marks as copy and removes the source
Martin von Zweigbergk <martinvonz@google.com>
parents:
44807
diff
changeset
|
77 |
5178dd2233d0
rename: add support for --at-rev, which marks as copy and removes the source
Martin von Zweigbergk <martinvonz@google.com>
parents:
44807
diff
changeset
|
78 Test moved file (not copied) for which source still exists |
5178dd2233d0
rename: add support for --at-rev, which marks as copy and removes the source
Martin von Zweigbergk <martinvonz@google.com>
parents:
44807
diff
changeset
|
79 |
5178dd2233d0
rename: add support for --at-rev, which marks as copy and removes the source
Martin von Zweigbergk <martinvonz@google.com>
parents:
44807
diff
changeset
|
80 $ hg co 0 |
5178dd2233d0
rename: add support for --at-rev, which marks as copy and removes the source
Martin von Zweigbergk <martinvonz@google.com>
parents:
44807
diff
changeset
|
81 1 files updated, 0 files merged, 1 files removed, 0 files unresolved |
5178dd2233d0
rename: add support for --at-rev, which marks as copy and removes the source
Martin von Zweigbergk <martinvonz@google.com>
parents:
44807
diff
changeset
|
82 $ cp d1/b d1/d |
5178dd2233d0
rename: add support for --at-rev, which marks as copy and removes the source
Martin von Zweigbergk <martinvonz@google.com>
parents:
44807
diff
changeset
|
83 $ hg add d1/d |
5178dd2233d0
rename: add support for --at-rev, which marks as copy and removes the source
Martin von Zweigbergk <martinvonz@google.com>
parents:
44807
diff
changeset
|
84 $ hg ci -m 'copy d1/b to d1/d' |
5178dd2233d0
rename: add support for --at-rev, which marks as copy and removes the source
Martin von Zweigbergk <martinvonz@google.com>
parents:
44807
diff
changeset
|
85 created new head |
5178dd2233d0
rename: add support for --at-rev, which marks as copy and removes the source
Martin von Zweigbergk <martinvonz@google.com>
parents:
44807
diff
changeset
|
86 $ hg mv -A --at-rev . d1/b d1/d |
5178dd2233d0
rename: add support for --at-rev, which marks as copy and removes the source
Martin von Zweigbergk <martinvonz@google.com>
parents:
44807
diff
changeset
|
87 saved backup bundle to $TESTTMP/.hg/strip-backup/c8d0f6bcf7ca-1c9bb53e-copy.hg |
5178dd2233d0
rename: add support for --at-rev, which marks as copy and removes the source
Martin von Zweigbergk <martinvonz@google.com>
parents:
44807
diff
changeset
|
88 $ hg st -C --change . |
5178dd2233d0
rename: add support for --at-rev, which marks as copy and removes the source
Martin von Zweigbergk <martinvonz@google.com>
parents:
44807
diff
changeset
|
89 A d1/d |
5178dd2233d0
rename: add support for --at-rev, which marks as copy and removes the source
Martin von Zweigbergk <martinvonz@google.com>
parents:
44807
diff
changeset
|
90 d1/b |
5178dd2233d0
rename: add support for --at-rev, which marks as copy and removes the source
Martin von Zweigbergk <martinvonz@google.com>
parents:
44807
diff
changeset
|
91 |
44367
9dab3fa64325
copy: add experimental support for marking committed copies
Martin von Zweigbergk <martinvonz@google.com>
parents:
39350
diff
changeset
|
92 Test using directory as destination |
1512
53ad6ee6ede4
generalize copy/rename to handle more than one source directory
Robin Farine <robin.farine@terminus.org>
parents:
diff
changeset
|
93 |
44367
9dab3fa64325
copy: add experimental support for marking committed copies
Martin von Zweigbergk <martinvonz@google.com>
parents:
39350
diff
changeset
|
94 $ hg co 0 |
45369
5178dd2233d0
rename: add support for --at-rev, which marks as copy and removes the source
Martin von Zweigbergk <martinvonz@google.com>
parents:
44807
diff
changeset
|
95 0 files updated, 0 files merged, 1 files removed, 0 files unresolved |
44367
9dab3fa64325
copy: add experimental support for marking committed copies
Martin von Zweigbergk <martinvonz@google.com>
parents:
39350
diff
changeset
|
96 $ cp -R d1 d3 |
9dab3fa64325
copy: add experimental support for marking committed copies
Martin von Zweigbergk <martinvonz@google.com>
parents:
39350
diff
changeset
|
97 $ hg add d3 |
9dab3fa64325
copy: add experimental support for marking committed copies
Martin von Zweigbergk <martinvonz@google.com>
parents:
39350
diff
changeset
|
98 adding d3/a |
9dab3fa64325
copy: add experimental support for marking committed copies
Martin von Zweigbergk <martinvonz@google.com>
parents:
39350
diff
changeset
|
99 adding d3/b |
9dab3fa64325
copy: add experimental support for marking committed copies
Martin von Zweigbergk <martinvonz@google.com>
parents:
39350
diff
changeset
|
100 adding d3/ba |
9dab3fa64325
copy: add experimental support for marking committed copies
Martin von Zweigbergk <martinvonz@google.com>
parents:
39350
diff
changeset
|
101 adding d3/d11/a1 |
9dab3fa64325
copy: add experimental support for marking committed copies
Martin von Zweigbergk <martinvonz@google.com>
parents:
39350
diff
changeset
|
102 $ hg ci -m 'copy d1/ to d3/' |
9dab3fa64325
copy: add experimental support for marking committed copies
Martin von Zweigbergk <martinvonz@google.com>
parents:
39350
diff
changeset
|
103 created new head |
9dab3fa64325
copy: add experimental support for marking committed copies
Martin von Zweigbergk <martinvonz@google.com>
parents:
39350
diff
changeset
|
104 $ hg cp -A --at-rev . d1 d3 |
9dab3fa64325
copy: add experimental support for marking committed copies
Martin von Zweigbergk <martinvonz@google.com>
parents:
39350
diff
changeset
|
105 abort: d3: --at-rev does not support a directory as destination |
12316
4134686b83e1
tests: add exit codes to unified tests
Matt Mackall <mpm@selenic.com>
parents:
12156
diff
changeset
|
106 [255] |
12098
12108d7f2ce1
tests: unify test-rename
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
11551
diff
changeset
|
107 |