SVN permanece em conflito?

284

Como faço para obter este diretório fora de conflito? Eu não me importo se é resolvido usando "deles" ou "meu" ou o que quer que seja ...

PS C:\Users\Mark\Desktop\myproject> svn ci -m "gr"
svn: Commit failed (details follow):
svn: Aborting commit: 'C:\Users\Mark\Desktop\myproject\addons' remains in conflict

PS C:\Users\Mark\Desktop\myproject> svn resolve --accept working C:\Users\Mark\Desktop\myproject\addons
Resolved conflicted state of 'C:\Users\Mark\Desktop\myproject\addons'

PS C:\Users\Mark\Desktop\myproject> svn ci -m "grr"
svn: Commit failed (details follow):
svn: Commit item 'addons' has copy flag but an invalid revision

PS C:\Users\Mark\Desktop\myproject> svn update
   C addons
svn: Can't move 'addons\debug_toolbar\templates\debug_toolbar\.svn\tmp\entries' to 'addons\debug_toolbar\templates\debug
_toolbar\.svn\entries': The file or directory is corrupted and unreadable.

PS C:\Users\Mark\Desktop\myproject> svn cleanup

PS C:\Users\Mark\Desktop\myproject> svn update
Skipped 'addons'
At revision 51.
Summary of conflicts:
  Skipped paths: 1

PS C:\Users\Mark\Desktop\myproject> svn ci -m "grrr"
svn: Commit failed (details follow):
svn: Aborting commit: 'C:\Users\Mark\Desktop\myproject\addons' remains in conflict
mpen
fonte
93
a resposta é: [svn resolved filename] faça isso em vez da solução aceita.
Travis Schneeberger
1
@TravisSchneeberger a solução aceita é bem 😉
Hi-Angel
svn resolved * filename * não corrige isso para mim.
Reinierpost

Respostas:

447

Dê o seguinte comando:

svn resolved <filename or directory that gives trouble>

(Obrigado a Jeremy Leipzig por esta resposta em um comentário)

Roalt
fonte
35
Sério, se você não se importa com a forma como isso é resolvido (talvez você vá excluí-lo de qualquer maneira), esta é a resposta certa.
invertedSpear
1
Isso não resolve nada. O erro provavelmente surgirá novamente no próximo commit.
Tadej
Muito obrigado, funciona para mim! Você deve no seu repositório svn root, você pode usar este comando!
21417 GeekHades
276

Ok, aqui está como corrigi-lo:

svn remove --force filename
svn resolve --accept=working  filename
svn commit

mais detalhes estão em: http://svnbook.red-bean.com/en/1.8/svn.tour.treeconflicts.html

Darrell Duane
fonte
Se você estiver trabalhando com o IDE Eclipse, também poderá aplicar minha solução "sem linha de comando", que descrevi em uma resposta separada abaixo.
precisa
3
Usando o svn 1.7.4, o svn help resolvido afirma que "foi reprovado em favor da execução de 'svn resolve --accept working'."
precisa saber é o seguinte
35

Para mim, apenas a opção de reverter a opção --thpth infinito corrigida, o diretório do Svn permanece em um problema confuso:

svn revert --depth infinity "<directory name>"
svn update "<directory name>"
nine9five
fonte
1
para reverter um diretório inteiro de arquivos ou um arquivo não existe mais
biology.info
Para resolver o conflito de arquivos excluídos localmente que existe no servidor, esta opção funcionou ..
Neo
1
Muito obrigado. "svn revert - profundidade infinita." trabalhou para mim e restaurado arquivos apagados, que não reapareceu apenas com "svn up"
Rauli Rajande
16
  1. svn resolve
  2. limpeza svn
  3. atualização svn

..os três comandos da CLI svn nesta sequência, enquanto o CD-ed no diretório correto funcionou para mim.

PiggyMacPigPig
fonte
@Elad Tabak: No meu caso eu tive que fazê-lo para o diretório pai do arquivo me dando problemas, isso pode ser o que você correu para dentro
Jay Sullivan
11

Se você estiver usando o Eclipse IDE e se deparar com esse erro ao confirmar, aqui está uma solução na ferramenta para você. Estou usando o Subclipse, mas a solução para o Subversive pode ser semelhante.

