view tests/test_util.py @ 39:b3c7b844b782

Some more fixes of cases discovered in the melange repo. If anyone knows how I can reproduce a "replaced" state in Subversion, I'd love to be able to make a real test case for this code.
author Augie Fackler <durin42@gmail.com>
date Sun, 26 Oct 2008 22:06:13 -0500
parents 1f8854804795
children 072010a271c6
line wrap: on
line source

import os
import popen2

from mercurial import ui
from mercurial import hg

import fetch_command

FIXTURES = os.path.join(os.path.abspath(os.path.dirname(__file__)),
                        'fixtures')

def load_svndump_fixture(path, fixture_name):
    '''Loads an svnadmin dump into a fresh repo at path, which should not
    already exist.
    '''
    os.spawnvp(os.P_WAIT, 'svnadmin', ['svnadmin', 'create', path,])
    proc = popen2.Popen4(['svnadmin', 'load', path,])
    inp = open(os.path.join(FIXTURES, fixture_name))
    proc.tochild.write(inp.read())
    proc.tochild.close()
    proc.wait()

def load_fixture_and_fetch(fixture_name, repo_path, wc_path, stupid=False):
    load_svndump_fixture(repo_path, fixture_name)
    fetch_command.fetch_revisions(ui.ui(),
                                  svn_url='file://%s' % repo_path,
                                  hg_repo_path=wc_path,
                                  stupid=stupid)
    repo = hg.repository(ui.ui(), wc_path)
    return repo