Mercurial > hg
view contrib/dumprevlog @ 34708:ee5f0d047b41
bookmark: add a dedicated txnclose-bookmark hook
The new 'txnclose-bookmark' hook expose the bookmark movement information
stored in 'tr.changes['bookmarks]'. To provide a simple and straightforward
hook API to the users, we introduce a new hook called for each bookmark
touched. Since a transaction can affect multiple bookmarks, updating the
existing 'txnclose' hook to expose that information would be more complex. The
data for all moves might not fit in environment variables and iterations over
each move would be cumbersome. So the introduction of a new dedicated hook is
preferred in this changeset.
This does not exclude the addition to the full bookmark information to the
existing 'txnclose' in the future to help write more complex hooks.
author | Boris Feld <boris.feld@octobus.net> |
---|---|
date | Tue, 10 Oct 2017 17:53:42 +0200 |
parents | 6359b80f15fb |
children | a915465a731e |
line wrap: on
line source
#!/usr/bin/env python # Dump revlogs as raw data stream # $ find .hg/store/ -name "*.i" | xargs dumprevlog > repo.dump from __future__ import absolute_import, print_function import sys from mercurial import ( node, revlog, util, ) for fp in (sys.stdin, sys.stdout, sys.stderr): util.setbinary(fp) for f in sys.argv[1:]: binopen = lambda fn: open(fn, 'rb') r = revlog.revlog(binopen, f) print("file:", f) for i in r: n = r.node(i) p = r.parents(n) d = r.revision(n) print("node:", node.hex(n)) print("linkrev:", r.linkrev(i)) print("parents:", node.hex(p[0]), node.hex(p[1])) print("length:", len(d)) print("-start-") print(d) print("-end-")