test-copy.t
248 lines
| 5.9 KiB
| text/troff
|
Tads3Lexer
/ tests / test-copy.t
|
r26919 | # enable bundle2 in advance | ||
$ cat << EOF >> $HGRCPATH | ||||
> [format] | ||||
> usegeneraldelta=yes | ||||
> EOF | ||||
|
r16856 | |||
$ mkdir part1 | ||||
$ cd part1 | ||||
|
r11805 | $ hg init | ||
$ echo a > a | ||||
$ hg add a | ||||
|
r12156 | $ hg commit -m "1" | ||
|
r11805 | $ hg status | ||
$ hg copy a b | ||||
|
r13962 | $ hg --config ui.portablefilenames=abort copy a con.xml | ||
abort: filename contains 'con', which is reserved on Windows: 'con.xml' | ||||
[255] | ||||
|
r11805 | $ hg status | ||
A b | ||||
$ hg sum | ||||
|
r12156 | parent: 0:c19d34741b0a tip | ||
|
r11805 | 1 | ||
branch: default | ||||
commit: 1 copied | ||||
update: (current) | ||||
|
r25382 | phases: 1 draft | ||
|
r12156 | $ hg --debug commit -m "2" | ||
|
r23749 | committing files: | ||
|
r11805 | b | ||
b: copy a:b789fdd96dc2f3bd229c1dd8eedf0fc60e2b68e3 | ||||
|
r23749 | committing manifest | ||
committing changelog | ||||
|
r12156 | committed changeset 1:93580a2c28a50a56f63526fb305067e6fbf739c4 | ||
|
r11805 | |||
we should see two history entries | ||||
$ hg history -v | ||||
|
r12156 | changeset: 1:93580a2c28a5 | ||
|
r11805 | tag: tip | ||
user: test | ||||
|
r12156 | date: Thu Jan 01 00:00:00 1970 +0000 | ||
|
r11805 | files: b | ||
description: | ||||
2 | ||||
|
r12156 | changeset: 0:c19d34741b0a | ||
|
r11805 | user: test | ||
|
r12156 | date: Thu Jan 01 00:00:00 1970 +0000 | ||
|
r11805 | files: a | ||
description: | ||||
1 | ||||
we should see one log entry for a | ||||
$ hg log a | ||||
|
r12156 | changeset: 0:c19d34741b0a | ||
|
r11805 | user: test | ||
|
r12156 | date: Thu Jan 01 00:00:00 1970 +0000 | ||
|
r11805 | summary: 1 | ||
this should show a revision linked to changeset 0 | ||||
|
r14182 | $ hg debugindex a | ||
|
r17132 | rev offset length ..... linkrev nodeid p1 p2 (re) | ||
0 0 3 ..... 0 b789fdd96dc2 000000000000 000000000000 (re) | ||||
|
r11805 | |||
we should see one log entry for b | ||||
$ hg log b | ||||
|
r12156 | changeset: 1:93580a2c28a5 | ||
|
r11805 | tag: tip | ||
user: test | ||||
|
r12156 | date: Thu Jan 01 00:00:00 1970 +0000 | ||
|
r11805 | summary: 2 | ||
this should show a revision linked to changeset 1 | ||||
|
r14182 | $ hg debugindex b | ||
|
r17132 | rev offset length ..... linkrev nodeid p1 p2 (re) | ||
0 0 65 ..... 1 37d9b5d994ea 000000000000 000000000000 (re) | ||||
|
r11805 | |||
this should show the rename information in the metadata | ||||
|
r14182 | $ hg debugdata b 0 | head -3 | tail -2 | ||
|
r11805 | copy: a | ||
copyrev: b789fdd96dc2f3bd229c1dd8eedf0fc60e2b68e3 | ||||
|
r25472 | $ md5sum.py .hg/store/data/b.i | ||
|
r26919 | 44913824c8f5890ae218f9829535922e .hg/store/data/b.i | ||
|
r11805 | $ hg cat b > bsum | ||
|
r25472 | $ md5sum.py bsum | ||
|
r11805 | 60b725f10c9c85c70d97880dfe8191b3 bsum | ||
$ hg cat a > asum | ||||
|
r25472 | $ md5sum.py asum | ||
|
r11805 | 60b725f10c9c85c70d97880dfe8191b3 asum | ||
$ hg verify | ||||
checking changesets | ||||
checking manifests | ||||
crosschecking files in changesets and manifests | ||||
checking files | ||||
2 files, 2 changesets, 2 total revisions | ||||
|
r16856 | |||
$ cd .. | ||||
$ mkdir part2 | ||||
$ cd part2 | ||||
$ hg init | ||||
$ echo foo > foo | ||||
should fail - foo is not managed | ||||
$ hg mv foo bar | ||||
foo: not copying - file is not managed | ||||
abort: no files to copy | ||||
[255] | ||||
$ hg st -A | ||||
? foo | ||||
$ hg add foo | ||||
dry-run; print a warning that this is not a real copy; foo is added | ||||
$ hg mv --dry-run foo bar | ||||
foo has not been committed yet, so no copy data will be stored for bar. | ||||
$ hg st -A | ||||
A foo | ||||
should print a warning that this is not a real copy; bar is added | ||||
$ hg mv foo bar | ||||
foo has not been committed yet, so no copy data will be stored for bar. | ||||
$ hg st -A | ||||
A bar | ||||
should print a warning that this is not a real copy; foo is added | ||||
$ hg cp bar foo | ||||
bar has not been committed yet, so no copy data will be stored for foo. | ||||
$ hg rm -f bar | ||||
$ rm bar | ||||
$ hg st -A | ||||
A foo | ||||
$ hg commit -m1 | ||||
moving a missing file | ||||
$ rm foo | ||||
$ hg mv foo foo3 | ||||
|
r24364 | foo: deleted in working directory | ||
|
r16856 | foo3 does not exist! | ||
$ hg up -qC . | ||||
|
r17492 | copy --after to a nonexistent target filename | ||
|
r16856 | $ hg cp -A foo dummy | ||
foo: not recording copy - dummy does not exist | ||||
dry-run; should show that foo is clean | ||||
$ hg copy --dry-run foo bar | ||||
$ hg st -A | ||||
C foo | ||||
should show copy | ||||
$ hg copy foo bar | ||||
$ hg st -C | ||||
A bar | ||||
foo | ||||
shouldn't show copy | ||||
$ hg commit -m2 | ||||
$ hg st -C | ||||
should match | ||||
$ hg debugindex foo | ||||
|
r17132 | rev offset length ..... linkrev nodeid p1 p2 (re) | ||
0 0 5 ..... 0 2ed2a3912a0b 000000000000 000000000000 (re) | ||||
|
r16856 | $ hg debugrename bar | ||
bar renamed from foo:2ed2a3912a0b24502043eae84ee4b279c18b90dd | ||||
$ echo bleah > foo | ||||
$ echo quux > bar | ||||
$ hg commit -m3 | ||||
should not be renamed | ||||
$ hg debugrename bar | ||||
bar not renamed | ||||
$ hg copy -f foo bar | ||||
should show copy | ||||
$ hg st -C | ||||
M bar | ||||
foo | ||||
|
r23958 | |||
XXX: filtering lfilesrepo.status() in 3.3-rc causes the copy source to not be | ||||
displayed. | ||||
$ hg st -C --config extensions.largefiles= | ||||
M bar | ||||
foo | ||||
|
r16856 | $ hg commit -m3 | ||
should show no parents for tip | ||||
$ hg debugindex bar | ||||
|
r17132 | rev offset length ..... linkrev nodeid p1 p2 (re) | ||
0 0 69 ..... 1 7711d36246cc 000000000000 000000000000 (re) | ||||
1 69 6 ..... 2 bdf70a2b8d03 7711d36246cc 000000000000 (re) | ||||
|
r23285 | 2 75 71 ..... 3 b2558327ea8d 000000000000 000000000000 (re) | ||
|
r16856 | should match | ||
$ hg debugindex foo | ||||
|
r17132 | rev offset length ..... linkrev nodeid p1 p2 (re) | ||
0 0 5 ..... 0 2ed2a3912a0b 000000000000 000000000000 (re) | ||||
1 5 7 ..... 2 dd12c926cf16 2ed2a3912a0b 000000000000 (re) | ||||
|
r16856 | $ hg debugrename bar | ||
bar renamed from foo:dd12c926cf165e3eb4cf87b084955cb617221c17 | ||||
should show no copies | ||||
$ hg st -C | ||||
copy --after on an added file | ||||
$ cp bar baz | ||||
$ hg add baz | ||||
$ hg cp -A bar baz | ||||
$ hg st -C | ||||
A baz | ||||
bar | ||||
foo was clean: | ||||
$ hg st -AC foo | ||||
C foo | ||||
|
r29958 | Trying to copy on top of an existing file fails, | ||
$ hg copy -A bar foo | ||||
|
r30151 | foo: not overwriting - file already committed | ||
(hg copy --after --force to replace the file by recording a copy) | ||||
same error without the --after, so the user doesn't have to go through | ||||
two hints: | ||||
$ hg copy bar foo | ||||
foo: not overwriting - file already committed | ||||
(hg copy --force to replace the file by recording a copy) | ||||
|
r16856 | but it's considered modified after a copy --after --force | ||
$ hg copy -Af bar foo | ||||
$ hg st -AC foo | ||||
M foo | ||||
bar | ||||
|
r30151 | The hint for a file that exists but is not in file history doesn't | ||
mention --force: | ||||
$ touch xyzzy | ||||
$ hg cp bar xyzzy | ||||
xyzzy: not overwriting - file exists | ||||
(hg copy --after to record the copy) | ||||
|
r16913 | |||
$ cd .. | ||||