Eu mantenho cópia local dos projetos Open Source que me interessam, e toda vez que precisava usá-los tinha de fazer atualização manual usando o “Tortoise” do repositório correspondente.
Para evitar o trabalho manual resolvi escrever um script para automatizar a tarefa.
Eu queria um script que pude-se varrer todas as pastas e subpastas, sem a necessidade de eu ter de atuar uma lista a cada novo repositório, assim surgiu o repository_update.bat.
Meus projetos ficam na seguinte estrutura:
C:\Documents\Projects\[Components, Libraries, Frameworks]
O script fica em:
C:\Documents\Projects\repository_update.bat
Basta executa-lo, e ele varre todos os subdiretórios e atualiza a cópia local de cada projeto.
Para que o script funcione corretamente é necessário verificar algumas configurações que estão na sessão ENVIRONMENT:
:ENVIRONMENT set UPDATE_HG=1 set UPDATE_GIT=1 set UPDATE_SVN=1 set HG_CMD="C:\Program Files\TortoiseHg\hg.exe" set GIT_CMD="C:\Program Files (x86)\Git\cmd\git.exe" set SVN_CMD="C:\Program Files\SlikSvn\bin\svn.exe" set SVN_ASYNC_CMD=C:"\Program Files"\TortoiseSVN\bin\TortoiseProc.exe set HG_PARAMS=pull -u set GIT_PARAMS=pull --all -u set SVN_PARAMS=update set SVN_ASYNC_PARAMS=/command:update /path:%%G :: SVN_ASYNC=1 call GUI async, default 0 set SVN_ASYNC=0 :: English = EN_US :: Portugues Brasil = PT_BR set SCRIPT_LANGUAGE=PT_BR
- As 3 primeiras linhas ativam=1 ou desativam=0 o suporte aos respectivos repositórios.
- Depois o path dos comandos a serem executados. Note o último item deste grupo, é a versão GUI do TortoiseSVN, que só é útil se o parâmetro SVN_ASYNC for igual a 1.
- Os parâmetros estão separados dos comandos para evitar que sejam alterados acidentalmente.
- SVN_ASYNC, executa o TortoiseSVN gráfico de forma assíncrona, abrindo uma janela para cada repositório Subversion encontrado.
- E por último a linguagem das mensagens.
Download
Você pode adicionar o script repository_update.bat no agendador de tarefas do Windows para que ele seja executado diariamente, mantendo todos os seus projetos sempre atualizados.

