2011-11-25 27 views
6

Używam Xcode 4.2.1. i mam ten problem z uruchomieniem istniejącą aplikację na symulatorze iOS:Xcode: Błąd -> Kompilacja nie powiodła się -> Uaktualnij klienta Subversion, aby użyć tej kopii roboczej.

svn: The path '.' appears to be part of a Subversion 1.7 or greater 
working copy. Please upgrade your Subversion client to use this 
working copy. 
/Users/me/Library/Developer/Xcode/DerivedData/myproject-dxfzldckuqdmlrghowwkdrbgoigy/Build /Intermediates/myproject.build/Debug-iphonesimulator/MyProject.build/Script-9567AEA113C59633000AA291.sh: No Subversion revision found at /Users/me/Library/Developer/Xcode/DerivedData/myproject-dxfzldckuqdmlrghowwkdrbgoigy/Build/Intermediates/myproject.build/Debug-iphonesimulator/MyProject.build/Script-9567AEA113C59633000AA291.sh line 32. 
Building revision 
Command /bin/sh failed with exit code 1 

Mam serwer Subversion 1.7.1 zainstalowany i również po stronie klienta uaktualnieniu do 1.7.1. Zrobiłem svn upgrade, a następnie pojawia się ten błąd w Xcode.

Jeśli powtórzę numer svn upgrade na terminalu, pojawi się komunikat Can't upgrade '...' as it is not a pre-1.7 working copy directory.

Co jest nie tak? Jak mogę rozwiązać problem?

Pozdrowienia Tim

Odpowiedz

7

Xcode nie obsługuje jeszcze SVN 1.7. Obsługiwany jest tylko 1.6. Aby rozwiązać problem, musisz przełączyć się na używanie kopii roboczej zgodnej z SVN 1.6.

Od SVN 1.7 klient nie jest w stanie pracować z 1,6 kopii roboczych w ogóle, trzeba usunąć SVN 1.7.x od klienta i powrócić do 1,6. (A może po prostu dostosuj swoją PATH, aby narzędzia SVN 1.6 były pierwsze.) Po przywróceniu wersji 1.6 usuń lub odłóż na bok istniejącą kopię roboczą i sprawdź nową kopię za pomocą SVN 1.6. Teraz Xcode powinien być w stanie pracować z twoją kopię roboczą.

Należy pamiętać, że można dowolnie korzystać z klienta SVN 1.6 z serwerem SVN 1.7. Niektóre nowsze funkcje nie będą dostępne, ale będą działać. Nie ma potrzeby obniżania wersji serwera lub repozytoriów po stronie serwera.

Miej oko na uwagi do wydania Xcode w aktualizacjach, ponieważ jestem pewien, że Apple zauważy, że Xcode może używać SVN 1.7. Po udostępnieniu wersji Xcode zgodnej z 1.7, powinno być bezpiecznie zaktualizować klienta do wersji 1.7 i ponownie wykonać kopię roboczą.

8

Jest post, który wydaje się sugerować, że można oszukać XCode w użyciu svn 1.7 klienta zmieniając ścieżkę i utworzenie kilku delikatnych ogniw w strategicznych miejscach. Niestety, the post jest w języku chińskim. Na szczęście, Google translate i obecność poleceń UNIX umożliwiają odszyfrowanie tego, co mówi post. Wypróbuję to w ciągu najbliższych kilku dni i zaktualizuję odpowiedź, jeśli z tego ćwiczenia wyjdzie coś pożytecznego.

EDYCJA: Próbowałem kroków z postu i działało. Oto co zrobiłem:

  • pobraniu i zainstalowaniu klienta svn 1.7.2 na /opt/subversion
  • Dodany/opt/Subversion/bin do mojego PATH w .bash_profile
  • Utworzono katalogiem kopii zapasowej /Developer/usr/bin/orig.svn
  • Przeniesiony /Developer/usr/bin/svn* do /Developer/usr/bin/orig.svn
  • Ran ln -s /opt/subversion/bin/svn* /Developer/usr/bin/

Po tym ponownie uruchomiłem XCode, udałem się do Organizatora i udało mi się załączyć roboczą kopię kasy stworzonej z klientem svn 1.7.2. Organizator pokazał zieloną kropkę obok repozytorium, wyświetlił listę poprawek itd., Więc w tym momencie uważam, że sztuczka zadziałała.

+1

Jest to dobre, jeśli jesteś jednym programistą, ale prawdopodobnie nie jest tak dobry, jeśli pracujesz w zespole. Ponadto musisz skonfigurować dodatkowe łącza, jeśli używasz innych narzędzi svn, takich jak 'svnversion'. – ThomasW

+0

@ThomasW Myślę, że kroki są łatwe do naśladowania i zautomatyzowania za pomocą skryptu, więc powinno to działać również dla małego zespołu. Ustawienie dodatkowych łączy nie jest konieczne, ponieważ możesz nadal używać klienta SVN z wiersza poleceń, korzystając z ustawień ścieżki; są tam linki do oszukiwania Xcode do korzystania z innej wersji klienta SVN. – dasblinkenlight

+1

masz rację, że można go zautomatyzować za pomocą skryptu, ale musisz się upewnić, że skrypt jest uruchamiany za każdym razem, gdy aktualizujesz Xcode. Może to być problem z innymi narzędziami svn, jeśli te narzędzia są wywoływane przez skrypty w projekcie Xcode. Przypuszczam, że stanie się to nieistotne, jeśli Apple kiedykolwiek zaktualizuje standardową instalację svn, ale nadal nie ma go w Xcode 4.3. – ThomasW

0

Można pobrać i zainstalować pakiet binarny z http://www.wandisco.com/subversion/download#osx

Pakiet instaluje się /opt/subversion natomiast wersja Xcode z SVN jest zainstalowany w /usr/bin. Jeśli zmienna /opt/subversion/bin zostanie dodana do zmiennej ścieżki, zostanie wybrana zamiast wersji xcode.

Jeśli nie chcesz zepsuć swojej ścieżki, możesz po prostu utworzyć alias jednej wersji lub drugiej. man alias w celu uzyskania szczegółowych informacji.

Powiązane problemy