O que você talvez não tenha notado é que existe um símbolo adicional no arquivo conflitante, que marca o arquivo como "conflitado".

Clique com o botão direito do mouse no arquivo, escolha "Equipe" e "Editar conflitos ...". Escolha a ação apropriada. Eu mesclei o arquivo manualmente no nível do texto antes, então escolhi a primeira opção, que assumirá o estado atual da sua cópia local como "solução resolvida". Agora clique em "OK" e é isso.

O símbolo conflitante deveria ter desaparecido e você poderá confirmar novamente.

Peter Wippermann
fonte
2
Além disso, em caso de conflito de diretório, você pode fazer "Equipe-> Mostrar conflitos de árvore" e, em seguida, revisar todos esses conflitos e marcá-los como Resolvidos (em uma janela separada "Conflitos de árvore SVN")
altumano
6

Mais uma solução abaixo,

Se a pasta inteira for removida e o SVN estiver exibindo o erro "arquivo de administração .svn está ausente", o seguinte será usado para resolver o conflito no estado de funcionamento.

svn resolve --accept working "file / directory name "
Bala Varadarajan
fonte
3

Instruções para Tortoise SVN

Navegue para o diretório em que você vê esse erro. Se você não tiver nenhuma alteração, execute o seguinte

uma. Clique com o botão direito e faça um 'Reverter'
b. Selecione todos os arquivos
c. Atualize o diretório novamente

PipoTells
fonte
3

Eu uso o seguinte comando para remover conflitos usando a linha de comando

svn revert "location of conflict folder" -R
svn cleanup
svn update

para reverter o diretório atual

svn revert . -R
Ujjwal Roy
fonte
Hahahaha, não, não faça isso. Isso fará coisas ruins.
Owl
Seria, obviamente, reverter as alterações
Ujjwal Roy
ele realmente funciona para alguns problemas como conflitos e só poderia resolver via cli
Zero8
2

Se você tiver problemas para resolver (como eu) e não puder excluir e atualizar os recursos porque fez muitas alterações neles, além de estar usando o eclipse subversivo em vez do cliente nativo, siga estas etapas:

  1. faça uma cópia de todo o diretório do projeto
  2. execute team> desconecte dentro do eclipse e escolha excluir os metadados svn
  3. escolha equipe> compartilhar projeto e aponte para a mesma pasta em que seu projeto reside
  4. escolha sim e confirme tudo (você pode excluir alguns recursos locais, como arquivos de configuração)
  5. se você excluiu ou moveu alguns recursos antes da sua primeira tentativa de confirmação, exclua esses recursos antigos (eles deveriam ter dobrado, um no local antigo, um no novo) e confirme essas exclusões.

Você Terminou.

bekce
fonte
2

Eu acho que a solução adequada é:

(1) backup your-file/your-directory
(2) svn revert your-file/your-directory
(3) svn update your-file/your-directory
(4) Merge the backup your-file/your-directory to the updated one.
(5) svn ci -m "My work here is done"
Frank-Rene Schäfer
fonte
0

Eu tive um problema semelhante, foi assim que foi resolvido

xyz @ ip: ~ / formsProject_SVN $ svn resolvido formsProj / templates / pesquisa

Estado em conflito resolvido de 'formsProj / templates / search'

Agora atualize seu projeto

xyz @ ip: ~ / formsProject_SVN $ atualização svn

Atualizando '.':

Selecione: (mc) mantenha as manobras locais afetadas, (r) a marca resolvida (quebras de manobras), (p) adie, (q) saia da resolução, (h) ajude: r (selecione a opção "r" para resolver)

Estado em conflito resolvido de 'formsProj / templates / search'

Resumo dos conflitos: Conflitos da árvore: 0 restantes (e 1 já resolvido)

Raghu
fonte
0

Eu tive o mesmo problema no linux, mas não consegui corrigi-lo com a resposta aceita. Consegui resolvê-lo usando cdpara ir para a pasta correta e, em seguida, executando:

svn remove --force filename  
syn resolve --accept=working filename  
svn up

Isso é tudo.

Aisuko
fonte
Na segunda linha, é svnnãosyn
Diego Romero Rodriguez