test-chainsaw-update.t
255 lines
| 6.5 KiB
| text/troff
|
Tads3Lexer
/ tests / test-chainsaw-update.t
Georges Racinet
|
r52322 | ============================================ | ||
Tests for the admin::chainsaw-update command | ||||
============================================ | ||||
setup | ||||
===== | ||||
$ cat >> $HGRCPATH << EOF | ||||
> [extensions] | ||||
> chainsaw= | ||||
> EOF | ||||
$ hg init src | ||||
$ cd src | ||||
r52325 | $ echo 1 > root | |||
$ hg add root | ||||
$ hg ci -Am R_0 | ||||
$ hg branch A | ||||
marked working directory as branch A | ||||
(branches are permanent and global, did you want a bookmark?) | ||||
$ echo 42 > bar | ||||
$ hg add bar | ||||
$ hg ci -Am A_0 | ||||
$ echo 1337 > bar | ||||
$ hg ci -Am A_1 | ||||
$ hg update 'desc(R_0)' | ||||
0 files updated, 0 files merged, 1 files removed, 0 files unresolved | ||||
Georges Racinet
|
r52322 | $ echo 1 > foo | ||
r52325 | $ hg add foo | |||
$ hg ci -Am B_0 | ||||
$ hg log -G | ||||
@ changeset: 3:bfcb8e629987 | ||||
| tag: tip | ||||
| parent: 0:06f48e4098b8 | ||||
| user: test | ||||
| date: Thu Jan 01 00:00:00 1970 +0000 | ||||
| summary: B_0 | ||||
| | ||||
| o changeset: 2:7fd8de258aa4 | ||||
| | branch: A | ||||
| | user: test | ||||
| | date: Thu Jan 01 00:00:00 1970 +0000 | ||||
| | summary: A_1 | ||||
| | | ||||
| o changeset: 1:ae1692b8aadb | ||||
|/ branch: A | ||||
| user: test | ||||
| date: Thu Jan 01 00:00:00 1970 +0000 | ||||
| summary: A_0 | ||||
| | ||||
o changeset: 0:06f48e4098b8 | ||||
user: test | ||||
date: Thu Jan 01 00:00:00 1970 +0000 | ||||
summary: R_0 | ||||
Georges Racinet
|
r52322 | $ cd .. | ||
Actual tests | ||||
============ | ||||
Georges Racinet
|
r52326 | Initial cloning if needed | ||
------------------------- | ||||
Georges Racinet
|
r52322 | |||
Georges Racinet
|
r52326 | $ hg admin::chainsaw-update --dest repo --rev default --source ./src | ||
no such directory: "repo" | ||||
creating repository at "repo" | ||||
Georges Racinet
|
r52322 | recovering after interrupted transaction, if any | ||
no interrupted transaction available | ||||
Georges Racinet
|
r52326 | pulling from ./src | ||
Georges Racinet
|
r52322 | updating to revision 'default' | ||
r52325 | 2 files updated, 0 files merged, 0 files removed, 0 files unresolved | |||
Georges Racinet
|
r52322 | chainsaw-update to revision 'default' for repository at '$TESTTMP/repo' done | ||
Georges Racinet
|
r52326 | $ cd repo | ||
r52325 | $ hg log -G | |||
Georges Racinet
|
r52326 | @ changeset: 3:bfcb8e629987 | ||
r52325 | | tag: tip | |||
Georges Racinet
|
r52326 | | parent: 0:06f48e4098b8 | ||
r52325 | | user: test | |||
| date: Thu Jan 01 00:00:00 1970 +0000 | ||||
| summary: B_0 | ||||
| | ||||
Georges Racinet
|
r52326 | | o changeset: 2:7fd8de258aa4 | ||
| | branch: A | ||||
| | user: test | ||||
| | date: Thu Jan 01 00:00:00 1970 +0000 | ||||
| | summary: A_1 | ||||
| | | ||||
| o changeset: 1:ae1692b8aadb | ||||
|/ branch: A | ||||
| user: test | ||||
| date: Thu Jan 01 00:00:00 1970 +0000 | ||||
| summary: A_0 | ||||
| | ||||
r52325 | o changeset: 0:06f48e4098b8 | |||
user: test | ||||
date: Thu Jan 01 00:00:00 1970 +0000 | ||||
summary: R_0 | ||||
$ hg status -A | ||||
C foo | ||||
C root | ||||
Georges Racinet
|
r52322 | $ cat foo | ||
1 | ||||
Test lock breacking capabilities | ||||
-------------------------------- | ||||
Demonstrate lock-breaking capabilities with locks that regular Mercurial | ||||
operation would not break, because the hostnames registered in locks differ | ||||
from the current hostname (happens a lot with succesive containers): | ||||
$ ln -s invalid.host.test/effffffc:171814 .hg/store/lock | ||||
$ ln -s invalid.host.test/effffffc:171814 .hg/wlock | ||||
$ hg debuglock | ||||
lock: (.*?), process 171814, host invalid.host.test/effffffc \((\d+)s\) (re) | ||||
wlock: (.*?), process 171814, host invalid.host.test/effffffc \((\d+)s\) (re) | ||||
[2] | ||||
Georges Racinet
|
r52326 | $ hg admin::chainsaw-update --no-purge-ignored --dest . --rev default --source ../src | ||
loaded repository at "." | ||||
Georges Racinet
|
r52324 | had to break store lock | ||
had to break working copy lock | ||||
recovering after interrupted transaction, if any | ||||
Georges Racinet
|
r52322 | no interrupted transaction available | ||
Georges Racinet
|
r52324 | pulling from ../src | ||
updating to revision 'default' | ||||
0 files updated, 0 files merged, 0 files removed, 0 files unresolved | ||||
chainsaw-update to revision 'default' for repository at '$TESTTMP/repo' done | ||||
Georges Racinet
|
r52322 | |||
Test file purging capabilities | ||||
------------------------------ | ||||
Let's also add local modifications (tracked and untracked) to demonstrate the | ||||
purging. | ||||
$ echo untracked > bar | ||||
$ echo modified > foo | ||||
$ hg status -A | ||||
M foo | ||||
? bar | ||||
r52325 | C root | |||
Georges Racinet
|
r52322 | |||
$ echo 2 > ../src/foo | ||||
Georges Racinet
|
r52326 | $ hg -R ../src commit -mB_1 | ||
$ hg admin::chainsaw-update --dest . --rev default --source ../src -q | ||||
Georges Racinet
|
r52322 | no interrupted transaction available | ||
Georges Racinet
|
r52326 | $ hg log -G | ||
@ changeset: 4:973ab81c95fb | ||||
| tag: tip | ||||
| user: test | ||||
| date: Thu Jan 01 00:00:00 1970 +0000 | ||||
| summary: B_1 | ||||
| | ||||
o changeset: 3:bfcb8e629987 | ||||
| parent: 0:06f48e4098b8 | ||||
| user: test | ||||
| date: Thu Jan 01 00:00:00 1970 +0000 | ||||
| summary: B_0 | ||||
| | ||||
| o changeset: 2:7fd8de258aa4 | ||||
| | branch: A | ||||
| | user: test | ||||
| | date: Thu Jan 01 00:00:00 1970 +0000 | ||||
| | summary: A_1 | ||||
| | | ||||
| o changeset: 1:ae1692b8aadb | ||||
|/ branch: A | ||||
| user: test | ||||
| date: Thu Jan 01 00:00:00 1970 +0000 | ||||
| summary: A_0 | ||||
| | ||||
o changeset: 0:06f48e4098b8 | ||||
user: test | ||||
date: Thu Jan 01 00:00:00 1970 +0000 | ||||
summary: R_0 | ||||
Georges Racinet
|
r52322 | $ hg status -A | ||
C foo | ||||
r52325 | C root | |||
Georges Racinet
|
r52322 | $ cat foo | ||
2 | ||||
Now behaviour with respect to ignored files: they are not purged if | ||||
the --no-purge-ignored flag is passed, but they are purged by default | ||||
$ echo bar > .hgignore | ||||
$ hg ci -Aqm hgignore | ||||
$ echo ignored > bar | ||||
$ hg status --all | ||||
I bar | ||||
C .hgignore | ||||
C foo | ||||
r52325 | C root | |||
Georges Racinet
|
r52322 | |||
Georges Racinet
|
r52326 | $ hg admin::chainsaw-update --no-purge-ignored --dest . --rev default --source ../src -q | ||
Georges Racinet
|
r52322 | no interrupted transaction available | ||
$ hg status --all | ||||
I bar | ||||
C .hgignore | ||||
C foo | ||||
r52325 | C root | |||
Georges Racinet
|
r52322 | $ cat bar | ||
ignored | ||||
Georges Racinet
|
r52326 | $ hg admin::chainsaw-update --dest . --rev default --source ../src -q | ||
Georges Racinet
|
r52322 | no interrupted transaction available | ||
$ hg status --all | ||||
C .hgignore | ||||
C foo | ||||
r52325 | C root | |||
Georges Racinet
|
r52322 | $ test -f bar | ||
[1] | ||||
Georges Racinet
|
r52326 | test --minimal-initial-cloning variant | ||
-------------------------------------- | ||||
With `--minimal-initial-cloning`, there is no "requesting all changes" | ||||
message. Hence clone bundles would be bypassed (TODO test both cases | ||||
# with an actual clone-bundle) | ||||
$ cd .. | ||||
$ hg admin::chainsaw-update --dest repo2 --rev default --source src --initial-clone-minimal | ||||
no such directory: "repo2" | ||||
creating repository at "repo2" | ||||
recovering after interrupted transaction, if any | ||||
no interrupted transaction available | ||||
pulling from src | ||||
updating to revision 'default' | ||||
2 files updated, 0 files merged, 0 files removed, 0 files unresolved | ||||
chainsaw-update to revision 'default' for repository at '$TESTTMP/repo2' done | ||||
$ cd repo2 | ||||
$ hg log -G | ||||
@ changeset: 2:973ab81c95fb | ||||
| tag: tip | ||||
| user: test | ||||
| date: Thu Jan 01 00:00:00 1970 +0000 | ||||
| summary: B_1 | ||||
| | ||||
o changeset: 1:bfcb8e629987 | ||||
| user: test | ||||
| date: Thu Jan 01 00:00:00 1970 +0000 | ||||
| summary: B_0 | ||||
| | ||||
o changeset: 0:06f48e4098b8 | ||||
user: test | ||||
date: Thu Jan 01 00:00:00 1970 +0000 | ||||
summary: R_0 | ||||
$ hg status -A | ||||
C foo | ||||
C root | ||||
$ cat foo | ||||
2 | ||||