Exemple #1
0
def maketemp():
    tmp = os.path.join(os.path.dirname(__file__), 'tmp')
    mkdir(tmp)

    name = find_test_name()
    tmp = os.path.join(tmp, name)
    try:
        shutil.rmtree(tmp)
    except OSError, e:
        if e.errno == errno.ENOENT:
            pass
        else:
            raise
Exemple #2
0
def init(repo):
    """
    Initialize bug tracking component of existing repository.
    """
    util.mkdir(os.path.join(repo, '.git', 'bugit'))

    # does refs/heads/bugit/master exist?
    if git_rev_parse(
        rev='refs/heads/bugit/master',
        repo=repo,
        ) is None:
        # it did not, so create it

        # first create empty tree
        tree = git_mktree(
            children=[],
            repo=repo,
            )

        # create a commit that points to empty tree
        commit = git_commit_tree(
            tree=tree,
            message='Initial creation of bugit tree.',
            repo=repo,
            )

        # make a ref point to that tree
        git_update_ref(
            ref='refs/heads/bugit/master',
            sha=commit,
            old_sha=40*'0',
            repo=repo,
            )

    # does bugit/HEAD exist?
    process = subprocess.Popen(
        args=[
            'git',
            'symbolic-ref',
            '--quiet',
            'bugit/HEAD',
            ],
        cwd=repo,
        close_fds=True,
        stdout=subprocess.PIPE,
        )
    head = process.stdout.read()
    returncode = process.wait()
    if returncode not in [0, 1]:
        raise RuntimeError('git symbolic-ref failed')

    if not head:
        # it did not, so create it
        returncode = subprocess.call(
            args=[
                'git',
                'symbolic-ref',
                'bugit/HEAD',
                'refs/heads/bugit/master',
                ],
            cwd=repo,
            close_fds=True,
            )
        if returncode != 0:
            raise RuntimeError('git symbolic-ref failed')