Apple ha introducido un nuevo tipo de archivo relacionado con el proyecto en Xcode 5: "xccheckout".
Este archivo se encuentra en el directorio ".xcodeproj / project.xcworkspace / xcshareddata /", y parece que está relacionado con el sistema de control de versiones del proyecto.
Un archivo de ejemplo está aquí: http://pastebin.com/5EP63iRa
Supongo que este tipo de archivo debería ignorarse en VCS, pero no estoy seguro.
Así que aquí están las preguntas:
- ¿Se debe ignorar "xccheckout"?
- ¿Cual es su propósito?
xcode
git
version-control
xcode5
Artem Abramov
fuente
fuente
Respuestas:
Usted debe comprobar en un Xcode 5
.xccheckout
archivo; en general, los archivosxcshareddata
deben estar comprometidos.Un
.xccheckout
archivo contiene metadatos sobre qué repositorios se utilizan en un espacio de trabajo. Para un solo proyecto en un único repositorio que no hace mucha diferencia. Pero si está utilizando un espacio de trabajo que tiene múltiples proyectos de diferentes repositorios, la presencia de un.xccheckout
archivo en el espacio de trabajo le permite a Xcode saber cuáles son todos los componentes que componen un espacio de trabajo y dónde obtenerlos.fuente
.xcuserdata
lo que debería incluirse..xccheckout
archivos están causando algunos problemas locos en Xcode 6 beta, y decidí eliminarlos de VCS. Parece estar relacionado con algún error de almacenamiento en caché, y creo que Xcode puede regenerarlos desde VCS automáticamente, para cada vez.El
*.xccheckout
archivo contiene metadatos de VCS y, por lo tanto, no debe registrarse en el VCS.Por otro lado: el registro en este archivo probablemente no creará dificultades de fusión u otros problemas.
Si desea ignorar este archivo (que recomiendo), debe agregar esta línea a su proyecto
.gitignore
:La solución de Abizern no funcionará para proyectos dentro de un espacio de trabajo. Porque, cuando se utiliza un espacio de trabajo, la ruta de acceso al
*.xccheckout
archivo será:<workspace-name>.xcworkspace/xcshareddata/<workspace-name>.xcchekout
. Y en realidad ignora más de lo que desearías.Editar: Este archivo existe para administrar el conocimiento de Xcode de los posiblemente muchos sistemas VCS en su proyecto, vea la respuesta de Chris Hanson . Para> 99% de los proyectos, el archivo .xccheckout es una configuración exagerada.
fuente
project.xcworkspace/
. Eso podría estar bien por ahora, pero no contaría con eso para las nuevas versiones de Xcode..gitignore
que proporciona a los desarrolladores no debe especificar*.xccheckout
Depende. El archivo contiene referencias al repositorio remoto que está utilizando. Si está utilizando un VCS centralizado como Perforce o Subversion, el repositorio remoto de todos será el mismo, por lo que puede y debe registrar el archivo.
Si está utilizando un VCS distribuido como Mercurial o git, pero lo está utilizando como si fuera un CVCS (en otras palabras, todos clonaron desde un repositorio compartido directamente a su espacio de trabajo personal en su máquina), entonces es posible que desee comprobarlo en.
Sin embargo, si está utilizando un DVCS con todos los que tienen su propio clon remoto, por ejemplo, usando GitHub en su patrón de uso estándar, NO desea registrar este archivo. Si lo hizo, sus Solicitudes de extracción solicitarán su configuración de repositorio para ser copiado en el archivo xccheckout de todos los demás, pero la configuración de su repositorio será diferente de la de los demás porque todos están utilizando repositorios remotos diferentes.
fuente
Sí, el
Project.xccheckout
archivo debe estar comprometido con su repositorio. Xcode usa este archivo para indicar a los demás que abren el espacio de trabajo la lista completa de repositorios de control de origen utilizados por el espacio de trabajo y la ubicación de la copia de trabajo relativa al espacio de trabajo, si esos repositorios son Git, SVN o ambos.Cuando abre el espacio de trabajo, Xcode usa el
Project.xccheckout
archivo para notificar al usuario que hay otros repositorios que forman parte del espacio de trabajo, y le pregunta cuál debe verificarse. Al retirar repositorios adicionales, Xcode coloca las copias de trabajo en la misma estructura de carpetas relativa al espacio de trabajo que tenían cuandoProject.xccheckout
se generó el archivo.Como dijo Chris Hanson , probablemente no importa para un repositorio único, un espacio de trabajo de un solo proyecto, pero para asuntos más complejos será realmente muy útil.
Puede encontrar más información sobre esto en el video de la sesión WWDC 2013 Comprensión del control de código fuente en Xcode ; la porción relevante comienza aproximadamente a los 15 minutos.
fuente
Esto es lo que tengo en mi .gitignore para Xcode.
Mantiene todo lo que se relaciona con el estado local de la forma en que los proyectos me buscan fuera del repositorio.
El archivo xccheckout está aquí, por lo que no se rastrea en mi sistema de manera predeterminada.
Xcode ha mejorado y separa lo que debe compartirse y lo que debe mantenerse localmente. Por ejemplo; estas líneas ignorarán los esquemas de compilación predeterminados, lo cual está bien porque puede marcar esquemas de compilación específicos como compartidos, y se colocan en un directorio que no se ignora.
Los puntos de interrupción se ignoran, pero puede marcar puntos de interrupción específicos como compartidos entre proyectos y también se colocan en un directorio que no se ignora.
fuente