Git Diff Tool (gdt) – Visualize diffs de uma nova forma.
Nos últimos anos, tenho trabalhado em sistemas legados e repositórios Git antigos, onde muitos arquivos estão usando diferentes codificações, alguns em ISO 8859-1 e outros em UTF-8. E é extremamente frustrante modificar 4/5 arquivos, para criar/ajustar um simples endpoint. E quando vou conferir as modificações... Todos os acentos com erro de codificação porque o arquivo ISO foi aberto, modificado e salvo em UTF-8.
Por algum motivo, o VSCode nem sempre identifica corretamente a codificação do arquivo. Então, comecei a verificar as modificações que submeto ao MR diretamente no terminal com o comando git diff
, além de revisar pelo VSCode. Curiosamente, identificar erros de codificação em acentuação, pelo terminal parece mais fácil do que no editor... 😂
No entanto, eu sentia que precisava de uma maneira mais prática e intuitiva de visualizar os arquivos modificados e suas mudanças diretamente pelo terminal. Foi então que, magicamente, o YouTube me recomendou este vídeo: https://www.youtube.com/watch?v=rq5LyQOuLe0.
Mais para o fim do vídeo, o Tom demonstra uma ferramenta de visualização de arquivos no terminal que foi feita usando Node.js, e na hora eu pensei: "Com a ajuda do Geppetto (ChatGPT), eu consigo fazer algo parecido!". E foi assim que nasceu o gdt.
O gdt é uma ferramenta de linha de comando que facilita a visualização de arquivos modificados em um repositório Git e suas mudanças. Para utilizá-la, é simples: execute o comando gdt
no terminal, e uma lista de todos os arquivos modificados no diretório/repositório Git será exibida. Usando as setas do teclado, você pode "selecionar" o arquivo que deseja visualizar. Ao pressionar Tab
ou Enter
, o diff desse arquivo é mostrado diretamente no terminal. Para voltar à lista de arquivos, basta pressionar Tab
ou Enter
novamente. Para encerrar a ferramenta, utilize as teclas q
, Esc
ou Ctrl+C
.
Para quem se interessou pelo projeto e quiser conferir o código, ou até mesmo testar a ferramenta, sinta-se à vontade: https://github.com/Keimich/gdt
Edit: isso não é um pitch! não estou tentando vender nada! só estou compartilhando algo que fiz e achei legal.