Já pensou em preparar uma animação/visualização do repositório de um projeto? Já fiz isso algumas vezes, em especial no final de um projeto. Acho que isso ajuda a colocar em perspectiva todo o trabalho feito nos últimos meses ou anos. É muito comum perdermos a noção do todo após os momentos finais de ajustes, implantação (quem ainda faz isso?), etc.
Gource é uma ferramenta de código livre que é capaz de gerar animações do histórico de um repositório de controle de versão (Git, SVN, Mercurial e Bazaar). A primeira vez que usei Gource foi pelos idos de 2010 e desde lá muita coisa mudou.
A ideia deste post é fazer um breve tutorial de como usar Gource (+ ffmpeg) para gerar (e gravar em vídeo) uma visualização da evolução de um repositório com o passar do tempo.
Gerando a animação
Uma vez instalado corretamente*, basta executar o Gource e seus parâmetros na raiz do repositório (a sua cópia local, claro):
gource
Pronto, é isso, você já deve ver uma janela com o timelapse do seu projeto. Mas convenhamos que essa versão default é bem simples. Vamos incrementar:
gource -s 0.5 --start-date '2017-08-25' -f --key --highlight-users --user-image-dir avatars -a 1 -logo logo.png -1920x1080
Este monte de parâmetros não chega a ser metade dos possíveis, mas já é um bom começo. Uma curta explicação de cada um deles:
-s {tempo}
Tempo de vídeo por dia de projeto(em segundos)
-a {tempo}
Tempo máximo (em segundos) sem atividade no projeto (achata os dias inativos)
-f
Exibe em modo tela-cheia
-o {arquivo/stream}
Saída para arquivo/stream (formato ppm)
-logo {logo.png}
Logo do projeto
-{w}x{h}
Largura (w) e altura (h) do video em pixels
--Title {‘titulo’}
Título do projeto
--start-date {‘yyyy-mm-dd’}
Data de início da visualização
--user-image-dir {dir}
Pasta com imagens dos usuários (“Nome Sobrenome.png/jpg”)
--key
Exibe legenda de extensão de arquivos
--highlight-users
Nome de usuários sempre visível
A saída deve ficar parecida com esta que fiz do Tretas Lendárias, um joguinho de código livre que fizemos para o Jogabilijam 2:
Para aproveitar que mostrei este vídeo, vou deixar um tutorial bônus de como utilizar o ffmpeg** para gravar tais vídeos.
Gravando saída usando ffmpeg
Para gravar em vídeo a visualização gerada pelo Gource, é preciso primeiro direcionar a saída do comando para o output padrão, utilizando o parâmetro -o
. Utilizando esta saída como entrada para o comando ffmpeg (utilizando o recurso de pipeline do shell), é possível gravar tudo em um arquivo de vídeo:
gource -s 0.5 --start-date '2017-08-25' -f --key --highlight-users --user-image-dir avatars -a 1 -logo logo.png -1920x1080 -o - | ffmpeg -y -r 60 -f image2pipe -vcodec ppm -i - -vcodec libx264 -preset ultrafast -pix_fmt yuv420p -crf 1 -threads 0 -bf 0 saida.mp4
Não vou entrar no mérito dos parâmetros do ffmpeg neste post, basta dizer que ele irá gravar a saída em FullHD com 60 quadros por segundo. Se sua máquina não for rápida, deve demorar um pouco, mas o resultado é de excelente qualidade.
Acho que é isso, bom proveito :)
* Procure por instruções na sua distribuição, para quem usa mac/homebrew, dá para instalar com brew install gource
.
** Mais uma vez, procure por instruções de como instalar o ffmpeg com os codecs de sua escolha.