Mercurial > hg
view tests/test-journal.t @ 29443:cf092a3d202a
journal: new experimental extension
Records bookmark locations and shows you where bookmarks were located in the
past.
This is the first in a planned series of locations to be recorded; a future
patch will add working copy (dirstate) tracking, and remote bookmarks will be
supported as well, so the journal storage format should be fairly generic to
support those use-cases.
author | Martijn Pieters <mjpieters@fb.com> |
---|---|
date | Fri, 24 Jun 2016 16:12:05 +0100 |
parents | |
children | 8361131b4768 |
line wrap: on
line source
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 $ echo a > a $ hg commit -Aqm a $ echo b > a $ hg commit -Aqm b $ hg up 0 1 files updated, 0 files merged, 0 files removed, 0 files unresolved Test empty journal $ hg journal previous locations of all bookmarks: no recorded locations $ hg journal foo previous locations of 'foo': no recorded locations 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 you can list all bookmarks as well as limit the list or filter on them $ hg book -r tip baz $ hg journal previous locations of all bookmarks: 1e6c11564562 book -r tip baz 1e6c11564562 up cb9a9f314b8b book -f bar 1e6c11564562 book -r tip bar $ hg journal --limit 2 previous locations of all bookmarks: 1e6c11564562 book -r tip baz 1e6c11564562 up $ hg journal baz previous locations of 'baz': 1e6c11564562 book -r tip baz $ 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 Test that verbose and commit output work $ hg journal --verbose previous locations of all bookmarks: 000000000000 -> 1e6c11564562 foobar 1970-01-01 00:00 +0000 book -r tip baz cb9a9f314b8b -> 1e6c11564562 foobar 1970-01-01 00:00 +0000 up 1e6c11564562 -> cb9a9f314b8b foobar 1970-01-01 00:00 +0000 book -f bar 000000000000 -> 1e6c11564562 foobar 1970-01-01 00:00 +0000 book -r tip bar $ hg journal --commit previous locations of all bookmarks: 1e6c11564562 book -r tip baz changeset: 1:1e6c11564562 bookmark: bar bookmark: baz tag: tip user: test date: Thu Jan 01 00:00:00 1970 +0000 summary: b 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 book -f bar changeset: 0:cb9a9f314b8b user: test date: Thu Jan 01 00:00:00 1970 +0000 summary: a 1e6c11564562 book -r tip bar changeset: 1:1e6c11564562 bookmark: bar bookmark: baz tag: tip user: test date: Thu Jan 01 00:00:00 1970 +0000 summary: b Test for behaviour on unexpected storage version information $ printf '42\0' > .hg/journal $ hg journal previous locations of all bookmarks: abort: unknown journal file version '42' [255] $ hg book -r tip doomed unsupported journal file version '42'