Como posso encontrar o histórico de revisão do arquivo que foi excluído e, em seguida, reenviadas para o SVN?

StackOverflow https://stackoverflow.com/questions/33836

  •  09-06-2019
  •  | 
  •  

Pergunta

Este é um siga na pergunta "Como faço para excluir 1 ficheiro a partir de uma revisão no SVN?"mas porque ele provavelmente tem uma resposta diferente e acredito que os outros iriam beneficiar de saber a resposta.(Eu não sei a resposta ainda.)

A pergunta anterior foi respondida e que eu descobri que não é possível remover uma revisão do SVN.A segunda melhor solução era remover o arquivo do SVN, de confirmação e, em seguida, adicione o arquivo de volta e confirmar novamente.

Eu agora quero certifique-se de que o arquivo original do histórico de revisão foi.Então eu estou esperando que a resposta para a pergunta "Como posso encontrar o histórico de revisão do arquivo que foi excluído e, em seguida, reenviadas para o SVN?"é que você não pode.

Foi útil?

Solução

Com um simples

svn log -v [folder]

você pode procurar rapidamente a inclusão e a exclusão.

------------------------------------------------------------------------
r14 | kame | 2008-08-29 04:23:43 +0200 (ven., 29 aoû2008) | 1 line
Chemins modifié :
   A /a.txt

Readded a
------------------------------------------------------------------------
r13 | kame | 2008-08-29 04:23:24 +0200 (ven., 29 aoû2008) | 1 line
Chemins modifié :
   D /a.txt

Delete a
------------------------------------------------------------------------
r12 | kame | 2008-08-29 04:23:06 +0200 (ven., 29 aoû2008) | 1 line
Chemins modifié :
   A /a.txt

svn log não mostrar o arquivo, o svn diff vai fingir que a revisão antiga não existe, mas um svn checkout segmentação antigo revisão terão todo o prazer em dar-lhe o arquivo antigo.

Outras dicas

O que faz você pensar que não é possível remover uma revisão do Subversion?A solução dada à sua outra pergunta (svndumpfilter) faz exatamente isso (consulte os parâmetros --drop-empty-revs e --renumber-revs)!E quando a revisão é ido, obviamente não há nenhuma maneira de obter a revisão da história, porque ele nunca esteve lá, em primeiro lugar.

Resposta curta: você pode

Resposta longa:

Infelizmente (para você, mas talvez não para a maioria das pessoas) , o histórico de revisão de um arquivo excluído ainda está lá - apenas um pouco mais difícil de obter.

Aqui está um exemplo:

$ touch one
$ svn add one
$ svn ci -m "Added file one"
$ date >> one 
$ svn ci -m "Updated file one"
$ date >> one
$ svn ci -m "Updated file one again"
$ svn log file:///repos/one

------------------------------------------------------------------------
r3 | andrewr | 2008-08-29 12:27:10 +1000 (Fri, 29 Aug 2008) | 1 line

Updated file one again
------------------------------------------------------------------------
r2 | andrewr | 2008-08-29 12:26:50 +1000 (Fri, 29 Aug 2008) | 1 line

Updated file one
------------------------------------------------------------------------
r1 | andrewr | 2008-08-29 12:25:07 +1000 (Fri, 29 Aug 2008) | 1 line

Added file one
------------------------------------------------------------------------

$ svn delete one
$ svn ci -m "Deleted file one"
$ svn up
$ touch one
$ svn add one
$ svn ci -m "Adding file one back in"
$ svn log file:///repos/one

------------------------------------------------------------------------
r5 | andrewr | 2008-08-29 12:29:13 +1000 (Fri, 29 Aug 2008) | 1 line

add one back
------------------------------------------------------------------------

Parece que ele funciona (a velha história está desaparecido), mas se você solicitar o arquivo em revisões mais antigas você começa a história do arquivo excluído.

$ svn log -r 3:1 file:///repos/one

------------------------------------------------------------------------
r3 | andrewr | 2008-08-29 12:27:10 +1000 (Fri, 29 Aug 2008) | 1 line

Updated file one again
------------------------------------------------------------------------
r2 | andrewr | 2008-08-29 12:26:50 +1000 (Fri, 29 Aug 2008) | 1 line

Updated file one
------------------------------------------------------------------------
r1 | andrewr | 2008-08-29 12:25:07 +1000 (Fri, 29 Aug 2008) | 1 line

Added file one
------------------------------------------------------------------------

Eu teria dito que você não pode - você criou um novo arquivo e, assim, a revisão árvore nos olhos do SVN.

Talvez seja possível recuperar a velha árvore de forma independente (não sei se você conseguiu um delete real ou apenas SVN Delete), mas não existe nenhuma ligação entre o antigo revisão árvore e o novo.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top