Pular para o conteúdo principal

Mercurial mais rápido com o cHg

Quando você executa um comando hg, um novo processo Python é disparado, o Mercurial é carregado, o comando é executado e depois o processo finaliza. Esse tempo de carregamento inicial do Python e do Mercurial a cada comando nem chega a ser perceptível para execuções esporádicas, mas se você precisa executar vários comandos em um script ou de dentro de uma aplicação, o tempo de resposta começa a aparecer.

O chg é um programa em C que executa os comandos hg através do servidor de comandos do Mercurial que roda em background, evitando o tempo de carregamento inicial.

Para se ter uma ideia na diferença nos tempos de resposta, veja os exemplos abaixo:

$ time hg version > /dev/null
real    0m0.099s
user    0m0.080s
sys     0m0.016s

$ time chg version > /dev/null
real    0m0.021s
user    0m0.000s
sys     0m0.000s

$ time hg help commit > /dev/null
real    0m0.115s
user    0m0.112s
sys     0m0.000s

$ time chg help commit > /dev/null
real    0m0.034s
user    0m0.000s
sys     0m0.000s

Instalação

O projeto original do cHg foi incorporado ao projeto do Mercurial a partir da versão 3.8. Espera-se que já venha compilado nos pacotes das distribuições. Caso contrário, execute os seguintes passos para instalar:

hg clone https://selenic.com/repo/hg
cd hg/contrib/chg
make
sudo make install

Configuração

O comando chg pode ser usado diretamente, mas é melhor criar um alias e colocá-lo no ~/.bashrc para não acabar esquecendo:

echo alias hg=chg >> ~/.bashrc

Pronto pra usar!

Referências

Comentários

Comments powered by Disqus