Como eu produzo a diferença entre duas revisões específicas no Subversion?

120

Estou usando o Subversion através da interface da linha de comandos do Linux.

Quero ver a diferença entre a revisão 11390 e 8979 de um arquivo específico chamado fSupplierModel.phpno meu terminal. Como eu posso fazer isso?

allen213
fonte
Adicione aqui como aplicá-lo de volta: stackoverflow.com/questions/10333712/…
Vadzim

Respostas:

171

Veja svn diffno manual:

svn diff -r 8979:11390 http://svn.collab.net/repos/svn/trunk/fSupplierModel.php
RedFilter
fonte
3
Se você deseja uma saída bonita, instale o colordiff e adicione `| colordiff` até o final do comando acima para canalizar tudo através dele.
William Turrell
56

Para comparar revisões inteiras, é simplesmente:

svn diff -r 8979:11390


Se você quiser comparar o último estado confirmado com os arquivos de trabalho salvos no momento, poderá usar palavras-chave de conveniência:

svn diff -r PREV:HEAD

(Observe que, sem nada especificado posteriormente, todos os arquivos nas revisões especificadas são comparados.)


Você pode comparar um arquivo específico se adicionar o caminho do arquivo posteriormente:

svn diff -r 8979:HEAD /path/to/my/file.php

ahnbizcad
fonte
2
colocando CABEÇA: PREV parecia fazer mais sentido para mim na saída do diff, talvez vai ajudar os outros
Fonix
@Fonix você está no paradigma de "como outro commit difere do meu estado atual"? Se sim, eu concordo. Normalmente, penso em alterações cronológicas confirmadas, portanto as alterações feitas no HEAD teriam sido as alterações novas / adicionadas do PREV, que é o paradigma em que costumo pensar. Existem casos e argumentos a serem feitos para qualquer um dos paradigmas.
ahnbizcad