Como faço para corrigir “Commit falhou. xxx arquivo está desatualizado. caminho xxx não foi encontrado.”

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

  •  03-07-2019
  •  | 
  •  

Pergunta

Tenho recentemente correr em uma questão particularmente pegajosa sobre comprometendo o resultado de uma fusão na subversão. O nosso servidor Subversion é @ 1.5.0 e meu cliente TortoiseSVN é agora @ 1.6.1.

Eu estou tentando mesclar um ramo de volta recurso no meu tronco. A fusão parece funcionar bem; no entanto, a submissão falha com a seguinte mensagem de erro.

Commit failed (details follow):
File 
'flex/src/com/penbay/invision/portal/services/http/soap/ReportServices/GetAllBldgsParamsByRegionBySiteResultEvent.as' 
is out of date
'/svn/ibis/!svn/wrk/531d459d-80fa-ea46-bfb4-940d79ee6d2e/visualization/trunk/source/flex/src/com/penbay/invision/portal/services/http/soap/ReportServices/GetAllBldgsParamsByRegionBySiteResultEvent.as' 
path not found
You have to update your working copy first.

Meu tronco de funcionamento é até à data. Eu mesmo verificado um novo em uma pasta diferente para se certificar de que não havia nenhuma sujeira locais mexer com a mesclagem. Eu ter feito mais alguma investigação sobre isso e eu acho que parte do problema é erro do usuário. Eu acho que nossos problemas são:

  1. Tivemos alguns desenvolvedores cometem trabalho com um cliente subversion antes 1,5 e alguns depois. Eu acredito que este tem o potencial para corromper a informação mesclagem.
  2. Em outros ramos temos realizado fusões parciais. Ou seja, nós não sempre realizar fusões na raiz do ramo. Esta foi a facilitar a actualização esforços Flex e .NET dentro do mesmo ramo.
  3. Realizamos fusões cíclicos (reflexivos) no nosso ramo. Isso foi feito porque tivemos várias ramificações paralelas e queríamos atualizar periodicamente o nosso ramo com o código mais recente no tronco.

Todas estas coisas são explicitamente não recomendado pelo livro Subversion / equipe. Nós aprendemos a nossa lição e agora conhecer as melhores práticas. No entanto, primeiro precisamos mesclar e comprometer a nossa mais recente ramo.

O que a melhor maneira de corrigir os problemas que estão encontrando?

Será que apagar todas as informações mesclar no tronco e ramo ser uma solução viável? Não. Eu tenho feito isso, mas ele não resolver o erro que eu estou recebendo acima.

Foi útil?

Solução

Eu tive o mesmo problema hoje e eu não fiz quaisquer fusões intermediários assim do seu post de abertura única # 1 pode aplicar - no entanto eu fiz commits tanto de um cliente svn no ubuntu, bem como tortoisesvn nas janelas. Felizmente no meu caso sem alterações para o tronco foram feitas para que eu pudesse substituir apenas o tronco com o ramo. Possivelmente diferentes versões svn então? Isso é bastante preocupante.

Se você usar o svn mover / copiar / funções de exclusão embora sem história perde-se no meu caso -. Svn i moveu o tronco e, em seguida, svn mudou o ramo ao tronco

Outras dicas

Eu apenas tive este problema, ea causa parecia ser que um diretório foi marcado como em conflito. Para corrigir:

svn update
svn resolved <the directory in conflict>
svn commit

Eu estava ficando esta no 1.6.2 servidor, 1.6.8 tartaruga. Todos no Windows, não houver integrações neste ramo.

Eu renomeado um diretório e de alguma forma (possivelmente devido a AnkhSVN) dois dos arquivos dentro do diretório estavam sendo marcados como "substituído" em vez de "normal". Havia algumas pequenas alterações adicionais para outros arquivos dentro do diretório.

Revertendo os arquivos marcados como substituído corrigiu o problema.

Eu também tive o mesmo problema e resolvi o mesmo pelo método seguinte

