Ricardo César Cardoso wrote:
> É isso que eu pensei e argumentei com o meu camarada. Mas garantiu ( e pela 
> experiencia que tive nessa área pude confirmar ) que nunca vai acontecer de 
> dois desenhistas modificarem um desenho ao mesmo tempo. Mas pode acontecer de 
> um desenhista pegar um desenho pra modificar e não notificar o restante da 
> equipe que ele está trabalhando naquele desenho. O que acontece? O cliente 
> liga furioso perto do horário do almoço; o patrão corre pro primeiro 
> desenhista que encontra e chicoteia o coitado pra fazer o mais rápido 
> possível; e o cara vai e faz. E acontece a perda de controle pois o trabalho 
> que o primeiro desenhista estava fazendo no desenho é perdido. 
> 
> Com o lock do Subversion acredito que cada vez que se tente abrir este 
> desenho uma notificação é lançada e voilà. Já se sabe que alguém está 
> trabalhando no desenho. E quando o desenhista termina seu trabalho ele libera 
> ( seria um checkout? ) o desenho para que se necessário outros possam alterar 
> o desenho.
> 
> Portanto, nesses casos não trabalharei com merge. O modelo de trabalho não 
> comporta essa situação.

Conflito no Subversion possuem duas situações que são as seguintes:

1. Sem lock: Dois ou mais usuários mexem no arquivo. O primeiro que vier 
a gravar vai conseguir, do segundo em diante que tentar gravar, o 
Subversion vai informar que a revisão deles está desatualizada. Quando 
fizerem um checkout para atualizar, vai dar conflito no arquivo. Como 
não é texto, o svn não tentará fazer um merge e ficará uma marca de 
conflito. O usuário que fez o checkout terá, na máquina dele, o arquivo 
do repositório e o arquivo que ele mexeu, para escolher qual é o certo.

2. Com lock: um usuário que estiver mexendo em um arquivo poderá fazer o 
lock desse arquivo. Isto significa que quem tentar *gravar* esse arquivo 
de volta no repositório receberá uma mensagem de que ele está bloqueado. 
Neste caso é uma garantia de que quem fez o lock irá conseguir gravar 
depois, independente do que aconteça.

O que você pode explicar para o seu cliente:

Quem quiser garantia de que vai conseguir *gravar* uma alteração, tem 
que fazer um lock. O lock não é obrigatório, o máximo que pode acontecer 
em não usá-lo é um conflito na hora de gravar a alteração. Então ele 
confere no repositório pra saber quem fez a gravação anteriormente, faz 
um checkout e recebe a versão do outro cara, escolhe qual a correta: se 
for a dele, arruma a sua revisão e faz um checkin. Se for a do outro, 
faz um revert. Se for um merge, ele abre as duas versões no autocad, 
coloca as alterações do outro no seu próprio arquivo e grava o seu arquivo.

Simples assim.

Joao Morais

Responder a