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

Apple ha introducido un nuevo tipo de file relacionado con proyectos en Xcode 5: "xccheckout".

Este file se encuentra en el directory ".xcodeproj / project.xcworkspace / xcshanetworkingdata /", y parece que está relacionado con el sistema de control de versiones del proyecto.

Un file de ejemplo está aquí: http://pastebin.com/5EP63iRa

Supongo que este tipo de file 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?

Debe verificar en un file Xcode 5 .xccheckout ; en general, los files en xcshanetworkingdata deben estar comprometidos.

Un file .xccheckout contiene metadatos sobre qué repositorys se utilizan en un espacio de trabajo. Para un solo proyecto en un único repository que no hace mucha diferencia. Pero si está utilizando un espacio de trabajo que tiene múltiples proyectos de repositorys diferentes, la presencia de un file .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 getlos.

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

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

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

 *.xccheckout 

La solución de Abizern no funcionará para proyectos dentro de un espacio de trabajo. Porque, cuando utiliza un espacio de trabajo, la ruta al file *.xccheckout será: <workspace-name>.xcworkspace/xcshanetworkingdata/<workspace-name>.xcchekout . Y en realidad ignora más de lo que desearías.

Editar: este file 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 file .xccheckout es overkill de configuration.

Depende. El file contiene references al repository remoto que está utilizando. Si está utilizando un VCS centralizado como Perforce o Subversion, el repository remoto de todos será el mismo, por lo que puede y debe verificar el file.

Si está utilizando un VCS distribuido como Mercurial o git, pero lo usa como si fuera un CVCS (en otras palabras, todos clonaron desde un repository 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 file. Si lo hizo, entonces sus Solicitudes de extracción le pedirán la configuration de su repository para copyrse en el file xccheckout de todos los demás, pero la configuration de su repository será diferente de la de los demás porque todos están usando repositorys remotos diferentes.

Sí, el file Project.xccheckout debe estar comprometido con su repository. Xcode usa este file para indicar a otros que abren el espacio de trabajo toda la list de repositorys de control de origen utilizados por el espacio de trabajo y la location de la copy de trabajo relativa al espacio de trabajo, ya sea que esos repositorys sean Git, SVN o ambos.

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

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

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

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 repository.

El file xccheckout está aquí, por lo que no se rastrea en mi sistema de forma pnetworkingeterminada.

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 compilation pnetworkingeterminados, lo cual está bien porque puede marcar esquemas de compilation específicos como compartidos, y se colocan en un directory 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 directory que no se ignora.