Eu costumava usar Windows, SVN, Tortoise SVN e Beyond Compare. Foi uma ótima combinação para fazer revisões de código.
Agora eu uso o OSX e o Git. Consegui agrupar um script bash junto com o Gitx e o DiffMerge para encontrar uma solução quase aceitável.
Eu me atrapalho com essa configuração e outras semelhantes há mais de um ano. Também tentei usar o visualizador de diferenças do Github e o visualizador de diferenças do Gitx, por isso não é como se eu não tivesse lhes dado uma chance.
Há tantas pessoas inteligentes fazendo ótimas coisas com o Git. Por que não o diff lado a lado com a opção de ver o arquivo inteiro? Com pessoas que usaram os dois, nunca ouvi falar de alguém que goste mais do single +/-, pelo menos por mais que uma verificação rápida.
Respostas:
Não posso falar por Linus sobre isso, mas o modo como o git lida com os difftools é muito unixish, filosoficamente falando. O git faz o que faz muito bem e usa ferramentas externas para todo o resto, incluindo diferenças e mesclagens mais sofisticadas.
Também uso o DiffMerge com git no OS X e não tive que recorrer a nenhum shell de bash. Foi complicado, mas configurei as configurações difftool e mergetool do git para chamar o DiffMerge diretamente, e agora posso visualizar diffs e resolver conflitos de mesclagem em uma excelente ferramenta visual de terceiros.
Aqui está a minha configuração:
fonte
git diff --stat
. Fornece uma boa lista gráfica de todos os arquivos alterados, com o número de linhas alteradas.Você notará que o próprio SVN também não oferece uma solução lado a lado. O que você listou são ferramentas de terceiros. Como na maioria das coisas no git, isso é extraordinariamente configurável e possui um ótimo suporte de ferramenta pronto para uso. Você tem uma ferramenta de fusão configurada? Se não, você deveria. Se sim, tente
git difftool
. Então dê uma olhada na página de manual para opções de configuração.Eu uso o KDiff3 como minha ferramenta de fusão, uma vez que é uma boa ferramenta de plataforma cruzada e sem nenhuma configuração adicional,
git difftool
faz exatamente o que você está pedindo.fonte
É a filosofia * nix. Muitas pessoas que usam essas ferramentas passam muito tempo no terminal. O terminal não exige que movamos nossas mãos do teclado para o mouse. Sei que prefiro o estilo +/- às ferramentas de comparação / mesclagem visual, principalmente porque me preocupo apenas com as diferenças. Eu me preocupo com as 3-4 linhas em torno da mudança e da própria mudança. Mais alguma coisa é informação extra que realmente não me ajuda.
Diff's são comumente usados para dar uma olhada rápida no que foi alterado. Não para ler o código.
Eu nunca achei as ferramentas de diferenças visuais muito úteis em comparação com as diferenças padrão nos sistemas GNU. Tudo o que eles me fazem fazer é começar a mexer com o mouse e me forçar a percorrer o arquivo, descobrir a interface do usuário e, em seguida, lutar para voltar à linha de comando, onde posso fazer algo sobre um problema que vejo no diff .
fonte
Do meu uso pessoal, acho que a resposta é principalmente que as diferenças são curtas o suficiente para que não importem.
Para revisões de código, eu uso uma ferramenta completa de revisão de código, que me fornece tudo o que eu gosto - como comentários, realce de sintaxe e exibição lado a lado.
Eu uso
git diff
quase exclusivamente durante a preparação do código para confirmação; Nesse caso, as diferenças são pequenas o suficiente e recentes o suficiente para que eu não precise ver o contexto para lembrar o que está acontecendo.Minha ferramenta de revisão de código , Phabricator , ou possivelmente ferramentas integradas ao IDE, que reconhecem o contexto da linguagem. Eu acho que o fluxo de solicitação de pull do github é terrível para a revisão de código, principalmente porque mostra o diff unificado e não lado a lado.
fonte