view tests/revlog-formatv0.py @ 27027:a01ecbcfaf84

mergestate: handle additional record types specially This works around a bug in older Mercurial versions' handling of the v2 merge state. We also add a bunch of tests that make sure that (1) we correctly abort when the merge state has an unsupported record type (2) aborting the merge, rebase or histedit continues to work and clears out the merge state.
author Siddharth Agarwal <sid0@fb.com>
date Wed, 18 Nov 2015 15:46:45 -0800
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)