Brakujące ostrzeżenia o plikach wyświetlane po aktualizacji do Xcode 4

166

Niedawno zaktualizowałem do Xcode 4 (co jest świetnym ulepszeniem), ale teraz otrzymuję ostrzeżenia, których wcześniej nie dostałem. Przejrzałem fora i inne posty SO, ale nie znalazłem, jak to naprawić.

Ostrzeżenia, które otrzymuję, to ostrzeżenia na poziomie projektu dotyczące brakującego pliku. Pliki, które są wyświetlane, zostały usunięte z widoku nawigatora projektu (również wybrano opcję usunięcia z systemu plików). Jednak nadal wydaje się, że jest on w jakiś sposób połączony z projektem, mimo że plik nie pojawia się już w nawigatorze projektów.

Rozejrzałem się i nie znalazłem, jak mogę powiedzieć Xcode, że te pliki zniknęły, przestań dawać mi ostrzeżenia. Oto zrzut ekranu, który otrzymałem w Xcode4, ale nigdy nie dostałem w Xcode 3.

Ostrzeżenie o braku pliku Xcode 4

Scott
źródło
Na twoim miejscu zawsze importowałbym twoje pliki do twojego projektu, zamiast po prostu przechowywać łącze do nich na dysku. To naprawdę chroni Cię przed bólami głowy, jeśli później przeniesiesz pliki.
sudo rm -rf

Odpowiedzi:

297

Te rozwiązania są zbyt trudne. Problem polega na tym, że usunąłeś projekt z systemu plików, ale SVN nadal myśli, że tam są. Odłączenie projektu od SVN zadziała, to samo przy usuwaniu folderów .svn, ALE to zniszczy twoje repozytorium!

O wiele łatwiej jest otworzyć konsolę, przejść do swojego folderu („cd / pathToYourFolder”) i wpisać następujące polecenie:

svn delete nameOfMissingFile

Jeśli nazwa brakującego pliku zawiera znak @ (np. Grafika charakterystyczna dla siatkówki), upewnij się, że nazwa pliku kończy się symbolem @:

svn delete [email protected]@

W przypadku repozytoriów GIT:

git rm nameOfMissingFile

Sulthan
źródło
20
Miałem ten sam problem i rozwiązałem go za pośrednictwem terminala, używając:svn rm --force nameOfMissingFile
ReachWest
1
To lepsza odpowiedź niż ta oznaczona jako poprawna. Usuwanie folderów SVN z projektu pod kontrolą SVN może być całym światem bólu. Najlepiej użyć SVN do rozwiązania problemu. Poszedłem za tą odpowiedzią, aby rozwiązać swój własny problem, jednak miałem luksus Cornerstone. Ale poza tym fajnie. Dzięki :)
jowie
1
To chyba nie działa dla mnie. Dodałbym plik z powrotem, a następnie usunąłbym go, ale to samo ostrzeżenie nadal pojawia się w kompilacji. Próbowałem nawet dodać pliki z powrotem do projektu, a następnie je usunąć. Wciąż ten sam problem.
Yenyi
10
U mnie to zadziałało, ale najpierw musiałem utworzyć tam fałszywy plik, zanim mogłem go usunąć, używając svn. Więc trzeba zrobić dotykowy nameOfMissingFile a następnie SVN usunąć nameOfMissingFile force
Maciej Swic
9
Dodatkowo musiałem wyjść i zabić xcode, aby problem zniknął.
Twilite
55

W XCode 4.2. + (Prawdopodobnie w 4+) możesz uniknąć pracy ręcznej i wiersza poleceń:

  1. Wybierz nawigator projektu projektu (Command - 1)
  2. Wybierz menu Plik - Kontrola źródła - Zatwierdź
  3. W lewym okienku, nad nim masz trzy ikony, wybierz środkową - Widok pliku
  4. Zobaczysz listę wszystkich brakujących plików
  5. Wybierz je wszystkie i kliknij prawym przyciskiem myszy - Odrzuć zmiany. Spowoduje to przywrócenie wszystkich usuniętych plików z serwera SVN i umieszczenie ich w lokalnym folderze SVN
  6. Przeciągnij i upuść te pliki do projektu XCode (wybierz Data sortowania zmodyfikowana w Finderze, aby łatwo je znaleźć)
  7. Usuń te pliki poprawnie za pomocą XCode (wybierz pliki i kliknij prawym przyciskiem myszy Usuń)
  8. Zatwierdź projekt