svn resolve --accept=working <FILE/FOLDER NAME>
svn cleanup
svn update <FILE/FOLDER NAME>
svn commit <FILE/FOLDER NAME> -m "Comment"

Espero que isso irá ajudá-lo:)

Eu tive o mesmo problema ao tentar comprometer minha cópia de trabalho. O que fiz foi adicionar a pasta que o Subversion relata como "caminho não encontrado" à lista de ignorados. Commit (deve suceder). Em seguida, adicione a mesma pasta de volta para o Subversion. Cometer novamente.

Eu apenas tive problema semelhante, mas sem qualquer ramificação ou fusão para causar o problema. Minha solução foi a:

  • svn exportar minha pasta de trabalho (incluindo arquivos sem versão) para uma pasta temporária.
  • renomear o trabalho pasta uma cópia de segurança.
  • svn checkout do tronco.
  • copiar todos pasta da pasta temporária de exportação sobre nova pasta de trabalho.
  • SVN cometer.

Tudo parece bem agora.

Eu sei que este é um post antigo, mas este problema ainda ocorre com bastante frequência. A maneira mais simples que eu encontrei para resolver isso é renomear / excluir o .svn / all-wcprops arquivo na pasta afetada, em seguida, executar uma atualização e se comprometer.

Eu tive o mesmo problema, não sabe o que é a razão por trás disso, mas eu fixo, digitando o terminal

svn update

e então eu cometer e crescer funcionou!

Oh boy! Isso parece ruim! A única opção que eu posso pensar é que a cópia de trabalho está corrompido.

Tente excluir a cópia de trabalho, realizando um novo check-out e executar o merge novamente.

Se isso não funcionar, em seguida, registrar um bug.

Eu não foram capazes de encontrar uma solução satisfatória para este problema; No entanto, tenho encontrado uma solução insatisfatória.

Eu apaguei todos os arquivos dentro do tronco e comprometidos essas mudanças. Eu, então, exportados meu código ramo no tronco, adicionado todos os arquivos, e fez uma grande cometer. Isto teve o efeito de meu tronco imitando meu ramo. 1: 1 (que é o que eu queria de qualquer maneira)

Infelizmente, isso cria uma grande divisão como a história de todos os arquivos está agora "perdidos". Mas, devido às limitações de tempo não parecia haver nenhuma outra opção.

Eu ainda será interessado em qualquer respostas que outros podem ter como eu gostaria de saber o que a causa raiz foi e como evitá-la no futuro.

Eu tive o mesmo problema após a fusão um ramo com uma tonelada de mudanças de volta no meu tronco. As únicas duas soluções que eu podia ver era para fazer a solução svn move oferecido por Pacifika ou mesclar manualmente os arquivos com uma ferramenta de comparação . Mas eu encontrei uma solução alternativa ...

A máquina que não estava funcionando estava correndo Subversion cliente 1.6.5. Eu fiz exatamente a mesma coisa em uma máquina com Subversion 1.5.4 e funcionou ! Em ambas as máquinas que fiz a 1) check-out limpa do tronco, 2) svn merge ..., e 3) SVN cometer. Meu servidor é 1.5.x para o que desse valor.

Espero que isso ajude alguém.

Tive problema semelhante com o SVN 1.6.5 para Mac 10.6.5, atualizado para SVN 1.6.9 e o commit sucedido.

Eu tive o mesmo problema quando eu tentei cometer um pacote excluído (que contém várias classes Java, mas nada do pacote era necessário mais).
Minha solução / solução alternativa, a fim de corrigir o problema:

  • I reverteu todo o pacote
  • apagou o conteúdo em primeiro lugar
  • cometeu o conteúdo apagado
  • finalmente, eu cometido o pacote eliminado novamente (e funcionou na maioria dos casos: -))

No entanto, de vez em quando não era possível cometer um pacote excluído (que não contém nada)
Minha solução:

  • Eu criei uma classe fictícia no pacote
  • e depois que eu repetiu as etapas mencionadas acima

