diff options
Diffstat (limited to 'tests/test-copy.t')
-rw-r--r-- | tests/test-copy.t | 216 |
1 files changed, 216 insertions, 0 deletions
diff --git a/tests/test-copy.t b/tests/test-copy.t new file mode 100644 index 0000000..a3cd463 --- /dev/null +++ b/tests/test-copy.t @@ -0,0 +1,216 @@ + + $ mkdir part1 + $ cd part1 + + $ hg init + $ echo a > a + $ hg add a + $ hg commit -m "1" + $ hg status + $ hg copy a b + $ hg --config ui.portablefilenames=abort copy a con.xml + abort: filename contains 'con', which is reserved on Windows: 'con.xml' + [255] + $ hg status + A b + $ hg sum + parent: 0:c19d34741b0a tip + 1 + branch: default + commit: 1 copied + update: (current) + $ hg --debug commit -m "2" + b + b: copy a:b789fdd96dc2f3bd229c1dd8eedf0fc60e2b68e3 + committed changeset 1:93580a2c28a50a56f63526fb305067e6fbf739c4 + +we should see two history entries + + $ hg history -v + changeset: 1:93580a2c28a5 + tag: tip + user: test + date: Thu Jan 01 00:00:00 1970 +0000 + files: b + description: + 2 + + + changeset: 0:c19d34741b0a + user: test + date: Thu Jan 01 00:00:00 1970 +0000 + files: a + description: + 1 + + + +we should see one log entry for a + + $ hg log a + changeset: 0:c19d34741b0a + user: test + date: Thu Jan 01 00:00:00 1970 +0000 + summary: 1 + + +this should show a revision linked to changeset 0 + + $ hg debugindex a + rev offset length ..... linkrev nodeid p1 p2 (re) + 0 0 3 ..... 0 b789fdd96dc2 000000000000 000000000000 (re) + +we should see one log entry for b + + $ hg log b + changeset: 1:93580a2c28a5 + tag: tip + user: test + date: Thu Jan 01 00:00:00 1970 +0000 + summary: 2 + + +this should show a revision linked to changeset 1 + + $ hg debugindex b + rev offset length ..... linkrev nodeid p1 p2 (re) + 0 0 65 ..... 1 37d9b5d994ea 000000000000 000000000000 (re) + +this should show the rename information in the metadata + + $ hg debugdata b 0 | head -3 | tail -2 + copy: a + copyrev: b789fdd96dc2f3bd229c1dd8eedf0fc60e2b68e3 + + $ "$TESTDIR/md5sum.py" .hg/store/data/b.i + 4999f120a3b88713bbefddd195cf5133 .hg/store/data/b.i + $ hg cat b > bsum + $ "$TESTDIR/md5sum.py" bsum + 60b725f10c9c85c70d97880dfe8191b3 bsum + $ hg cat a > asum + $ "$TESTDIR/md5sum.py" asum + 60b725f10c9c85c70d97880dfe8191b3 asum + $ hg verify + checking changesets + checking manifests + crosschecking files in changesets and manifests + checking files + 2 files, 2 changesets, 2 total revisions + + $ 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 + foo: deleted in working copy + foo3 does not exist! + $ hg up -qC . + +copy --after to a nonexistant target filename + $ 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 + rev offset length ..... linkrev nodeid p1 p2 (re) + 0 0 5 ..... 0 2ed2a3912a0b 000000000000 000000000000 (re) + $ 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 + $ hg commit -m3 + +should show no parents for tip + $ hg debugindex bar + rev offset length ..... linkrev nodeid p1 p2 (re) + 0 0 69 ..... 1 7711d36246cc 000000000000 000000000000 (re) + 1 69 6 ..... 2 bdf70a2b8d03 7711d36246cc 000000000000 (re) + 2 75 81 ..... 3 b2558327ea8d 000000000000 000000000000 (re) +should match + $ hg debugindex foo + rev offset length ..... linkrev nodeid p1 p2 (re) + 0 0 5 ..... 0 2ed2a3912a0b 000000000000 000000000000 (re) + 1 5 7 ..... 2 dd12c926cf16 2ed2a3912a0b 000000000000 (re) + $ 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 +but it's considered modified after a copy --after --force + $ hg copy -Af bar foo + $ hg st -AC foo + M foo + bar + + $ cd .. |