tests/revlog-formatv0.py
author Martin von Zweigbergk <martinvonz@google.com>
Thu, 05 Apr 2018 11:33:36 -0700
changeset 37381 76823340a899
parent 36565 9805c906aaad
child 43076 2372284d9457
permissions -rwxr-xr-x
mq: avoid a silly conversion from binary nodeid to hex We generally deal with binary nodeids in code. In this case the hex nodeid was passed to strip.checksubstate() where it was passed to repo.__getitem__, which of course accepts a binary nodeid. Differential Revision: https://phab.mercurial-scm.org/D3141

#!/usr/bin/env python
# Copyright 2010 Intevation GmbH
# Author(s):
# Thomas Arendsen Hein <thomas@intevation.de>
#
# This software may be used and distributed according to the terms of the
# GNU General Public License version 2 or any later version.

"""Create a Mercurial repository in revlog format 0

changeset:   0:a1ef0b125355
tag:         tip
user:        user
date:        Thu Jan 01 00:00:00 1970 +0000
files:       empty
description:
empty file
"""

from __future__ import absolute_import
import binascii
import os
import sys

files = [
    (b'formatv0/.hg/00changelog.i',
     b'000000000000004400000000000000000000000000000000000000'
     b'000000000000000000000000000000000000000000000000000000'
     b'0000a1ef0b125355d27765928be600cfe85784284ab3'),
    (b'formatv0/.hg/00changelog.d',
     b'756163613935613961356635353036303562366138343738336237'
     b'61623536363738616436356635380a757365720a3020300a656d70'
     b'74790a0a656d7074792066696c65'),
    (b'formatv0/.hg/00manifest.i',
     b'000000000000003000000000000000000000000000000000000000'
     b'000000000000000000000000000000000000000000000000000000'
     b'0000aca95a9a5f550605b6a84783b7ab56678ad65f58'),
    (b'formatv0/.hg/00manifest.d',
     b'75656d707479006238306465356431333837353835343163356630'
     b'35323635616431343461623966613836643164620a'),
    (b'formatv0/.hg/data/empty.i',
     b'000000000000000000000000000000000000000000000000000000'
     b'000000000000000000000000000000000000000000000000000000'
     b'0000b80de5d138758541c5f05265ad144ab9fa86d1db'),
    (b'formatv0/.hg/data/empty.d',
     b''),
]

def makedirs(name):
    """recursive directory creation"""
    parent = os.path.dirname(name)
    if parent:
        makedirs(parent)
    os.mkdir(name)

makedirs(os.path.join(*'formatv0/.hg/data'.split('/')))

for name, data in files:
    f = open(name, 'wb')
    f.write(binascii.unhexlify(data))
    f.close()

sys.exit(0)