TortoiseSVN arquivo ausente na atualização

12

Ocasionalmente, tivemos um problema com o TortoiseSVN (suponho que seja o Tortoise e não o nosso repositório SVN), onde um arquivo será registrado no repositório (fazendo um repo-browser você pode ver os arquivos lá) e existirá para a pessoa quem os confirmou, mas quando outra pessoa fizer uma atualização, esses arquivos não serão adicionados à cópia de trabalho. Se eu escolher "Copiar para cópia de trabalho ..." no navegador de repositório e tentar confirmar, os arquivos serão tratados como novos para mim e meu cliente tentará adicioná-los, causando um erro. A atualização também resulta em algum erro (não sei como reproduzir isso, não sei o que especificamente causaria isso e não me lembro dos erros exatos). Eu tenho que excluir os arquivos do repositório e confirmar os arquivos como novos. Depois disto,

O repositório é acessado através do protocolo svn: //, para um servidor executando a versão 1.4.6. Ele está hospedado em uma máquina Windows Server 2003 em execução como um serviço do Windows.

O repositório é organizado da seguinte maneira:

[repositório] / Código / [projetos]
[repositório] / Código / [Site] / * alguma página aqui *
[repositório] / Dados / [arquivos de dados diversos]
[repositório] / Referências / [DLLs / Referências]

Isso acontece quase exclusivamente com .aspx / .aspx.cs / .aspx.designer.cs e, geralmente, com todos os três de cada vez. Como se uma "página" inteira não fosse adicionada à minha pasta. Isso aconteceu com o Visual Studio aberto e executando a solução e também sem o Visual Studio aberto.

Alguém já viu isso antes e conhece a causa / solução?

proporção áurea
fonte
1
Você poderia postar a versão do TortoiseSVN e como o seu SVN está hospedado (http: //, svn: //, local etc.) e por que meios (Apache, IIS, VisualSVN, etc.), incluindo quaisquer outros números de versão.
Richard Slater
1
Tente também recriar os diretórios de trabalho (basta criar um adicional) para ver se algo deu errado quando você fez o check-out pela primeira vez.
reconbotou
1
Como primeira etapa, atualize para a versão mais recente do TSVN (1.6.3 agora). Eu acredito que houve um bug relacionado no 1.6.x que foi corrigido na versão 1.6.2.
Milen A. Radev
2
Estamos enfrentando esse mesmo problema com o cliente TortoiseSVN 1.7 conectado a um repositório Subversion 1.6. Existe uma correção semelhante em algum lugar?
JNappi

Respostas:

10

Eu também já tive o problema descrito algumas vezes. No momento, aconteceu novamente. Mesma situação: houve vários arquivos alterados / adicionados / excluídos / movidos no servidor SVN de um cliente SVN A e o cliente SVN B atualizou sua cópia de trabalho (usando o Tortoise SVN). Após a atualização, alguns dos arquivos que foram adicionados de A não estão presentes na cópia de trabalho de B, mas o navegador do repositório os mostra no local correto no servidor SVN. Atualizar novamente com o Tortoise sempre afirma que tudo está na revisão atual. Também um "svn up" na pasta onde estão faltando os arquivos diz que tudo está na revisão atual.

estou a usar

Tortoise SVN 1.6.6, Build 17493 - 64 Bit

Visual SVN 1.7 (integração SVN ao Visual Studio 2008)

Edit: Parece ser um problema conhecido, eis a solução: http://tortoisesvn.tigris.org/ds/viewMessage.do?dsForumId=4061&dsMessageId=2379518


fonte
1
Para qualquer outra pessoa: Aqui está a solução direta: para cada uma das cópias de trabalho problemáticas, use "Atualizar para revisão" e defina a profundidade da cópia de trabalho como "Totalmente recursiva".
Coding_idiot 22/10/12
3

você pode testar se é tartaruga ou svn usando as ferramentas de linha de comando. digite 'svn up' no diretório raiz do WC.

Como você diz que está no 1.4.6, você não está tendo problemas com diretórios esparsos. Você ignorou arquivos nas configurações do seu cliente? Tem certeza de que seu WC está apontando para a URL correta no repositório e não foi alternado para uma ramificação diferente? (você pode ver isso nas propriedades da pasta - há uma guia de subversão)

Se você fizer 'svn status' no seu WC, deverá ver a lista de arquivos alterados no diretório do servidor.

gbjbaanb
fonte
3

Eu experimentei o mesmo problema com o SVN 1.6.2 e 1.6.3 (linha de comando, Tortoise e Subclipse). parece que esse problema está relacionado ao próprio SVN. Existe uma solução alternativa a seguir - tente fazer o checkout no mesmo diretório - apenas adiciona os arquivos ausentes.

al0
fonte
1

Também experimentei esse bug com o Tortoise SVN com pelo menos 1.6.2 para o que estou usando atualmente 1.6.5. "Get latest" não obterá os arquivos do repositório. Eu tive que excluir o diretório afetado e obter as informações mais recentes sobre o diretório pai para recriar o diretório e seu conteúdo.

gbjbaanb, esse definitivamente não é um caso de arquivos ignorados ou ramificações comutadas.


fonte
1

Não consegui resolver esse problema usando as instruções no link de Daniel, mas concordo que parece ser um problema central na maioria das implementações SVN no Windows, no mínimo.

Para corrigir meu problema de pasta ausente, minhas etapas foram:

  1. "Atualizar para revisão", selecionando um número de confirmação antes de qualquer arquivo na pasta ser modificado, adicionado ou excluído e certifique-se de escolher "Totalmente recursivo". (Isso causará algum erro estranho no Tortoise. Isso é esperado!)
  2. Execute uma limpeza.
  3. Atualize a pasta novamente e você deverá obter a pasta inteira!

Espero que isso ajude alguém por aí.

Matt DeKrey
fonte
0

Infelizmente, as respostas anteriores acima não funcionaram para mim. Eu tinha o mesmo problema: uma pasta na qual eu estava trabalhando tinha alguns objetos não confirmados. Essa pasta foi atualizada com muitos objetos por outro usuário. Eu podia ver os objetos desse usuário no repositório, mas toda vez que fazia uma atualização, nunca obtinha os objetos desse usuário.

A correção que funcionou é usar o TortoiseSVN Revert na pasta.

Allen
fonte