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

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)


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


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>"

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.


@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.


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 "

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


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

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.


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"

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)


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.


Na segunda linha, é svnnãosyn
Diego Romero Rodriguez
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.