Apple telah memperkenalkan jenis file terkait proyek baru di Xcode 5: "xccheckout".
File ini terletak di direktori ".xcodeproj / project.xcworkspace / xcshareddata /", dan sepertinya itu terkait dengan sistem kontrol versi proyek.
Contoh file ada di sini: http://pastebin.com/5EP63iRa
Saya kira jenis file ini harus diabaikan di bawah VCS, tapi saya tidak yakin.
Jadi inilah pertanyaannya:
- Haruskah "xccheckout" diabaikan?
- Apa tujuannya?
xcode
git
version-control
xcode5
Artem Abramov
sumber
sumber
Jawaban:
Anda harus memeriksa dalam
.xccheckout
file Xcode 5 ; secara umum, file dalamxcshareddata
harus dikomit.Sebuah
.xccheckout
file berisi metadata tentang apa repositori yang digunakan dalam ruang kerja. Untuk satu proyek dalam satu repositori yang tidak membuat banyak perbedaan. Tetapi jika Anda menggunakan ruang kerja yang memiliki beberapa proyek dari repositori yang berbeda, keberadaan.xccheckout
file di ruang kerja memungkinkan Xcode mengetahui semua komponen yang membentuk ruang kerja dan di mana mendapatkannya.sumber
.xcuserdata
sehingga harus dimasukkan..xccheckout
file-file tersebut menyebabkan beberapa masalah gila pada Xcode 6 beta, dan saya memutuskan untuk menghapusnya dari VCS. Tampaknya terkait dengan beberapa bug caching, dan saya percaya Xcode dapat membuat ulang mereka dari VCS secara otomatis, untuk setiap waktu.The
*.xccheckout
file berisi VCS metadata, dan seharusnya tidak diperiksa ke VCS.Di sisi lain: memeriksa file ini mungkin tidak akan membuat kesulitan menggabungkan atau masalah lainnya.
Jika Anda ingin mengabaikan file ini (yang saya sarankan), Anda harus menambahkan baris ini ke proyek Anda
.gitignore
:Abizern 's solusi tidak akan bekerja untuk proyek-proyek di dalam ruang kerja. Karena, ketika Anda menggunakan ruang kerja, path ke
*.xccheckout
file akan:<workspace-name>.xcworkspace/xcshareddata/<workspace-name>.xcchekout
. Dan sebenarnya mengabaikan lebih dari yang Anda inginkan.Sunting: File ini ada untuk mengelola pengetahuan Xcode tentang kemungkinan banyak sistem VCS di proyek Anda, lihat jawaban Chris Hanson . Untuk> 99% proyek, file .xccheckout adalah konfigurasi berlebihan.
sumber
project.xcworkspace/
. Itu mungkin oke untuk saat ini, tapi saya tidak akan mengandalkan itu untuk versi Xcode baru..gitignore
yang diberikannya kepada pengembang tidak boleh ditentukan*.xccheckout
Tergantung. File tersebut berisi referensi ke repositori jarak jauh yang Anda gunakan. Jika Anda menggunakan VCS terpusat seperti Perforce atau Subversion, repositori jarak jauh semua orang akan sama sehingga Anda dapat dan harus memeriksa file tersebut.
Jika Anda menggunakan VCS terdistribusi seperti Mercurial atau git, tetapi menggunakannya seolah-olah itu adalah CVCS (dengan kata lain, semua orang dikloning dari repositori bersama langsung ke ruang kerja pribadi mereka di mesin mereka) maka Anda mungkin masih ingin memeriksanya di.
Namun, jika Anda menggunakan DVCS dengan semua orang memiliki klon jarak jauh mereka sendiri, misalnya menggunakan GitHub dalam pola penggunaan standarnya, Anda TIDAK ingin memeriksa file ini. Jika Anda melakukannya, Permintaan Tarik Anda akan meminta pengaturan repositori Anda untuk disalin ke file xcchout orang lain, tetapi pengaturan repositori Anda akan berbeda dari yang lain karena Anda semua menggunakan repositori jarak jauh yang berbeda.
sumber
Ya,
Project.xccheckout
file tersebut harus dikomit ke repositori Anda. Xcode menggunakan file ini untuk memberi tahu orang lain yang membuka ruang kerja seluruh daftar repositori kontrol sumber yang digunakan oleh ruang kerja dan lokasi copy pekerjaan relatif terhadap ruang kerja, apakah repositori tersebut adalah Git, SVN, atau keduanya.Saat Anda membuka ruang kerja, Xcode menggunakan
Project.xccheckout
file untuk memberi tahu pengguna bahwa ada repositori lain yang membentuk bagian dari ruang kerja, dan menanyakan yang mana yang harus diperiksa. Saat memeriksa repositori tambahan, Xcode menempatkan copy pekerjaan dalam struktur folder relatif-kerja yang sama seperti ketikaProject.xccheckout
file dihasilkan.Seperti yang dikatakan Chris Hanson , mungkin tidak masalah untuk repositori tunggal, satu-proyek ruang kerja, tetapi untuk urusan yang lebih kompleks itu akan sangat berguna.
Anda dapat mengetahui lebih lanjut tentang ini di video sesi WWDC 2013 Memahami Kontrol Sumber di Xcode ; porsi yang relevan dimulai sekitar 15 menit.
sumber
Ini yang saya miliki di .gitignore saya untuk Xcode.
Itu membuat segala sesuatu yang berhubungan dengan keadaan lokal dari cara proyek mencari saya keluar dari repositori.
File xccheckout ada di bawah sini sehingga tidak dilacak di sistem saya secara default.
Xcode telah menjadi lebih baik dan memisahkan apa yang perlu dibagikan dan apa yang perlu disimpan secara lokal. Sebagai contoh; baris-baris ini akan mengabaikan skema build default, yang baik-baik saja karena Anda dapat menandai skema build tertentu sebagai dibagikan, dan mereka diletakkan di direktori yang tidak diabaikan.
Breakpoint diabaikan, tetapi Anda dapat menandai breakpoint tertentu sebagai dibagikan di seluruh proyek dan mereka juga ditempatkan di direktori yang tidak diabaikan.
sumber