test-journal.t
298 lines
| 8.9 KiB
| text/troff
|
Tads3Lexer
/ tests / test-journal.t
Martijn Pieters
|
r29443 | Tests for the journal extension; records bookmark locations. | ||
$ cat >> testmocks.py << EOF | ||||
Yuya Nishihara
|
r37138 | > # mock out procutil.getuser() and util.makedate() to supply testable values | ||
Martijn Pieters
|
r29443 | > import os | ||
Matt Harbison
|
r40405 | > from mercurial import pycompat, util | ||
Yuya Nishihara
|
r37138 | > from mercurial.utils import dateutil, procutil | ||
Martijn Pieters
|
r29443 | > def mockgetuser(): | ||
Pulkit Goyal
|
r37401 | > return b'foobar' | ||
Martijn Pieters
|
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: | ||||
Pulkit Goyal
|
r37382 | > timef.write(pycompat.bytestr(time)) | ||
Martijn Pieters
|
r29443 | > return (time, 0) | ||
> | ||||
Yuya Nishihara
|
r37138 | > procutil.getuser = mockgetuser | ||
Boris Feld
|
r36625 | > dateutil.makedate = mockmakedate | ||
Martijn Pieters
|
r29443 | > 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 | |||
Yuya Nishihara
|
r29677 | Test that verbose, JSON, template 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", | ||||
Yuya Nishihara
|
r37788 | "date": [5, 0], | ||
Martijn Pieters
|
r29502 | "name": ".", | ||
Yuya Nishihara
|
r39737 | "newnodes": ["1e6c11564562b4ed919baca798bc4338bd299d6a"], | ||
"oldnodes": ["cb9a9f314b8b07ba71012fcdbc544b5a4d82ff5b"], | ||||
Martijn Pieters
|
r29502 | "user": "foobar" | ||
}, | ||||
{ | ||||
"command": "up 0", | ||||
Yuya Nishihara
|
r37788 | "date": [2, 0], | ||
Martijn Pieters
|
r29502 | "name": ".", | ||
Yuya Nishihara
|
r39737 | "newnodes": ["cb9a9f314b8b07ba71012fcdbc544b5a4d82ff5b"], | ||
"oldnodes": ["1e6c11564562b4ed919baca798bc4338bd299d6a"], | ||||
Martijn Pieters
|
r29502 | "user": "foobar" | ||
}, | ||||
{ | ||||
"command": "commit -Aqm b", | ||||
Yuya Nishihara
|
r37788 | "date": [1, 0], | ||
Martijn Pieters
|
r29502 | "name": ".", | ||
Yuya Nishihara
|
r39737 | "newnodes": ["1e6c11564562b4ed919baca798bc4338bd299d6a"], | ||
"oldnodes": ["cb9a9f314b8b07ba71012fcdbc544b5a4d82ff5b"], | ||||
Martijn Pieters
|
r29502 | "user": "foobar" | ||
}, | ||||
{ | ||||
"command": "commit -Aqm a", | ||||
Yuya Nishihara
|
r37788 | "date": [0, 0], | ||
Martijn Pieters
|
r29502 | "name": ".", | ||
Yuya Nishihara
|
r39737 | "newnodes": ["cb9a9f314b8b07ba71012fcdbc544b5a4d82ff5b"], | ||
"oldnodes": ["0000000000000000000000000000000000000000"], | ||||
Martijn Pieters
|
r29502 | "user": "foobar" | ||
} | ||||
] | ||||
Yuya Nishihara
|
r29677 | |||
$ cat <<EOF >> $HGRCPATH | ||||
> [templates] | ||||
Yuya Nishihara
|
r39737 | > j = "{oldnodes % '{node|upper}'} -> {newnodes % '{node|upper}'} | ||
Yuya Nishihara
|
r29677 | > - user: {user} | ||
> - command: {command} | ||||
Yuya Nishihara
|
r29679 | > - date: {date|rfc3339date} | ||
Yuya Nishihara
|
r39737 | > - newnodes: {newnodes} | ||
> - oldnodes: {oldnodes} | ||||
Yuya Nishihara
|
r29677 | > " | ||
> EOF | ||||
$ hg journal -Tj -l1 | ||||
previous locations of '.': | ||||
CB9A9F314B8B07BA71012FCDBC544B5A4D82FF5B -> 1E6C11564562B4ED919BACA798BC4338BD299D6A | ||||
- user: foobar | ||||
- command: up | ||||
Yuya Nishihara
|
r29679 | - date: 1970-01-01T00:00:05+00:00 | ||
Yuya Nishihara
|
r39737 | - newnodes: 1e6c11564562b4ed919baca798bc4338bd299d6a | ||
- oldnodes: cb9a9f314b8b07ba71012fcdbc544b5a4d82ff5b | ||||
Yuya Nishihara
|
r29677 | |||
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 | |||
Yuya Nishihara
|
r39740 | $ hg journal --commit -Tjson | ||
[ | ||||
{ | ||||
"changesets": [{"bookmarks": ["bar", "baz"], "branch": "default", "date": [0, 0], "desc": "b", "node": "1e6c11564562b4ed919baca798bc4338bd299d6a", "parents": ["cb9a9f314b8b07ba71012fcdbc544b5a4d82ff5b"], "phase": "draft", "rev": 1, "tags": ["tip"], "user": "test"}], | ||||
"command": "up", | ||||
"date": [5, 0], | ||||
"name": ".", | ||||
"newnodes": ["1e6c11564562b4ed919baca798bc4338bd299d6a"], | ||||
"oldnodes": ["cb9a9f314b8b07ba71012fcdbc544b5a4d82ff5b"], | ||||
"user": "foobar" | ||||
}, | ||||
{ | ||||
"changesets": [{"bookmarks": [], "branch": "default", "date": [0, 0], "desc": "a", "node": "cb9a9f314b8b07ba71012fcdbc544b5a4d82ff5b", "parents": ["0000000000000000000000000000000000000000"], "phase": "draft", "rev": 0, "tags": [], "user": "test"}], | ||||
"command": "up 0", | ||||
"date": [2, 0], | ||||
"name": ".", | ||||
"newnodes": ["cb9a9f314b8b07ba71012fcdbc544b5a4d82ff5b"], | ||||
"oldnodes": ["1e6c11564562b4ed919baca798bc4338bd299d6a"], | ||||
"user": "foobar" | ||||
}, | ||||
{ | ||||
"changesets": [{"bookmarks": ["bar", "baz"], "branch": "default", "date": [0, 0], "desc": "b", "node": "1e6c11564562b4ed919baca798bc4338bd299d6a", "parents": ["cb9a9f314b8b07ba71012fcdbc544b5a4d82ff5b"], "phase": "draft", "rev": 1, "tags": ["tip"], "user": "test"}], | ||||
"command": "commit -Aqm b", | ||||
"date": [1, 0], | ||||
"name": ".", | ||||
"newnodes": ["1e6c11564562b4ed919baca798bc4338bd299d6a"], | ||||
"oldnodes": ["cb9a9f314b8b07ba71012fcdbc544b5a4d82ff5b"], | ||||
"user": "foobar" | ||||
}, | ||||
{ | ||||
"changesets": [{"bookmarks": [], "branch": "default", "date": [0, 0], "desc": "a", "node": "cb9a9f314b8b07ba71012fcdbc544b5a4d82ff5b", "parents": ["0000000000000000000000000000000000000000"], "phase": "draft", "rev": 0, "tags": [], "user": "test"}], | ||||
"command": "commit -Aqm a", | ||||
"date": [0, 0], | ||||
"name": ".", | ||||
"newnodes": ["cb9a9f314b8b07ba71012fcdbc544b5a4d82ff5b"], | ||||
"oldnodes": ["0000000000000000000000000000000000000000"], | ||||
"user": "foobar" | ||||
} | ||||
] | ||||
$ hg journal --commit \ | ||||
> -T'command: {command}\n{changesets % " rev: {rev}\n children: {children}\n"}' | ||||
previous locations of '.': | ||||
command: up | ||||
rev: 1 | ||||
children: | ||||
command: up 0 | ||||
rev: 0 | ||||
Yuya Nishihara
|
r39741 | children: 1:1e6c11564562 | ||
Yuya Nishihara
|
r39740 | command: commit -Aqm b | ||
rev: 1 | ||||
children: | ||||
command: commit -Aqm a | ||||
rev: 0 | ||||
Yuya Nishihara
|
r39741 | children: 1:1e6c11564562 | ||
Yuya Nishihara
|
r39740 | |||
Martijn Pieters
|
r29443 | Test for behaviour on unexpected storage version information | ||
Pierre-Yves David
|
r29870 | $ printf '42\0' > .hg/namejournal | ||
Martijn Pieters
|
r29443 | $ 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' | ||||