Usando btSync para sincronizar e desenvolver em equipe.

Um dos grandes desafios do desenvolvimento grupal é manter o código sincronizado. Concordo, claro, com aqueles que utilizam as ferramentas git para poder criar uma versão temporária (e pessoal) do código e depois se enganchar de novo com a árvore principal. É obvio que git é bem melhor que svn por exemplo. Muitíssimo mais rápida, estável e leve.

Todavia, meu problema é um outro e imagino que seja o de vários programadores. Eu tenho várias máquinas nas quais trabalho e preciso que o código esteja sincronizado entre elas. Também atendo várias equipes e não me posso dar ao luxo de perder tempo vendo em que pé estão eles. Então simplifico fazendo com que as equipes e os micros mantenham o código sincronizado em uma pasta compartilhada. Se cada quem precisou fazer uma versão de desenvolvimento usando git ou svn tanto faz, eles tem que levar o código para a pasta compartilhada usando a ferramenta que mais lhes convenha (rsync, meld, WinMerge, BeyondCompare, etc) o lance é termos o mesmo código e no meu caso o mesmo código em vários micros.

O pessoal da bittorrent desenvolveu um aplicativo muito bacana usando o mesmo algoritmo: o BTSync (eles querem chamar de Resilio mas leva um tempo até se acostumar com o nome). Bem, o que BTSync faz é manter pastas sincronizadas entre si, mais ou menos como termos um DropBox particular. Você instala ele, cria ou escolhe uma pasta e a compartilha com seus colegas.

Acontece que, como todo ser humano, o nosso pessoal gosta de sombra e água fresca, então alguns descobriram que era mais fácil atribuir tarefas, dividir os aplicativos e limitar formalmente cada quem apenas mexer no que lhe é próprio do que andar indo e voltando de pastas particulares.

Tudo muito bacana até o pessoal lembrar que dá para programar encima da própria pasta de distribuição o que elimina tempo de compilação, versionamento e distribuição. Para essas alturas a matéria fecal está feita. Ou seja, quando um aplicativo YeAPF é configurado em um servidor ele armazena as configurações desse servidor. Se todo mundo está usando o mesmo ip (127.0.0.1), exatamente a mesma configuração de banco e o mesmo sistema operacional, não há problemas maiores, apenas certos desgostos de quando em quando. Mas não é isso que acontece na prática. Então o que fazer?

Simples, evite que o BTSync sincronize certos arquivos. Para isso você não precisa ter a versão comprada, apenas estar disposto a modificar os arquivos de configuração.

Então, vá até a pasta que você compartilhou no BTSync, entre na pasta oculta “.sync” (as aspas são apenas para frisar o fato de ter um ponto no inicio do nome) e edite um arquivo IgnoreList com seu Sublime Text 3 preferido e acrescente no final as pastas e/ou arquivos que não deseja sincronizar. No meu caso, deixo como segue:

#YeAPF files
.developSession/*
.config/*
lock/*
logs/*
deathLogs/*
db.csv
yeapf.db.ini
yeapf.php
configure.md5

Pronto, compartilhe com seus colegas.