test-journal.t
242 lines
| 6.6 KiB
| text/troff
|
Tads3Lexer
/ tests / test-journal.t
|
r29443 | Tests for the journal extension; records bookmark locations. | ||
$ cat >> testmocks.py << EOF | ||||
|
r37138 | > # mock out procutil.getuser() and util.makedate() to supply testable values | ||
|
r29443 | > import os | ||
|
r37382 | > from mercurial import util, pycompat | ||
|
r37138 | > from mercurial.utils import dateutil, procutil | ||
|
r29443 | > def mockgetuser(): | ||
|
r37401 | > return b'foobar' | ||
|
r29443 | > | ||
> 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: | ||||
|
r37382 | > timef.write(pycompat.bytestr(time)) | ||
|
r29443 | > return (time, 0) | ||
> | ||||
|
r37138 | > procutil.getuser = mockgetuser | ||
|
r36625 | > dateutil.makedate = mockmakedate | ||
|
r29443 | > EOF | ||
$ cat >> $HGRCPATH << EOF | ||||
> [extensions] | ||||
> journal= | ||||
> testmocks=`pwd`/testmocks.py | ||||
> EOF | ||||
Setup repo | ||||
$ hg init repo | ||||
$ cd repo | ||||
Test empty journal | ||||
$ hg journal | ||||
|
r29502 | previous locations of '.': | ||
|
r29443 | no recorded locations | ||
$ hg journal foo | ||||
previous locations of 'foo': | ||||
no recorded locations | ||||
|
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 | ||||
|
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 | ||||
|
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 | ||||
|
r29443 | |||
$ hg book -r tip baz | ||||
|
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 | ||||
|
r29443 | $ hg journal --limit 2 | ||
|
r29502 | previous locations of '.': | ||
|
r29443 | 1e6c11564562 up | ||
|
r29502 | cb9a9f314b8b up 0 | ||
|
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 | ||||
|
r29502 | $ hg journal . | ||
previous locations of '.': | ||||
1e6c11564562 up | ||||
cb9a9f314b8b up 0 | ||||
1e6c11564562 commit -Aqm b | ||||
cb9a9f314b8b commit -Aqm a | ||||
|
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 | ||||
|
r29443 | |||
|
r29677 | Test that verbose, JSON, template and commit output work | ||
|
r29443 | |||
|
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", | ||||
|
r37788 | "date": [5, 0], | ||
|
r29502 | "name": ".", | ||
|
r29677 | "newhashes": ["1e6c11564562b4ed919baca798bc4338bd299d6a"], | ||
"oldhashes": ["cb9a9f314b8b07ba71012fcdbc544b5a4d82ff5b"], | ||||
|
r29502 | "user": "foobar" | ||
}, | ||||
{ | ||||
"command": "up 0", | ||||
|
r37788 | "date": [2, 0], | ||
|
r29502 | "name": ".", | ||
|
r29677 | "newhashes": ["cb9a9f314b8b07ba71012fcdbc544b5a4d82ff5b"], | ||
"oldhashes": ["1e6c11564562b4ed919baca798bc4338bd299d6a"], | ||||
|
r29502 | "user": "foobar" | ||
}, | ||||
{ | ||||
"command": "commit -Aqm b", | ||||
|
r37788 | "date": [1, 0], | ||
|
r29502 | "name": ".", | ||
|
r29677 | "newhashes": ["1e6c11564562b4ed919baca798bc4338bd299d6a"], | ||
"oldhashes": ["cb9a9f314b8b07ba71012fcdbc544b5a4d82ff5b"], | ||||
|
r29502 | "user": "foobar" | ||
}, | ||||
{ | ||||
"command": "commit -Aqm a", | ||||
|
r37788 | "date": [0, 0], | ||
|
r29502 | "name": ".", | ||
|
r29677 | "newhashes": ["cb9a9f314b8b07ba71012fcdbc544b5a4d82ff5b"], | ||
"oldhashes": ["0000000000000000000000000000000000000000"], | ||||
|
r29502 | "user": "foobar" | ||
} | ||||
] | ||||
|
r29677 | |||
$ cat <<EOF >> $HGRCPATH | ||||
> [templates] | ||||
> j = "{oldhashes % '{node|upper}'} -> {newhashes % '{node|upper}'} | ||||
> - user: {user} | ||||
> - command: {command} | ||||
|
r29679 | > - date: {date|rfc3339date} | ||
|
r29677 | > - newhashes: {newhashes} | ||
> - oldhashes: {oldhashes} | ||||
> " | ||||
> EOF | ||||
$ hg journal -Tj -l1 | ||||
previous locations of '.': | ||||
CB9A9F314B8B07BA71012FCDBC544B5A4D82FF5B -> 1E6C11564562B4ED919BACA798BC4338BD299D6A | ||||
- user: foobar | ||||
- command: up | ||||
|
r29679 | - date: 1970-01-01T00:00:05+00:00 | ||
|
r29677 | - newhashes: 1e6c11564562b4ed919baca798bc4338bd299d6a | ||
- oldhashes: cb9a9f314b8b07ba71012fcdbc544b5a4d82ff5b | ||||
|
r29443 | $ hg journal --commit | ||
|
r29502 | previous locations of '.': | ||
|
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 | ||||
|
r29502 | cb9a9f314b8b up 0 | ||
|
r29443 | changeset: 0:cb9a9f314b8b | ||
user: test | ||||
date: Thu Jan 01 00:00:00 1970 +0000 | ||||
summary: a | ||||
|
r29502 | 1e6c11564562 commit -Aqm b | ||
|
r29443 | changeset: 1:1e6c11564562 | ||
bookmark: bar | ||||
bookmark: baz | ||||
tag: tip | ||||
user: test | ||||
date: Thu Jan 01 00:00:00 1970 +0000 | ||||
summary: b | ||||
|
r29502 | cb9a9f314b8b commit -Aqm a | ||
changeset: 0:cb9a9f314b8b | ||||
user: test | ||||
date: Thu Jan 01 00:00:00 1970 +0000 | ||||
summary: a | ||||
|
r29443 | |||
Test for behaviour on unexpected storage version information | ||||
|
r29870 | $ printf '42\0' > .hg/namejournal | ||
|
r29443 | $ hg journal | ||
|
r29502 | previous locations of '.': | ||
|
r29443 | abort: unknown journal file version '42' | ||
[255] | ||||
$ hg book -r tip doomed | ||||
unsupported journal file version '42' | ||||