I to wszystko :)

Wszystkie te paskudne ostrzeżenia zniknęły!

Dodatkowo dla Xcode 6+: Po wybraniu środkowej ikony widoku pliku - możesz kliknąć pole wyboru po lewej stronie, co spowoduje oznaczenie ich jako usuniętych dla SVN przy następnym zatwierdzeniu!

Alex
źródło
1
Potrzebne tylko do kroku 5. Tak naprawdę nie miałem plików w SVN.
Darren Reely,
Zrefaktorowałem projekt, który wpłynął na inny projekt cos współdzielonego kodu, a XCode narzekał na brakujące pliki związane z SVN. Zajęło mi trochę czasu, zanim zrozumiałem, że był to problem z SVN, po ręcznym przeszukaniu kodu xml źródła projektu i nie znalezieniu niczego.
Danfordham
50

W Xcode5 i Xcode6 poniższe kroki zadziałały

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

następnie

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

Shamsudheen TK
źródło
W Xcode 8.3.2 działało to przez około dziesięć minut, a potem wszystkie ostrzeżenia wróciły :(
Bob
27

Ma to coś wspólnego z ukrytymi folderami .svn w Twoim projekcie.

Rozwiązałem ten problem, odłączając projekt od svn.

za. Otwórz terminal i wpisz następujące polecenia:

defaults write com.apple.finder AppleShowAllFiles TRUE


killall Finder

Umożliwi to przeglądanie folderów .svn wewnątrz projektu

b. Usuń każdy folder .svn w folderach / podfolderach projektu

do. Ponownie włącz ukryte pliki:

defaults write com.apple.finder AppleShowAllFiles FALSE

killall Finder

re. Teraz twój projekt jest odłączony od svn i nie masz już problemów z kompilacją.

mi. Ponownie dodaj swój projekt do svn lub cokolwiek.

Sam jestem początkującym i to był mój sposób radzenia sobie z tym problemem, więc nie jestem pewien, czy jest to najlepszy sposób. W każdym razie problem został rozwiązany.

Robert Neagu
źródło
3
Nie jest to dobry pomysł, aby bawić się ukrytymi folderami i plikami SVN, możesz skończyć w splątanym bałaganie SVN. Najlepiej użyć polecenia svn delete, aby uporządkować brakujące pliki.
jowie
To jest ścieżka, którą faktycznie wybrałem. Tak, usuwa wszystkie zapisane informacje SVN, ale w rzeczywistości było to coś, co ktoś inny umieścił w konkretnym projekcie, czego nie chciałem zachować. Chciałem zacząć od nowa i nie obchodziło mnie utrzymywanie poszczególnych wersji.
Scott,
Po prostu „zabijam Findera”, ponownie go uruchamiając. Teraz problem zniknął. Dzięki
JHHoang
9

To zadziałało dla mnie:

File-> Source Control->Hide Working Copy Status

następnie

File-> Source Control->Show Working Copy Status

Tyson
źródło
6

Rozwiązałem to w następujący sposób:

  1. Sprawdź ścieżkę do brakującego pliku.
  2. Utwórz brakujące pliki w odpowiednich lokalizacjach w katalogu projektu
  3. Dodaj je do swojego projektu za pomocą opcji „Dodaj pliki do„ projektu ”” i twórz tylko odniesienia (nie kopiuj plików)
  4. W tym momencie ostrzeżenia powinny zniknąć.
  5. Z poziomu Xcode usuń pliki, upewniając się, że kliknąłeś „Usuń” zamiast domyślnego „Usuń tylko odniesienie”
  6. Jesteś skończony.
askoryczny
źródło
4

Miałem ten błąd i nie znalazłem innego sposobu na jego rozwiązanie niż utworzenie pustego pliku na tej pozycji, a następnie usunięcie go. Stało się tak z plikami, które usunąłem z projektu, a czyszczenie, budowanie, ręczne usuwanie katalogu danych pochodnych również nie działało. Uważam, że jest to błąd i może być dość bolesny, jeśli wystąpi z więcej niż kilkoma plikami.

Jano
źródło
Smutne, miałem nadzieję, że istnieje łatwiejszy sposób obejścia tego problemu. Mam około 20 plików, więc tworzenie i usuwanie będzie dość uciążliwe.
Scott
4

Miałem też ten problem, a jak opisał to użytkownik151215 jest to spowodowane folderami .svn.

Miałem stary folder .svn, nie w samym projekcie, ale w folderze nadrzędnym projektów.

w szkodliwym folderze .svn będzie znajdować się plik wpisów zawierający brakujące pliki. Możesz więc użyć Teminal i wyszukać brakujący ciąg nazwy pliku, np. Grep -lir BagController.m yourRootDevDir / *

prostsze niż włączanie ukrytych plików w Finderze, po prostu użyj terminala. cd do odpowiedniego katalogu i mv .svn ~ / .Trash

Mam nadzieję że to pomoże!

Nick H247
źródło
4

Wejdź do odpowiedniego katalogu i uruchom:

svn revert fileName
Shaun McCarthy
źródło
3

W ten sposób poradziłem sobie z problemem:

Uruchom terminal i przejdź do katalogu projektu. (np .: cd /Users/Mauro/Src/Pippero-1.2/)

Następnie wprowadź następujące polecenie:

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

polecenie będzie rekurencyjnie wyszukiwać pliki (i foldery) o nazwie .svn i usuwać je

Mauro Delrio
źródło
to nie zadziałało, ale przejście do każdego katalogu i usunięcie poszczególnych folderów .svn działało. tak wielkie dla ciebie, mój człowieku!
gonzobrains,
2

Używam svn i udało mi się rozwiązać ten problem przez

svn delete pathToMissingFile

który usunie lokalną kopię svn brakującego pliku, a także kopię w zdalnym repozytorium.

lub

svn revert pathToMissingFile

który ma zamiar odrzucić zmiany w brakującym pliku, co oznacza przywrócenie brakującego pliku tam, gdzie był.

Jibeex
źródło
1

Wszystkie powyższe nie pomogły w rozwiązaniu tego samego problemu, co ja. Szukając czegoś, zrozumiałem, że problem, który miałem, był związany z konfliktami SVN.

Dowiedziałem się, że wystąpiły konflikty za pomocą wiersza poleceń:

svn status

Następnie wszystkie pliki będące w konflikcie musiały zostać rozwiązane

svn resolved filename1 filename2 ...

Po rozwiązaniu konfliktów ostrzeżenia zniknęły z Xcode

gfrigon
źródło
1
  1. Zatwierdź i prześlij swoje zmiany.
  2. Uruchom ponownie Xcode.
pytający
źródło
1

To jest bardzo proste,

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

i nie zapomnij to zrobić cmd+shift+k

Kavin Kumar Arumugam
źródło
0

Naciśnij Cmd + 7 po kompilacji i wybierz ostatnią akcję kompilacji. Czy wygląda trochę jak stary dobry Xcode? :) wprowadź opis obrazu tutaj

