|
|
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
|
|
|
previous locations of '.':
|
|
|
no recorded locations
|
|
|
$ hg journal foo
|
|
|
previous locations of 'foo':
|
|
|
no recorded locations
|
|
|
|
|
|
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
|
|
|
|
|
|
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
|
|
|
|
|
|
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
|
|
|
|
|
|
$ hg book -r tip baz
|
|
|
$ 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
|
|
|
$ hg journal --limit 2
|
|
|
previous locations of '.':
|
|
|
1e6c11564562 up
|
|
|
cb9a9f314b8b up 0
|
|
|
$ 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
|
|
|
$ hg journal .
|
|
|
previous locations of '.':
|
|
|
1e6c11564562 up
|
|
|
cb9a9f314b8b up 0
|
|
|
1e6c11564562 commit -Aqm b
|
|
|
cb9a9f314b8b commit -Aqm a
|
|
|
$ 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
|
|
|
|
|
|
Test that verbose, JSON and commit output work
|
|
|
|
|
|
$ 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"
|
|
|
}
|
|
|
]
|
|
|
$ hg journal --commit
|
|
|
previous locations of '.':
|
|
|
1e6c11564562 up
|
|
|
changeset: 1:1e6c11564562
|
|
|
bookmark: bar
|
|
|
bookmark: baz
|
|
|
tag: tip
|
|
|
user: test
|
|
|
date: Thu Jan 01 00:00:00 1970 +0000
|
|
|
summary: b
|
|
|
|
|
|
cb9a9f314b8b up 0
|
|
|
changeset: 0:cb9a9f314b8b
|
|
|
user: test
|
|
|
date: Thu Jan 01 00:00:00 1970 +0000
|
|
|
summary: a
|
|
|
|
|
|
1e6c11564562 commit -Aqm b
|
|
|
changeset: 1:1e6c11564562
|
|
|
bookmark: bar
|
|
|
bookmark: baz
|
|
|
tag: tip
|
|
|
user: test
|
|
|
date: Thu Jan 01 00:00:00 1970 +0000
|
|
|
summary: b
|
|
|
|
|
|
cb9a9f314b8b commit -Aqm a
|
|
|
changeset: 0:cb9a9f314b8b
|
|
|
user: test
|
|
|
date: Thu Jan 01 00:00:00 1970 +0000
|
|
|
summary: a
|
|
|
|
|
|
|
|
|
Test for behaviour on unexpected storage version information
|
|
|
|
|
|
$ printf '42\0' > .hg/journal
|
|
|
$ hg journal
|
|
|
previous locations of '.':
|
|
|
abort: unknown journal file version '42'
|
|
|
[255]
|
|
|
$ hg book -r tip doomed
|
|
|
unsupported journal file version '42'
|
|
|
|