Quando faço um svn status .
, recebo o seguinte:
! C auto-complete-config.elc
> local edit, incoming delete upon update
! + C auto-complete.elc
> local edit, incoming delete upon update
! + C popup.elc
> local edit, incoming delete upon update
! + C fuzzy.elc
> local edit, incoming delete upon update
basicamente, esses arquivos não devem estar no repositório. Um desenvolvedor os removeu. Então, acho que fiz um svn rm ...
após o fato por engano (deveria ter feito svn update .
).
Então agora, quando svn status .
recebo, recebo essas mensagens de conflito de árvore.
Encontrei o documento aqui, mas não sei como mesclá-lo de acordo com o documento.
como se livrar deles?
Acho que minha cópia de trabalho está sincronizada com o repositório. Não sei por que essas mensagens são exibidas. Esses arquivos devem ser removidos e removidos tanto quanto eu sei em todos os lugares. Eu tentei svn update .
e svn revert .
ainda recebo essa mensagem quando o faço svn status .
.
"local missing or deleted or moved away, incoming dir edit upon merge"
Respostas:
Versão curta:
Se o conflito é sobre diretórios em vez de arquivos, substitua
touch
pormkdir
erm
comrm -r
.Nota: o mesmo procedimento também funciona para a seguinte situação:
Versão longa:
Isso acontece quando você edita um arquivo enquanto outra pessoa o exclui e confirma primeiro. Como um bom cidadão de svn, você faz uma atualização antes de um commit. Agora você tem um conflito. Perceber que excluir o arquivo é a coisa certa a ser excluída da sua cópia de trabalho. Em vez de se contentar, o svn agora reclama que os arquivos locais estão ausentes e que há uma atualização conflitante que, em última análise, deseja ver os arquivos excluídos. Bom trabalho svn.
svn resolve
Não deve funcionar, por qualquer motivo, você pode fazer o seguinte:Situação inicial: faltam arquivos locais, a atualização está em conflito.
Recrie os arquivos conflitantes:
Se o conflito for sobre diretórios, substitua
touch
pormkdir
.Nova situação: Arquivos locais a serem adicionados ao repositório (sim, certo, svn, o que você disser), atualização ainda conflitante.
Reverta os arquivos para o estado que o svn gosta deles (isso significa que foi excluído):
Nova situação: os arquivos locais não conhecidos pelo svn, a atualização não é mais conflitante.
Agora podemos excluir os arquivos:
Se o conflito for sobre diretórios, substitua
rm
porrm -r
.svn não reclama mais:
Feito.
fonte
svn st | grep ! | cut -f 7 -d' ' | xargs touch
como um liner para tocar em todos os arquivos ausentesrm -r foo bar
(ourmdir foo bar
no Windows ou se você gosta do Windows).Tente resolver o conflito usando
fonte
Acabei de receber o mesmo problema e descobri que
resolveu o problema.
svn resolve não funcionou para mim:
fonte
Se você não tiver feito alterações dentro do diretório em conflito, você também pode
rm -rf conflicts_in_here/
e depoissvn up
. Isso funcionou para mim, pelo menos.fonte
Você pode forçar a reverter seu diretório local para svn.
fonte
A + C path/to/dir
e #> local dir edit, incoming dir delete or move upon update
Portanto, você pode simplesmente reverter o arquivo excluído, mas lembre-se: se você estiver trabalhando em qualquer tipo de projeto com um arquivo de projeto definido (como iOS), a reversão do arquivo o adicionará à estrutura de pastas do sistema, mas não à estrutura de arquivos do projeto. etapas adicionais podem ser necessárias se você estiver nesse caso
fonte
Esse problema geralmente ocorre quando tentamos mesclar outras alterações de ramificação de um diretório errado.
Ex:
Um conflito que é lançado sobre sua execução é:
E quando você seleciona q para sair da resolução , você obtém o status como:
o que significa claramente que a mesclagem contém alterações relacionadas a
Branch1_SubDir
eBranch1_AnotherSubDir
, e essas pastas não foram encontradas dentroBranch1_SubDir
(obviamente, um diretório não pode estar dentro de si).Como evitar esse problema em primeiro lugar:
A correção mais simples para esse problema que funcionou para mim:
fonte