Firma Apple wprowadziła nowy typ pliku związany z projektem w Xcode 5: „xccheckout”.
Ten plik znajduje się w katalogu „.xcodeproj / project.xcworkspace / xcshareddata /” i wygląda na to, że jest powiązany z systemem kontroli wersji projektu.
Przykładowy plik jest tutaj: http://pastebin.com/5EP63iRa
Przypuszczam, że ten typ pliku powinien być ignorowany w VCS, ale nie jestem pewien.
Oto pytania:
- Czy „xccheckout” należy zignorować?
- Jaki jest jej cel?
xcode
git
version-control
xcode5
Artem Abramov
źródło
źródło
Odpowiedzi:
Ty powinien sprawdzić w Xcode 5
.xccheckout
pliku; ogólnie rzecz biorąc, pliki wxcshareddata
powinny zostać zatwierdzone..xccheckout
Plik zawiera metadane o co repozytoria są używane w obszarze roboczym. Dla pojedynczego projektu w jednym repozytorium, to nie robi dużej różnicy. Ale jeśli używasz obszaru roboczego, który ma wiele projektów z różnych repozytoriów, obecność.xccheckout
pliku w obszarze roboczym pozwala Xcode wiedzieć, jakie są wszystkie składniki tworzące obszar roboczy i gdzie je zdobyć.źródło
.xcuserdata
więc powinien zostać uwzględniony..xccheckout
pliki powodują pewne szalone problemy w Xcode 6 beta i postanowiłem usunąć je z VCS. Wydaje się, że jest to związane z jakimś błędem buforowania i uważam, że Xcode może automatycznie regenerować je z VCS, za każdym razem.*.xccheckout
Plik zawiera metadane VCS, a zatem nie powinny być sprawdzane w VCS.Z drugiej strony: wpisanie tego pliku prawdopodobnie nie spowoduje trudności w scalaniu ani innych problemów.
Jeśli chcesz zignorować ten plik (co polecam), powinieneś dodać ten wiersz do swojego projektu
.gitignore
:Abizern „s rozwiązanie nie będzie działać na projekty wewnątrz obszaru roboczego. Ponieważ podczas korzystania z obszaru roboczego, ścieżka do
*.xccheckout
pliku będzie:<workspace-name>.xcworkspace/xcshareddata/<workspace-name>.xcchekout
. I faktycznie ignoruje więcej, niż byś chciał.Edycja: ten plik istnieje do zarządzania wiedzą Xcode o prawdopodobnie wielu systemach VCS w Twoim projekcie, zobacz odpowiedź Chrisa Hansona . W przypadku> 99% projektów plik .xccheckout to przesadna konfiguracja.
źródło
project.xcworkspace/
. Na razie może to być w porządku, ale nie liczyłbym na to w nowych wersjach Xcode..gitignore
który zapewnia programistom, nie powinien określać*.xccheckout
To zależy. Plik zawiera odniesienia do zdalnego repozytorium, którego używasz. Jeśli korzystasz ze scentralizowanego VCS, takiego jak Perforce lub Subversion, zdalne repozytorium wszystkich osób będzie takie samo, więc możesz i powinieneś zaewidencjonować plik.
Jeśli korzystasz z rozproszonego VCS, takiego jak Mercurial lub git, ale używasz go tak, jakby był to CVCS (innymi słowy, wszyscy sklonowali się z udostępnionego repozytorium bezpośrednio do ich osobistego obszaru roboczego na swoim komputerze), nadal możesz chcieć to sprawdzić w.
Jeśli jednak używasz DVCS, a każdy ma swój własny zdalny klon, na przykład używając GitHub w jego standardowym wzorcu użytkowania, NIE CHCESZ sprawdzać tego pliku. Jeśli to zrobiłeś, wtedy żądania ściągnięcia będą pytać o ustawienia repozytorium aby zostać skopiowany do pliku xccheckout innych osób, ale ustawienia twojego repozytorium będą inne niż wszystkich innych, ponieważ wszyscy używacie różnych zdalnych repozytoriów.
źródło
Tak,
Project.xccheckout
plik powinien zostać zapisany w repozytorium. Xcode używa tego pliku, aby poinformować innych, którzy otwierają obszar roboczy, o całej liście repozytoriów kontroli źródła używanych przez obszar roboczy oraz o lokalizacji kopii roboczej względem obszaru roboczego, czy te repozytoria to Git, SVN, czy oba.Po otwarciu obszaru roboczego Xcode używa
Project.xccheckout
pliku, aby powiadomić użytkownika, że istnieją inne repozytoria tworzące część obszaru roboczego i pyta, które powinny zostać wyewidencjonowane. Podczas wypisywania dodatkowych repozytoriów Xcode umieszcza kopie robocze w tej samej strukturze folderów względem obszaru roboczego, w jakiej były one w momencieProject.xccheckout
generowania pliku.Jak powiedział Chris Hanson , prawdopodobnie nie ma to znaczenia w przypadku obszaru roboczego z jednym repozytorium i jednym projektem, ale w przypadku bardziej złożonych spraw będzie to naprawdę bardzo przydatne.
Możesz dowiedzieć się więcej na ten temat z sesji wideo WWDC 2013 Understanding Source Control in Xcode ; odpowiednia porcja zaczyna się po około 15 minutach.
źródło
Oto, co mam w moim .gitignore dla Xcode.
Zachowuje z repozytorium wszystko, co odnosi się do lokalnego stanu sposobu, w jaki projekty szukają mnie.
Plik xccheckout znajduje się tutaj, więc domyślnie nie jest śledzony w moim systemie.
Xcode stał się lepszy i oddzielał to, co należy udostępniać, a co należy przechowywać lokalnie. Na przykład; te wiersze zignorują domyślne schematy budowania, co jest w porządku, ponieważ można oznaczyć określone schematy kompilacji jako udostępnione i są one umieszczane w katalogu, który nie jest ignorowany.
Punkty przerwania są ignorowane, ale można oznaczyć określone punkty przerwania jako współużytkowane w projektach, a także są one umieszczane w katalogu, który nie jest ignorowany.
źródło