Script para baixar atualizações de repositórios Subversion, Mercurial e Git


Repository Update

Repository Update

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.
Repository Update done!

Repository Update done!

 

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.