Demora cerca de 15 minutos para o TortoiseHG efectuar um envio a partir de um repositório no meu disco rígido local (onde o directório .hg
contém 532 ficheiros, totalizando 110MB) para um repositório vazio na minha unidade de rede.
No entanto, se eu usar o Windows Explorer para copiar e colar o mesmo diretório .hg
(532 arquivos, 110MB) para a mesma unidade de rede, levará cerca de 30 segundos a 1 minuto.
Por que essa desaceleração por um fator de 10-30? Posso evitar isso? (ou seja, o Mercurial está fazendo algo desnecessário que eu posso evitar com as opções de linha de comando apropriadas?)
Atualização: é lento o suficiente para causar um efeito negativo em nosso fluxo de trabalho. E, o mesmo empurrão de um local para outro no HD local é rápido (vários segundos ao invés de minutos). Isso significa que, na verdade, seria muito mais rápido copiar o diretório .hg
remoto completo para um local temporário na unidade local, enviá-lo para ele e copiá-lo de volta para a unidade de rede. Antes de eu considerar realmente implementar esta solução desajeitada ... certamente há uma melhor?
[Detalhes: Estou usando a linha de comando hg.exe
do TortoiseHG 3.4.1 no Windows 7, e a unidade de rede é uma TimeCapsule da Apple. Eu o acesso através do software Airport Base Station Agent, que cria a aparência de uma unidade de rede normal (ou seja, semelhante ao samba). A unidade é montada como Z:\
e, portanto, o caminho default
listado em hgrc
começa com Z:\
, portanto, até onde o mercurial sabe, o envio está acontecendo de um local "local" para outro, ou seja, não http ou ssh. A mesma lentidão acontece se eu usar o caminho UNC completo \Like\this\...
em vez de Z:\...
]