Avisos de arquivo ausentes aparecendo após a atualização para o Xcode 4

166

Atualizei recentemente para o Xcode 4 (que é uma ótima atualização), mas agora estou recebendo alguns avisos que não recebi antes. Eu procurei em fóruns e outras postagens de SO, mas não encontrei como corrigir isso.

Os avisos que recebo são avisos no nível do projeto para um arquivo ausente. Os arquivos que estão sendo mostrados foram excluídos da visualização do navegador do projeto (também escolhendo excluir do sistema de arquivos). No entanto, ainda parece estar aparecendo como de alguma forma vinculado ao projeto, mesmo que o arquivo não apareça mais no navegador do projeto.

Eu olhei em volta e não encontrei como posso dizer ao Xcode que esses arquivos sumiram, pare de me dar avisos. Aqui está uma captura de tela que recebo no Xcode4, mas nunca no Xcode 3.

Aviso de arquivo ausente Xcode 4

Scott
fonte
Se eu fosse você, sempre importaria seus arquivos para o seu projeto, em vez de apenas manter um link para eles no disco. Realmente evita dores de cabeça se você mover arquivos mais tarde.
Sudo rm -rf 14/03

Respostas:

297

Essas soluções são muito difíceis. O problema é que você removeu o projeto do sistema de arquivos, mas o SVN ainda pensa que eles estão lá. Desanexar o projeto do SVN funcionará da mesma forma para remover as pastas .svn, mas isso destruirá seu repositório!

É muito mais fácil abrir o console, navegue até sua pasta ("cd / pathToYourFolder") e digite o seguinte comando:

svn delete nameOfMissingFile

Se o nome do seu arquivo ausente incluir o caractere @ (por exemplo: trabalho artístico específico da retina), verifique se o nome do arquivo termina com o símbolo @:

svn delete [email protected]@

Para repositórios GIT:

git rm nameOfMissingFile

Sulthan
fonte
20
Eu tive o mesmo problema e resolvi-o através do Terminal usando:svn rm --force nameOfMissingFile
ReachWest 22/03
1
Essa é uma resposta melhor que a marcada como correta. Excluir pastas SVN de um projeto sob controle de SVN pode ser um mundo de dor. Melhor usar o SVN para resolver o problema. Eu segui esta resposta para resolver meu próprio problema, no entanto, tive o luxo de Cornerstone. Mas por outro lado legal. Obrigado :)
jowie
1
Isso não parece estar funcionando para mim. Eu adicionaria o arquivo novamente e o excluiria, mas o mesmo aviso ainda aparece na compilação. Até tentei adicionar os arquivos ao projeto e excluí-los. Ainda é o mesmo problema.
Yenyi 31/08/19
10
Funcionou para mim, mas primeiro tive que criar um arquivo fictício lá antes de poder excluir se estiver usando o svn. Então você tem que fazer contato nameOfMissingFile e, em seguida, SVN excluir nameOfMissingFile --force
Maciej Swic
9
Além disso, tive que sair e matar o xcode para que o problema desaparecesse.
Twilite
55

No XCode 4.2. + (Possivelmente em 4+), você pode evitar o trabalho manual e a linha de comando:

  1. Selecione o projeto Project Navigator (Command - 1)
  2. Escolha o menu Arquivo - Controle de origem - Confirmar
  3. No painel esquerdo, em cima dele, existem três ícones, selecione o meio - Visualização de arquivo
  4. Você verá a lista de todos os arquivos ausentes
  5. Selecione todos eles e clique com o botão direito do mouse - Descartar alterações. Isso restaurará todos os arquivos excluídos do servidor SVN e os colocará na pasta SVN local
  6. Arraste e solte esses arquivos no projeto XCode (Escolha a Data da Classificação Modificada no Finder para encontrá-los facilmente)
  7. Exclua esses arquivos corretamente através do XCode (selecione os arquivos e clique com o botão direito do mouse em Excluir)
  8. Comprometa o projeto

E é isso :)

Todos esses avisos desagradáveis ​​se foram!

Além disso, para o Xcode 6+: Depois de selecionar a exibição do arquivo 'ícone do meio' - você pode clicar na caixa de seleção à esquerda e marcá-los como excluídos para o SVN na próxima confirmação!

Alex
fonte
1
Necessário apenas até a etapa 5. Na verdade, eu não tinha os arquivos no SVN.
Darren Reely
Eu havia refatorado um projeto, o que afetou outro projeto, por causa de algum código compartilhado, e o XCode estava reclamando de arquivos ausentes, relacionados ao SVN. Demorei um pouco para descobrir que era um problema do SVN, depois de vasculhar manualmente o xml de origem do projeto e não encontrar nada.
Danfordham
50

No Xcode5 e no Xcode6, as etapas abaixo funcionaram para mim