A minha última dica ...
Mas às vezes ele ajuda simples para sincronizar o pacote / projeto mais uma vez e depois que tudo funciona muito bem novamente.


Sobre a minha configuração:

  • Eclipse Neon
  • SVN Interface: JavaHL (JNI) 1.8.13 (r1667537)
  • VisualSVN Server Manager, Versão: 3.3.1


Talvez eu pudesse ajudar alguém com uma das minhas sugestões.

Eu acho que eu vi algo semelhante, quando pastas foram movidos no servidor, mas as cópias de trabalho ainda eram obrigados a estrutura da pasta SVN mais velho. Não tenho certeza se alguém mudou as coisas em seu tronco antes que você teve a chance de mesclar o ramo.

Existe essa possibilidade?

Este parece ser um problema com a propriedade svn:mergeinfo ficando fora de Wack entre o ramo eo tronco.

O que leva às seguintes perguntas (perdoe minhas instruções de linha de comando que eu uso feito tartaruga muito):

  1. Você está fundindo no nível de raiz tronco ou o nível de pasta sub? Na minha experiência, é sempre melhor fazer ao nível da raiz, desta forma todo o tronco pensa que foi fundido para, em vez de apenas uma parte (isto parece confundir svn muito em 1.5.0)

  2. A minha próxima pergunta é que você estava usando o parâmetro --reintergrate? Eu nunca consigo lembrar como chegar a isso em tartaruga, mas quando você está indo de volta para o tronco de uma filial, em seguida, você deve usar esse parâmetro.

  3. Você fundiu o tronco para o ramo antes de ter reintegrado? Isso pode ajudar a conflitos remover essa você pode ver quando você mesclar volta?

  4. Você tem quaisquer propriedades svn:mergeinfo sobre o ramo que não estão no nível de raiz? Este eu encontrei sempre causa problemas. Você sempre pode encontrar este para fora, indo svn -R pg svn:mergeinfo. Você pode então gravar os locais e revisões que estavam abaixo da raiz, se você encontrá-los relevantes, em seguida, movê-los para a raiz por svn merge --record-only -r start:end <location> e excluí-los a partir das localizações sub raiz com svn pd svn:mergeinfo <location> então você precisa para cometer essas mudanças

  5. Uma vez que você tem tudo o que é feito tentativa fusão novamente.

Eu duvido, mas talvez executando svn limpeza em seu diretório de trabalho vai ajudar.

Eu encontrei o mesmo problema, bater a cabeça para cima e descobriu que eu tinha mudado o diretório no represotory de "/" para "/ trunk" e esqueceu de fazer o comando "Switch", em TortoiseSVN!

Uau, este me levou um tempo para resolver, como eu estava usando SVN através do Eclipse. No final, a única coisa que funcionou para mim foi a cometer todos os arquivos não-afetados, então (com o Eclipse fechado) renomear o diretório do projeto, e re-verificar o projeto a partir do SVN. Fico feliz que ele funciona corretamente agora!

Aparentemente SVN não é um programa muito confiável. Eu tive o mesmo problema (usando SVN com turtoise) e resolveu por salvar o conteúdo do arquivo .cs e depois voltar 1 revisão. Isso mostrou conflitos como este: "<<<<<<< filename minhas alterações

======= código mescladas a partir do repositório revisão "

enquanto eu tenho especial qualquer coisa não for feito (apenas uma vez definido novamente uma revisão).

Eu substituí o conteúdo deste arquivo com o conteúdo salvo, salvo, e depois selecionado via TortoiseSVN ? Resolvido. Eu poderia, então, cometer as modificações para o repositório.

Graças Jamie Bullock este trabalho para me

De acordo com Jamie Bullock,

Eu apenas tive este problema, ea causa parecia ser que um diretório foi marcado como em conflito. Para corrigir:

  1. svn update
  2. svn resolvido
  3. SVN commit
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top