Isso está um pouco relacionado a essa pergunta, mas é uma pergunta diferente.
Temos um repositório central de Hg, servido aos usuários via SSH e mercurial-server . Temos vários clientes Mac, Linux e Windows conectados a ele.
Já aconteceu duas vezes agora que um dos usuários do Windows corrompeu seu repositório e depois voltou ao central que o corrompia. Desejo escrever um script de gancho de entrada no repositório central para impedir que uma transação seja aceita se ela corromper o repositório central.
Embora, infelizmente, eu não conheço o suficiente sobre o Mercurial para escrever esse script. Alguma possibilidade de que alguém tenha se deparado com isso? Pessoalmente, não sei ao certo por que o hg não faz isso por padrão.
mercurial
corruption
bobinabottle
fonte
fonte
Respostas:
Versões recentes do Mercurial (desde a versão 1.5) suportam a validação dos dados recebidos. Adicionar
para a configuração hg do servidor (
.hg/hgrc
ou a configuração hgwebdir deve funcionar bem) para que o servidor verifique os dados recebidos e recuse os envios inválidos. O cliente verá um erro semelhante a:Espero que ajude!
fonte
Talvez você deva evitar pressionar o repositório completamente. Com o Mercurial e sua natureza distribuída, todos podem ter sua filial e, quando sentem que estão prontos, dizem a você e você se retira. Sem problemas de acesso de confirmação, sem push que quebrará coisas ...
Este é pelo menos um conselho que um amigo meu me deu quando eu estava migrando do SVN para o Mercurial.
Eu não sei, se isso é uma opção para você, mas configurar um repositório pessoal para todos e depois retirar as pessoas de que você precisa pode exigir menos trabalho do que tentar pegar empurrões perigosos.
fonte
Você não poderia fazer o mesmo que o Blog de David Herron , mas, em vez de fazê-lo na pré-rota, faça-o no gancho de pré-confirmação no repo central?
fonte
Uma alternativa possível é:
Esta solução não é o que você precisava, mas pelo menos, você pode reverter seu repositório em caso de corrupção.
fonte