knuku
źródło
Tak, wygląda jak stary XCode, ale nie rozwiązuje problemu z nowym XCode, który mówi, że mam brakujące pliki. Podoba mi się ten widok, ale wygląda na to, że po prostu maskuje problem z XCode.
Scott
0

W moim przypadku

  1. Po prostu otwieram SvnX.
  2. Wszystkie brakujące pliki są zaznaczone na czerwono. Wybierz i usuń je.
  3. Wtedy wszystkie ostrzeżenia Xcode zniknęły.
Apoc
źródło
0

Odpowiedź Alexa rozwiązała mój problem z brakującymi plikami.

Miałem jeszcze jeden problem (choć nie jest to związane z brakującymi plikami, czuję, że to byłby lepszy temat)

  1. Musiałem skopiować zestaw obrazów do mojego projektu.
  2. Po prostu utworzyłem grupę (chociaż wiem, że ta grupa nie mapuje do fizycznego folderu) i przeciągnąłem obrazy do grupy (wybrana opcja „Kopiuj do ..”).
  3. Status SVN pokazywał ich wszystkich w „A”.
  4. Teraz, kiedy wszedłem do rzeczywistego systemu plików, stwierdziłem, że wszystkie obrazy zostały skopiowane do folderu głównego mojego projektu. Ponieważ nie wyglądało to dobrze, utworzyłem fizyczny folder w folderze obrazów w moim projekcie i skopiowałem tam wszystkie dodane obrazy.
  5. SVN następnie pokazał wszystkie pliki na czerwono.
  6. Usunąłem odniesienia do wszystkich czerwonych plików.
  7. Za pomocą opcji „Dodaj plik” dodałem następnie obrazy z nowo utworzonego folderu.
  8. Teraz SVN nie pokazuje statusu plików jako „A” i nie mogę ich zaewidencjonować.
  9. Wypróbowałem wiele kroków, takich jak wyrzucenie ich do kosza, dodając je ponownie z innego folderu itp., Ale nie było szczęścia.