Xcode-> Preferences-> Source Control->uncheck Enable Source Control

então

Xcode-> Preferences-> Source Control->check Enable Source Control

Shamsudheen TK
fonte
No Xcode 8.3.2, isso funcionou por cerca de dez minutos e, em seguida, todos os avisos retornaram :(
Bob
27

Tem algo a ver com pastas ocultas .svn no seu projeto.

Resolvi esse problema desanexando o projeto do svn.

uma. Abra o terminal e digite os seguintes comandos:

defaults write com.apple.finder AppleShowAllFiles TRUE


killall Finder

Isso permitirá que você visualize as pastas .svn dentro do seu projeto

b. Exclua todas as pastas .svn das pastas / subpastas do projeto

c. Reative arquivos ocultos:

defaults write com.apple.finder AppleShowAllFiles FALSE

killall Finder

d. Agora seu projeto foi desanexado do svn e você não terá mais problemas de construção.

e Volte a adicionar o seu projeto ao svn ou qualquer outra coisa.

Eu também sou iniciante e esse foi o meu jeito de lidar com esse problema, então não tenho certeza se esse é o melhor caminho a percorrer. Enfim, o problema foi resolvido.

Robert Neagu
fonte
3
Não é uma boa idéia sair mexendo com pastas e arquivos ocultos do SVN, você pode acabar com uma bagunça confusa do SVN. É melhor usar o comando svn delete para arrumar os arquivos ausentes.
10131 jowie
Esse é o caminho que acabei seguindo. Sim, ele exclui todas as informações salvas do SVN, mas isso era algo que alguém havia colocado em um projeto específico que eu não queria manter. Eu queria começar do zero e não me importei em manter a versão específica.
Scott
Eu apenas "killall Finder", relançando-o. O problema se foi agora. Obrigado
JHHoang 8/12/12
9

Isso funcionou para mim:

File-> Source Control->Hide Working Copy Status

então

File-> Source Control->Show Working Copy Status

Tyson
fonte
6

Eu resolvi da seguinte maneira:

  1. Verifique o caminho para o arquivo ausente.
  2. Crie arquivos ausentes nos locais apropriados no diretório do projeto
  3. Adicione-os ao seu projeto usando "Adicionar arquivos ao" projeto "" e crie apenas referências (não copie os arquivos)
  4. Os avisos devem desaparecer neste momento.
  5. No Xcode, exclua os arquivos, clicando em "Excluir" em vez do padrão "Excluir apenas referência"
  6. Você Terminou.
askoric
fonte
4

Eu tinha esse bug e não encontrei outra maneira de resolvê-lo além de criar um arquivo vazio nessa posição e excluí-lo. Isso aconteceu com os arquivos que eu havia excluído do projeto e a limpeza, construção e exclusão manual do diretório Derived Data também não funcionava. Acredito que seja um bug e que pode ser bastante doloroso se ocorrer com mais do que alguns arquivos.

Jano
fonte
Triste, esperava que houvesse uma maneira mais fácil de contornar esse problema. Eu tenho cerca de 20 arquivos, portanto, criar e excluir será bastante trabalhoso.
13133 Scott
4

Eu também tive esse problema e, como user151215 descreveu, é devido a pastas .svn.

Eu tinha uma pasta .svn antiga, não no próprio projeto, mas na pasta pai do projeto.

a pasta .svn incorreta terá um arquivo de entradas que contém os arquivos ausentes. Portanto, você pode usar o Teminal e procurar uma string de nome de arquivo ausente, por exemplo, grep -lir BagController.m yourRootDevDir / *

mais simples do que ativar arquivos ocultos no localizador, basta usar o terminal. cd para o diretório relevante e mv .svn ~ / .Trash

Espero que isto ajude!

Nick H247
fonte
4

Vá para o diretório apropriado e execute:

svn revert fileName
Shaun McCarthy
fonte
3

Usei a seguinte maneira de lidar com esse problema:

Inicie o terminal e o cd no diretório do projeto. (ex: cd / Usuários / Mauro/Src/Pippero-1.2/)

Em seguida, digite o seguinte comando:

find . -name .svn -exec rm -rf { } \;

o comando procurará recursivamente arquivos (e pastas) chamados .svn e os excluirá

Mauro Delrio
fonte
isso não funcionou para mim, mas entrar em cada diretório e excluir as pastas .svn individuais funcionou. tão grandes ups para você, meu homem!
gonzobrains
2

Estou usando o svn e consigo resolver esse problema

svn delete pathToMissingFile

que removerá a cópia svn local do arquivo ausente, bem como a cópia no repositório remoto.

ou

svn revert pathToMissingFile

que descartará as alterações no arquivo ausente, o que significa colocar o arquivo ausente de volta para onde estava.

Jibeex
fonte
1

Todas as opções acima não funcionaram para resolver o mesmo tipo de problema que tive. Ao fazer alguma pesquisa, entendi que o problema estava relacionado a conflitos de SVN.

Eu descobri que havia conflitos usando a linha de comando:

svn status

Todos os arquivos em conflito precisavam ser resolvidos

svn resolved filename1 filename2 ...

Depois que os conflitos foram resolvidos, os avisos foram retirados do Xcode

gfrigon
fonte
1
  1. Confirme e envie suas alterações.
  2. Reinicie o Xcode.
quemeful
fonte
1

É muito simples,

Xcode -> Preferences -> Source Control -> uncheck Enable Source Control

e não se esqueça de fazer cmd+shift+k

Kavin Kumar Arumugam
fonte
0

Pressione Cmd + 7 após a compilação e selecione a ação de compilação mais recente. Parece um bom e velho Xcode um pouco? :) insira a descrição da imagem aqui

