Nós aqui da Visie estamos acostumados a criar um repositório no Subversion para cada novo projeto que iremos trabalhar.
É muito bom trabalhar com o Subversion, ainda mais quando podemos trabalhar longe do escritório. Acontece que, nos últimos três meses estou alocado em um cliente, desenvolvendo um gigantesco projeto em PHP.
Aqui (no cliente) não podemos utilizar nenhum controle de versão, muito menos Linux nas estações de trabalho. O servidor é um AS/400 e o banco de dados é DB2. Então, deu para imaginar como acessamos os arquivos do servidor?
Temos uma mapeamento no Windows para o diretório do projeto no servidor AS/400. Ou seja, todos os programadores acessam o mesmo arquivo, ao mesmo tempo, no mesmo lugar. Ah! Este servidor é o mesmo para Desenvolvimento, Testes (Homologação) e Produção.
Para evitar que alguém edite os arquivos de produção foi criada a seguinte estrutura de diretórios:
- PROJETO_D
- PROJETO_H
- PROJETO_P
Assim ficou melhor, não é? Olha só que coisa mais inteligente e organizada:
- Depois que eu terminar de desenvolver basta copiar os arquivos do diretório PROJETO_D e colocar no diretório PROJETO_H;
- Se alguma coisa estiver errada é só copiar o(s) arquivo(s) que será(ão) corrigido(s) do PROJETO_H e colar no PROJETO_D;
- Assim que editar esses arquivos é só fazer o primeiro passo novamente;
- Se tudo for homologado é só copiar os arquivos do PROJETO_H para o PROJETO_P e pronto!
Acontece que, estava eu alterando um arquivo quando de repente aparece a seguinte mensagem:

Pois é, isso acontece porque todas as pessoas envolvidas no projeto estão com o diretório mapeado em seus Windows e sempre que eu for alterar um arquivo tenho que verificar se alguém está alterando o mesmo arquivo para evitar esses tipos de conflitos.
Que falta eu sinto do Subversion!
PS.: O backup dos arquivo do sistema é feito em um diretório chamado backup que possui outros diretórios com os nomes mais ou menos assim: PROJETO_D_20070906. Esse “backup” está no mesmo HD que o sistema, ou seja, se o HD um dia “morrer” o sistema e o backup morrerão também.