Naprawiłem to, przechodząc bezpośrednio do repozytorium, tworząc nowy katalog pod obrazami, aby fizyczny folder był teraz na serwerze SVN

Następnie zaktualizowałem źródło i otrzymałem nowo utworzony katalog w mojej kopii roboczej (chociaż nie jest dodawany do projektu).

Następnie skopiowałem obrazy do tego katalogu i dodałem je do projektu za pomocą opcji „Dodaj plik”, co przywróciło mi status „A” i mogłem sprawdzić pliki.

Chciałem się tym podzielić ..... ponieważ zajęło mi to dużo czasu.

-anoop

anoop4real
źródło
W takim przypadku przejdź do terminala i do katalogu głównego swojego projektu. Utwórz folder z „svn mkdir name_of_the_folder”. Przeciągnij i upuść pliki za pomocą Findera z nazwy_folderu_the_folder do swojego projektu (lub sam folder, aby dodać wszystkie pliki). Problem występuje, gdy tworzysz folder bez folderu „svn mkdir” nie jest dodawany do SVN.
Alex
0

Nie usuwaj pliku bezpośrednio w folderze .xcode. Usuń pliki z nawigatora projektu Xcode. (Kliknij ten plik prawym przyciskiem myszy i wybierz przenieś do kosza).

Teraz, aby usunąć ten problem, dodaj te same pliki w tej samej lokalizacji. I usuń z nawigatora projektu.

Gowtham R
źródło
0

Nie musiałem nic robić. Popełniłem swój kod i przyspieszyłem. Wyłączono XCODE. Pociągnął go ponownie i wszystko po prostu działało.

VBaarathi
źródło
0

Przegląd:

W moim przypadku był projekt xcode o nazwie Samplew następującej ścieżce folderu /folder1/folder2.

Wewnątrz znajdował się .gitplik, /folder1/folder2/Sample/którego oczekiwano.

Główna przyczyna:

W .gitkatalogu nadrzędnym ( /folder1) znajdował się inny plik, który powodował problem. Foldery mogły zostać usunięte, pozostawiając .gitplik

Rozwiązanie

rm -rf /folder1/.git

Wskazówka

Jeśli przeniesienie projektu do zupełnie nowej lokalizacji rozwiązuje problem .gitpolegający na tym, że w katalogach nadrzędnych w górę hierarchii nie było pliku, oznacza to, że powyższe rozwiązanie może działać.

user1046037
źródło