
Tenho cópias funcionais do mesmo repositório em dois computadores diferentes (Macs). Há um arquivo em questão (digamos SomeFile.m
) que mostra estar em r703 em ambas as cópias de trabalho, sem modificações locais. Fazer svn update SomeFile.m
dos dois lados não produz atualizações - ele pensa que está totalmente atualizado com o repositório.
No entanto, os dois arquivos são diferentes. Eles têm somas de verificação diferentes e uma comparação mostra diferenças que são importantes para o código. O arquivo está correto em uma das cópias de trabalho, mas não na outra.
Primeiramente, como faço para forçar a substituição do arquivo incorreto pelo que estiver no repositório?
Em segundo lugar, como esse arquivo chegou a esse estado? Através de resolução incorreta de conflitos ou algo parecido?
Responder1
Se a versão de um arquivo for a correta, mas você suspeitar que a versão no repositório está incorreta, consulteComo posso forçar o Subversion a enviar um arquivo inalterado?
Se você quiser forçar a obtenção dos arquivos do repositório, consulteForçar um comando svn checkout para sobrescrever os arquivos atuais.
Caso contrário, basta modificar um dos arquivos, salvá-lo no repositório como uma nova revisão e fazer check-out novamente no outro computador como acima.
Responder2
A maneira mais fácil que encontrei de "forçar" um check-out/atualização de um arquivo específico é excluir esse arquivo na cópia de trabalho - exclusão do sistema de arquivos,não svn-delete
- e execute uma atualização da cópia de trabalho. O arquivo será restaurado com a versão do repositório.
Uma maneira pela qual o arquivo poderia ter chegado a esse estado é que ele apresenta alguma modificação local que passou despercebida. O SVN não enviará o arquivo sem resolução de conflitos e ele também ficará sem atualização.