xcode git version-control xcode5

¿Deberían ignorarse los archivos*.xccheckout en Xcode5 en VCS?



git version-control (5)

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 verificar el archivo.

Si está utilizando un VCS distribuido como Mercurial o git, pero utilizándolo 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 aún podría querer verificarlo 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 verificar este archivo. Si lo hizo, entonces sus Solicitudes de extracción le pedirán la configuración de su repositorio para copiarse 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 usando repositorios remotos diferentes.

Apple ha introducido un nuevo tipo de archivo relacionado con proyectos 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 debe ignorarse en VCS, pero no estoy seguro.

Así que aquí están las preguntas:

  1. ¿Se debe ignorar "xccheckout"?
  2. ¿Cual es su propósito?

El archivo *.xccheckout contiene metadatos VCS y, por lo tanto, no debe registrarse en el VCS.

Por otro lado, el registro en este archivo probablemente no creará dificultades de combinación u otros problemas.

Si desea ignorar este archivo (que recomiendo) debe agregar esta línea al .gitignore su proyecto:

*.xccheckout

La solution Abizern no funcionará para proyectos dentro de un espacio de trabajo. Porque, cuando utiliza un espacio de trabajo, la ruta al archivo *.xccheckout 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 posiblemente muchos sistemas VCS en su proyecto, vea la respuesta de Chris Hanson . Para> 99% de los proyectos, el archivo .xccheckout es overkill de configuración.


Esto es lo que tengo en mi .gitignore para Xcode.

#Xcode *.xcuserstate project.xcworkspace/ xcuserdata/

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 forma predeterminada.

Xcode ha mejorado y ha separado 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.


Sí, el archivo Project.xccheckout debe estar comprometido con su repositorio. Xcode usa este archivo para indicar a otros que abren el espacio de trabajo toda la lista 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, ya sea que esos repositorios sean Git, SVN o ambos.

Cuando abre el espacio de trabajo, Xcode usa el archivo Project.xccheckout para notificar al usuario que hay otros repositorios que forman parte del espacio de trabajo, y pregunta cuál debe ser revisado. Al consultar repositorios adicionales, Xcode coloca las copias de trabajo en la misma estructura de carpetas relativa al espacio de trabajo que cuando se generó el archivo Project.xccheckout .

Como dijo , probablemente no importe para un espacio de trabajo de un solo repositorio y un proyecto, pero para asuntos más complejos será muy útil.

Puede obtener más información sobre esto en el video de la sesión de WWDC 2013 Comprensión del control de código fuente en Xcode ; la parte relevante comienza aproximadamente en 15 minutos.


Debe verificar en un archivo Xcode 5 .xccheckout ; en general, los archivos en xcshareddata deben estar comprometidos.

Un archivo .xccheckout 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 repositorios diferentes, la presencia de un archivo .xccheckout en el espacio de trabajo le permite a Xcode saber qué son todos los componentes que componen un espacio de trabajo y dónde obtenerlos.