una supply suministro scm management logistica hacer funciona empresa como caracteristicas cadena administración cocoa xcode svn macos version-control

cocoa - supply - ¿Qué sistema SCM para Xcode?



scm caracteristicas (10)

Advertencia: si simplemente le dice a XCode que agregue un proyecto a un repositorio dándole el directorio de nivel superior, agregará el directorio de compilación al repositorio, lo que por supuesto es algo terrible de hacer.

Para evitar esto, debe mover el directorio de compilación a otra ubicación para que XCode no intente importarlo o agregar manualmente las carpetas discretas de un proyecto, una por una.

Estoy desarrollando una aplicación para Mac como un esfuerzo de equipo pequeño (yo + otra persona). Estamos ubicados en diferentes ciudades, y hemos empezado a ver la necesidad de una gestión de control de fuente sólida.

Ninguno de nosotros tiene experiencia con esto, y los dos somos relativamente nuevos en Cocoa / Obj-C / Xcode (pero tenemos conocimiento de C).

¿Alguien tiene alguna recomendación sobre qué sistema SCM elegir? Entiendo que mucha gente usa Subversion, que también es compatible con Xcode 3.1. ¿Alguien tiene experiencia con el uso de Subversion a través de Xcode? ¿O es una mejor opción elegir una alternativa GUI independiente, como las versiones?

Agradecido por cualquier aporte sobre esto.

Gregor Tomasevic, Suecia

Actualización / experiencias personales: desde esta publicación, hemos probado Versions y Cornerstone (ambos son clientes SVN GUI), así como compatibilidad integrada con Xcodes para SVN. No estábamos particularmente satisfechos con las Versiones, que parecían tener algunos problemas con la asignación de archivos / archivos de compilación no versionados. El soporte SVN incorporado en Xcode funciona bastante bien, aunque probablemente tenga limitaciones con las que aún no nos hemos encontrado. Cornerstone es simple de usar y potente, y no parece sufrir los problemas que encontramos con las versiones.

Hasta ahora, hemos intentado confirmar, actualizar el repositorio, revisar las últimas / versiones anteriores de nuestros archivos y hemos trabajado un poco con la comparación de archivos. Podría ser un juego de pelota completamente diferente una vez que comiences a trabajar extensivamente con la ramificación, un área que nos han dicho que estos dos clientes de GUI pueden tener algunas debilidades.

Por lo que vale (y con solo días de evaluación) Cornerstone parece ser una alternativa algo mejor, aunque para SCM más simple, Xcode también funciona bien.

Gracias por todos los comentarios.


El soporte de Subversion de Xcode es bastante bueno. El 90% de las actividades de SVN que realizo son fácilmente realizables desde Xcode. Por las otras cosas, acabo de abrir Terminal.

Hay algunas cosas en su implementación de cliente SVN que son molestas:

  • El código que comprueba para ver qué archivos locales se han modificado parece ejecutarse en un temporizador de fondo, y es bastante latente. En ocasiones, Xcode tarda 5 minutos en mostrar un archivo modificado. Lo mismo es aún más exagerado w / r / t modificaciones a distancia.
  • A veces, cuando renombra o elimina un archivo que no está bajo el control de código fuente, aparecerá un diálogo que le preguntará "¿Desea [cambiar el nombre / eliminar] también este archivo en SVN?" Y las opciones son "Sí" o "Cancelar". Eliges Sí por desesperación solo para recibir un merecido error SVN.

En general, lo recomendaría.


Mercurial (como git) se "distribuye" y quizás se considera más moderno y prometedor que svn (pero menos establecido). Si desea autoinscribir usando mercurial, puede agregar la línea:

hg commit -m "Xcode auto commit"

como parte de una etapa "Ejecutar secuencia de comandos" de la compilación de XCode, como se encuentra en: Proyecto> Nueva fase de compilación> Nuevo script de ejecución FASE Compilación


Realmente no puedes equivocarte con el uso de Subversion.

Si, como a mí, no le gusta demasiado la integración de SVN de Xcode, siempre puede optar por utilizar las herramientas de línea de comandos, o una de las varias aplicaciones de GUI como Versiones, CornerStone o SvnX. La mayoría de estas herramientas funcionan juntas muy bien, por lo que no necesariamente estás vinculado a la herramienta con la que comienzas.

Personalmente, hago la mayor parte de mi trabajo con las versiones y uso las herramientas de línea de comandos con las mismas copias de trabajo de vez en cuando.

Si te sientes cómodo trabajando con herramientas de línea de comandos exclusivamente hasta que alguien cree una buena aplicación GUI, también es una opción bastante viable.

revelación: soy una de las personas que trabajan en las versiones, por lo que podría ser un poco parcial;)


Si está interesado en usar Mercurial en OS X, pruebe SourceTree, no es gratuito, pero tiene un precio competitivo y tiene una sensación de Mac OS muy pulida. Lo he estado usando para proyectos personales durante los últimos meses y lo encuentro intuitivo y razonablemente robusto.

Está disponible a través de Mac App Store y es compatible con Git y Mercurial. Tienen un sitio web en http://www.sourcetreeapp.com/ con más información.


Si optas por la subversión, he oído decir cosas buenas sobre Springloops . También codigo junto con algunos amigos de una manera similar y usamos Github . Git es una experiencia maravillosa. No uso ninguna GUI, ya que soy mucho más eficiente con un intérprete de comandos de shell. Pero, por supuesto, me gustaría que Xcode tuviera soporte para repositorios Git.


Subversion es la solución tradicional de control de código fuente de OS X, en Leopard es compatible con Xcode y OS X, sin mencionar las aplicaciones GUI de terceros (algunas de las cuales son muy ingeniosas). Sin embargo, a pesar de todo esto, muchos desarrolladores independientes de OS X han cambiado a Git en el último año o dos. Como desarrollador único, puedo decir que Git resultó ser una muy buena solución para mí, y junto con Github es una gran solución para un pequeño esfuerzo de equipo.


Xcode solo es compatible con Subversion, Perforce y CVS. Sin embargo, también hay sistemas de control de versiones distribuidos, como Mercurial, Bazaar y Git. No tienen GUI nativas de Mac, pero aún debes considerarlas. Personalmente, me encanta gestionar mis proyectos en repositorios de Mercurial.

[Agregado 2011-03-10] Xcode 4 agrega soporte para Git. Varios de nosotros hemos presentado solicitudes para el apoyo de Mercurial; usted debería, también, si lo desea.



Hay una bonita interfaz gráfica de usuario para Mercurial en Mac llamada MacHG: http://jasonfharris.com/machg/

Es gratis y muy agradable en mi humilde opinión.