Somos uma pequena equipe de 3 desenvolvedores (Boss, eu e outro desenvolvedor trabalhando principalmente remotamente), e tenho a tarefa de configurar um servidor de repositório para o Mercurial HG.
Parece que eu posso simplesmente colocar o nosso centralizadorepositório em uma unidade de rede compartilhada. Será extremamente fácil de configurar, mas parece que existe o risco de que qualquer um de nós possa abusar da conveniência de trabalhar / modificar o repositório de origem diretamente. É por isso que estou pensando em usar o servidor HgWebdir como uma forma de controlar o acesso ao repositório central. Portanto, o acesso direto ao repositório de origem central não é incentivado, mas a unidade compartilhada estará aqui apenas no caso.
Eu acho que é uma questão de definir o nosso in-houseprocedimento de controle de versão, não é realmente uma questão de controle de versão, mas eu ainda vou em frente e fazer a pergunta. Como não sinto que tenho experiência suficiente para tomar a decisão, e se não tenho 100% de certeza de que minha razão e seu significado são válidos, provavelmente é difícil reforçar a maneira como o sistema de controle de versão deve ser usado por outras pessoas. desenvolvedores.
Editar:
Eu posso ver que existem problemas em potencialpasta compartilhada trabalhando com software de controle de versão. Mas alguém se importa de explicar pouco mais o que aconteceu por trás da cena, quando empurra para pasta compartilhada? Meu entendimento é que a unidade compartilhada é essencialmente um link / atalho compartilhado, portanto, para uma unidade compartilhada, o Mercurial na máquina local tem apenas o bloqueio para esse link, mas o fato é que cada máquina do usuário poderia ter uma instância diferente do Mercurial. links "bloquear, enquanto a instância do Mercurial do servidor manterá seu próprio link na unidade física. Eu posso ver que é complicado, mas como vai falhar? Eu posso entender a conclusão, mas não posso ligar os fatos à conclusão
Respostas:
7 para resposta № 1Você não deve colocar o repositório do Mercurial emuma pasta compartilhada em um servidor de rede, pois o Mercurial não pode reter confiantemente bloqueios em todas as situações em tal configuração, e durante os envios para aquele repositório central, os bloqueios são cruciais para evitar corromper o repositório.
Na verdade, eu removerei o "não encorajado" e o substituirei por "não é possível", e só servir o repositório com o hgweb ou hg serve
, o primeiro sendo a configuração recomendada para servidores de longa duração.
2 para resposta № 2
Se você tem um servidor centralizado, você pode instalarHgweb lá e empurre e puxe-o como uma fonte central e BACKED-UP. Ainda temos servidores Windows 2003 (não estou em posição de alterar isso) e com um pouco de pesquisa na Web consegui encontrar informações sobre como configurar uma hgweb em um servidor Windows, embora a maioria referisse-se ao Windows Server 2007.