knuku
fonte
Sim, parece o antigo XCode, mas não resolve o problema do novo XCode, dizendo que tenho arquivos ausentes. Eu gosto da vista, mas parece que isso está apenas ocultando o problema com o XCode.
13133 Scott
0

No meu caso

  1. Eu simplesmente abro o SvnX.
  2. Todos os arquivos ausentes estão marcados em vermelho. Selecione e exclua-os.
  3. Então todos os avisos do Xcode se foram.
Apoc
fonte
0

A resposta de Alex corrigiu meu problema de arquivos ausentes.

Tive outro problema (embora não esteja relacionado a arquivos ausentes, acho que esse seria o melhor tópico)

  1. Eu precisava copiar um conjunto de imagens no meu projeto.
  2. Eu simplesmente criei um grupo (embora eu saiba que esse grupo não é mapeado para a pasta física) e arrastei as imagens para o grupo (opção "Copiar para ..").
  3. O status SVN mostrou todos eles em "A".
  4. Agora, quando entrei no sistema de arquivos real, descobri que todas as imagens eram copiadas para a pasta raiz do meu projeto. Como não parecia bem, criei uma pasta física dentro da pasta images no meu projeto e copiei todas as imagens adicionadas lá.
  5. O SVN mostrou todos os arquivos em vermelho.
  6. Eu apaguei as referências de todos os arquivos vermelhos.
  7. Com a opção "Adicionar arquivo", adicionei as imagens da pasta recém-criada.
  8. Agora, o SVN falha ao mostrar o status dos arquivos como "A", e não há como eu fazer o check-in.
  9. Tentei várias etapas, como lixeira, adicionando novamente de uma pasta diferente, etc., mas não houve sorte.

Corrigi isso indo diretamente para o repositório, crie um novo diretório em imagens para que a pasta física agora esteja no servidor SVN

Fiz uma atualização da fonte e obtive o diretório recém-criado dentro da minha cópia de trabalho (embora não tenha sido adicionado ao projeto).

Copiei as imagens para esse diretório e as adicionei ao projeto usando a opção "Adicionar arquivo", que me trouxe de volta o status "A" e pude verificar os arquivos.

Só queria compartilhar isso ..... porque demorou muito tempo comigo.

-anoop

anoop4real
fonte
Nesse caso, acesse o Terminal e a raiz do seu projeto. Crie a pasta com "svn mkdir name_of_the_folder". Arraste e solte arquivos com o Finder do nome da pasta para o seu projeto (ou crie uma pasta para adicionar todos os arquivos). O problema é quando você cria uma pasta sem a pasta "svn mkdir" não é adicionada ao SVN.
8283 Alex
0

Não exclua o arquivo diretamente na sua pasta .xcode. Exclua arquivos do navegador do projeto xcode. (Clique com o botão direito no arquivo e escolha mover para a lixeira).

Agora, para limpar esse problema, adicione os mesmos arquivos no mesmo local. E exclua do navegador do projeto.

Gowtham R
fonte
0

Eu não precisava fazer nada. Eu comprometi meu código e o levantei. Desativou o XCODE. Abaixei novamente e tudo funcionou.

VBaarathi
fonte
0

Visão geral:

No meu caso, houve um projeto xcode chamado Sampleno seguinte caminho da pasta /folder1/folder2.

Havia um .gitarquivo dentro do /folder1/folder2/Sample/qual é esperado.

Causa raiz:

Havia outro .gitarquivo no diretório pai ( /folder1) que estava causando o problema. As pastas podem ter sido excluídas deixando para trás o .gitarquivo

Solução

rm -rf /folder1/.git

Pista

Se mover o seu projeto para um local completamente novo resolver o problema em que não havia nenhum .gitarquivo nos diretórios pai na hierarquia, é uma pista que a solução acima poderia funcionar.

user1046037
fonte