test-journal.t
221 lines
| 5.8 KiB
| text/troff
|
Tads3Lexer
/ tests / test-journal.t
Martijn Pieters
|
r29443 | Tests for the journal extension; records bookmark locations. | ||
$ cat >> testmocks.py << EOF | ||||
> # mock out util.getuser() and util.makedate() to supply testable values | ||||
> import os | ||||
> from mercurial import util | ||||
> def mockgetuser(): | ||||
> return 'foobar' | ||||
> | ||||
> def mockmakedate(): | ||||
> filename = os.path.join(os.environ['TESTTMP'], 'testtime') | ||||
> try: | ||||
> with open(filename, 'rb') as timef: | ||||
> time = float(timef.read()) + 1 | ||||
> except IOError: | ||||
> time = 0.0 | ||||
> with open(filename, 'wb') as timef: | ||||
> timef.write(str(time)) | ||||
> return (time, 0) | ||||
> | ||||
> util.getuser = mockgetuser | ||||
> util.makedate = mockmakedate | ||||
> EOF | ||||
$ cat >> $HGRCPATH << EOF | ||||
> [extensions] | ||||
> journal= | ||||
> testmocks=`pwd`/testmocks.py | ||||
> EOF | ||||
Setup repo | ||||
$ hg init repo | ||||
$ cd repo | ||||
Test empty journal | ||||
$ hg journal | ||||
Martijn Pieters
|
r29502 | previous locations of '.': | ||
Martijn Pieters
|
r29443 | no recorded locations | ||
$ hg journal foo | ||||
previous locations of 'foo': | ||||
no recorded locations | ||||
Martijn Pieters
|
r29502 | Test that working copy changes are tracked | ||
$ echo a > a | ||||
$ hg commit -Aqm a | ||||
$ hg journal | ||||
previous locations of '.': | ||||
cb9a9f314b8b commit -Aqm a | ||||
$ echo b > a | ||||
$ hg commit -Aqm b | ||||
$ hg journal | ||||
previous locations of '.': | ||||
1e6c11564562 commit -Aqm b | ||||
cb9a9f314b8b commit -Aqm a | ||||
$ hg up 0 | ||||
1 files updated, 0 files merged, 0 files removed, 0 files unresolved | ||||
$ hg journal | ||||
previous locations of '.': | ||||
cb9a9f314b8b up 0 | ||||
1e6c11564562 commit -Aqm b | ||||
cb9a9f314b8b commit -Aqm a | ||||
Martijn Pieters
|
r29443 | Test that bookmarks are tracked | ||
$ hg book -r tip bar | ||||
$ hg journal bar | ||||
previous locations of 'bar': | ||||
1e6c11564562 book -r tip bar | ||||
$ hg book -f bar | ||||
$ hg journal bar | ||||
previous locations of 'bar': | ||||
cb9a9f314b8b book -f bar | ||||
1e6c11564562 book -r tip bar | ||||
$ hg up | ||||
1 files updated, 0 files merged, 0 files removed, 0 files unresolved | ||||
updating bookmark bar | ||||
$ hg journal bar | ||||
previous locations of 'bar': | ||||
1e6c11564562 up | ||||
cb9a9f314b8b book -f bar | ||||
1e6c11564562 book -r tip bar | ||||
Martijn Pieters
|
r29502 | Test that bookmarks and working copy tracking is not mixed | ||
$ hg journal | ||||
previous locations of '.': | ||||
1e6c11564562 up | ||||
cb9a9f314b8b up 0 | ||||
1e6c11564562 commit -Aqm b | ||||
cb9a9f314b8b commit -Aqm a | ||||
Test that you can list all entries as well as limit the list or filter on them | ||||
Martijn Pieters
|
r29443 | |||
$ hg book -r tip baz | ||||
Martijn Pieters
|
r29502 | $ hg journal --all | ||
previous locations of the working copy and bookmarks: | ||||
1e6c11564562 baz book -r tip baz | ||||
1e6c11564562 bar up | ||||
1e6c11564562 . up | ||||
cb9a9f314b8b bar book -f bar | ||||
1e6c11564562 bar book -r tip bar | ||||
cb9a9f314b8b . up 0 | ||||
1e6c11564562 . commit -Aqm b | ||||
cb9a9f314b8b . commit -Aqm a | ||||
Martijn Pieters
|
r29443 | $ hg journal --limit 2 | ||
Martijn Pieters
|
r29502 | previous locations of '.': | ||
Martijn Pieters
|
r29443 | 1e6c11564562 up | ||
Martijn Pieters
|
r29502 | cb9a9f314b8b up 0 | ||
Martijn Pieters
|
r29443 | $ hg journal bar | ||
previous locations of 'bar': | ||||
1e6c11564562 up | ||||
cb9a9f314b8b book -f bar | ||||
1e6c11564562 book -r tip bar | ||||
$ hg journal foo | ||||
previous locations of 'foo': | ||||
no recorded locations | ||||
Martijn Pieters
|
r29502 | $ hg journal . | ||
previous locations of '.': | ||||
1e6c11564562 up | ||||
cb9a9f314b8b up 0 | ||||
1e6c11564562 commit -Aqm b | ||||
cb9a9f314b8b commit -Aqm a | ||||
Martijn Pieters
|
r29504 | $ hg journal "re:ba." | ||
previous locations of 're:ba.': | ||||
1e6c11564562 baz book -r tip baz | ||||
1e6c11564562 bar up | ||||
cb9a9f314b8b bar book -f bar | ||||
1e6c11564562 bar book -r tip bar | ||||
Martijn Pieters
|
r29443 | |||
Martijn Pieters
|
r29502 | Test that verbose, JSON and commit output work | ||
Martijn Pieters
|
r29443 | |||
Martijn Pieters
|
r29502 | $ hg journal --verbose --all | ||
previous locations of the working copy and bookmarks: | ||||
000000000000 -> 1e6c11564562 foobar baz 1970-01-01 00:00 +0000 book -r tip baz | ||||
cb9a9f314b8b -> 1e6c11564562 foobar bar 1970-01-01 00:00 +0000 up | ||||
cb9a9f314b8b -> 1e6c11564562 foobar . 1970-01-01 00:00 +0000 up | ||||
1e6c11564562 -> cb9a9f314b8b foobar bar 1970-01-01 00:00 +0000 book -f bar | ||||
000000000000 -> 1e6c11564562 foobar bar 1970-01-01 00:00 +0000 book -r tip bar | ||||
1e6c11564562 -> cb9a9f314b8b foobar . 1970-01-01 00:00 +0000 up 0 | ||||
cb9a9f314b8b -> 1e6c11564562 foobar . 1970-01-01 00:00 +0000 commit -Aqm b | ||||
000000000000 -> cb9a9f314b8b foobar . 1970-01-01 00:00 +0000 commit -Aqm a | ||||
$ hg journal --verbose -Tjson | ||||
[ | ||||
{ | ||||
"command": "up", | ||||
"date": "1970-01-01 00:00 +0000", | ||||
"name": ".", | ||||
"newhashes": "1e6c11564562", | ||||
"oldhashes": "cb9a9f314b8b", | ||||
"user": "foobar" | ||||
}, | ||||
{ | ||||
"command": "up 0", | ||||
"date": "1970-01-01 00:00 +0000", | ||||
"name": ".", | ||||
"newhashes": "cb9a9f314b8b", | ||||
"oldhashes": "1e6c11564562", | ||||
"user": "foobar" | ||||
}, | ||||
{ | ||||
"command": "commit -Aqm b", | ||||
"date": "1970-01-01 00:00 +0000", | ||||
"name": ".", | ||||
"newhashes": "1e6c11564562", | ||||
"oldhashes": "cb9a9f314b8b", | ||||
"user": "foobar" | ||||
}, | ||||
{ | ||||
"command": "commit -Aqm a", | ||||
"date": "1970-01-01 00:00 +0000", | ||||
"name": ".", | ||||
"newhashes": "cb9a9f314b8b", | ||||
"oldhashes": "000000000000", | ||||
"user": "foobar" | ||||
} | ||||
] | ||||
Martijn Pieters
|
r29443 | $ hg journal --commit | ||
Martijn Pieters
|
r29502 | previous locations of '.': | ||
Martijn Pieters
|
r29443 | 1e6c11564562 up | ||
changeset: 1:1e6c11564562 | ||||
bookmark: bar | ||||
bookmark: baz | ||||
tag: tip | ||||
user: test | ||||
date: Thu Jan 01 00:00:00 1970 +0000 | ||||
summary: b | ||||
Martijn Pieters
|
r29502 | cb9a9f314b8b up 0 | ||
Martijn Pieters
|
r29443 | changeset: 0:cb9a9f314b8b | ||
user: test | ||||
date: Thu Jan 01 00:00:00 1970 +0000 | ||||
summary: a | ||||
Martijn Pieters
|
r29502 | 1e6c11564562 commit -Aqm b | ||
Martijn Pieters
|
r29443 | changeset: 1:1e6c11564562 | ||
bookmark: bar | ||||
bookmark: baz | ||||
tag: tip | ||||
user: test | ||||
date: Thu Jan 01 00:00:00 1970 +0000 | ||||
summary: b | ||||
Martijn Pieters
|
r29502 | cb9a9f314b8b commit -Aqm a | ||
changeset: 0:cb9a9f314b8b | ||||
user: test | ||||
date: Thu Jan 01 00:00:00 1970 +0000 | ||||
summary: a | ||||
Martijn Pieters
|
r29443 | |||
Test for behaviour on unexpected storage version information | ||||
$ printf '42\0' > .hg/journal | ||||
$ hg journal | ||||
Martijn Pieters
|
r29502 | previous locations of '.': | ||
Martijn Pieters
|
r29443 | abort: unknown journal file version '42' | ||
[255] | ||||
$ hg book -r tip doomed | ||||
unsupported journal file version '42' | ||||