branchmap: Add a test about writing branchmap and aborted transaction
It turn out that we update the branchmap on disk whenever we recompute it…
including in a middle of a transaction. This means writing the new branchmap too
early (the changeset are not visible yet) and worse… it mean writing branchmap
for transaction we rollback.
so we introduce a test to highlight the issue (and prevent it to regress in the
future).
Differential Revision: https://phab.mercurial-scm.org/D12126
from __future__ import absolute_import
from mercurial.i18n import _
from mercurial import (
hg,
registrar,
)
from mercurial.utils import (
urlutil,
)
cmdtable = {}
command = registrar.command(cmdtable)
@command(b'getflogheads', [], b'path')
def getflogheads(ui, repo, path):
"""
Extension printing a remotefilelog's heads
Used for testing purpose
"""
dest = urlutil.get_unique_pull_path(b'getflogheads', repo, ui)[0]
peer = hg.peer(repo, {}, dest)
try:
flogheads = peer.x_rfl_getflogheads(path)
finally:
peer.close()
if flogheads:
for head in flogheads:
ui.write(head + b'\n')
else:
ui.write(_(b'EMPTY\n'))