Pular para o conteúdo principal

ramificacao-hg-named-branches.py (Código)

#!/usr/bin/python
# -*- coding: utf-8 -*-
'''
O script em bash para criação da ramificação no Mercurial é
lento porque cada comando invoca o Python separadamente.
Este programa executando uma única invocação do Python comprova
que a execução fica muito mais rápida desta forma
'''
from __future__ import print_function
import os
import shutil
import mercurial
from mercurial.dispatch import dispatch, request
def echo(texto, nome_arq):
    with open(nome_arq, 'a') as f:
        f.write(texto)
    return
def hg(*args):
    return dispatch(request(list(args)))
path = '/tmp/hg-named-branches'
if os.path.isdir(path):
    shutil.rmtree(path)
hg('init', path)
os.chdir(path)
echo('zero', 'default.txt')
hg('commit', '-Am', 'zero')
hg('branch', 'stable')
echo('um', 'stable.txt')
hg('add')
hg('commit', '-m', 'um')
echo('dois', 'stable.txt')
hg('commit', '-m', 'dois')
hg('update', 'default')
echo('três', 'default.txt')
hg('commit', '-m', 'tres')
hg('merge', 'stable')
hg('commit', '-m', 'quatro')
hg('update', '3')
hg('branch', 'bug')
echo('cinco', 'bug.txt')
hg('add')
hg('commit', '-m', 'cinco')
echo('seis', 'bug.txt')
hg('commit', '-m', 'seis')
hg('update', 'default')
hg('merge', 'bug')
hg('commit', '-m', 'sete')
hg('up', '0')
hg('branch', 'feature')
echo('oito', 'feature.txt')
hg('add')
hg('commit', '-m', 'oito')
hg('merge', 'bug')
hg('commit', '-m', 'nove')
print('\n\n========\ndefault\n========')
hg('log', '-Gqb', 'default')
print('\n\n=======\nfeature\n=======')
hg('log', '-Gqb', 'feature')
print('\n\n===\nbug\n===')
hg('log', '-Gqb', 'bug')
print('\n\n======\nstable\n======')
hg('log', '-Gqb', 'stable')