view tests/revlog-formatv0.py @ 21892:89cdebc31cda

tags: introduce _readtaghist function The existing _readtags function has been modified a little and renamed _readtaghist. A new _readtaghist function has been added, which is a wrappger around _readtaghist. Its output is the same as the old _readtaghist. The purpose of this change is to make it possible to automatically merge tag files. In order to do so we will need to get the line numbers for each of the tag-node pairs on the first merge parent. This is not used yet, but will be used on a follow up patch that will introduce an automatic tag merge algorithm. I performed some tests to compare the effect of this change. I used timeit to run the test-tags.t test a 9 times with and without this patch. The results were: - without this patch: 3 loops, best of 3: 8.55 sec per loop - with this patch: 3 loops, best of 3: 8.49 sec per loop The the test was on average was slightly faster with this patch (although the difference was probably not statistically significant).
author Angel Ezquerra <angel.ezquerra@gmail.com>
date Sat, 28 Jun 2014 01:42:39 +0200
parents 581066a319e5
children 05982f7ab231
line wrap: on
line source

#!/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
"""

import os, sys

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

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(data.decode('hex'))
    f.close()

sys.exit(0)