svnx snailsvn mac svn osx version-control

snailsvn - tortoisesvn mac



Control de fuente para proyectos web (11)

Estoy buscando buenas sugerencias sobre cómo implementar la versión y el control de fuente para proyectos web.

He investigado la subversión, pero parece que solo se ocupa del código. Realmente estoy buscando algo que pueda hacer una buena versión, ramificación, archivo, etc., no solo con el código fuente, sino también con otros recursos web como archivos artísticos, clips de película e incluso copias de seguridad de bases de datos.

Trabajamos en un entorno mixto de mac / pc, por lo que Visual Source Safe o cualquier cosa puramente basada en PC sería un no ir. ¿Alguna ayuda?


¿Qué te hace pensar que no puedes versionar, ramificar, archivar, etc ... archivos gráficos con Subversion?

He usado Subversion para mis programas, que incluyen gráficos, y parece que los maneja bien. (Bueno, diferir es un problema, pero no he oído hablar de un buen programa de diferenciación de imágenes).


He estado usando git por varias semanas y me he encariñado bastante con él. Es multiplataforma, gestiona los conflictos excepcionalmente bien y ofrece a todos su propio repositorio de versiones completo para que puedan verificar los cambios incluso cuando no están conectados a una red.

Muchos proyectos de alto perfil ahora están usando git, incluido Ruby on Rails.


Los otros han señalado que Subversion y sus familiares no tienen problemas para tratar con archivos binarios (aunque no tan eficientemente en espacio como el texto). Sin embargo, el requisito de copia de seguridad de la base de datos es más interesante, y uno con el que me he enfrentado más de una vez.

Idealmente, me gustaría una representación de texto de la diferencia entre dos versiones de una base de datos (esquema y datos). La aplicación de esta diferencia lo llevará de una versión a la siguiente. El motor de control de fuente podría simplemente almacenar eso con cada confirmación. Las migraciones de carriles es una manera ingeniosa de manejar diffs de esquema, pero no he visto nada que pueda manejar diffs completos de esquema y datos en un formato de texto simple.

De lo contrario, supongo que podría verificar un volcado de la base de datos de texto del tipo que mysqldump comando mysqldump para MySQL. El algoritmo de diferencia de la herramienta de control de origen probablemente no lo manejará de manera eficiente, pero es probable que requiera menos espacio que el que se verifica en un archivo de base de datos binario opaco.


Puede agregar cualquier tipo de archivo a la subversión. Si son archivos binarios, la versión guardada es simplemente una copia, mientras que los archivos de texto solo se guardan las diferencias; sin embargo, guardar esos otros tipos de archivos en subversión está perfectamente bien.

Usar complementos de shell (Tortoise en Windows) lo hace bastante fácil. No tengo experiencia con clientes de Mac, pero me imagino que hay opciones por ahí.


Todavía uso Subversion, y en Windows utilizo TortoiseSVN que incluye el TortoiseIDiff específicamente para ver las diferencias entre los archivos de imagen.


Todos los sistemas de control de fuente que he usado (CVS, subversion, git) manejarán archivos binarios y textos. Si está trabajando con diseñadores con experiencia limitada en el control de versiones, en este momento subversion tiene una mejor opción de GUI. En la PC, no hay sustituto para TortoiseSVN, y para Mac he escuchado cosas buenas sobre las versiones.


Subversion tiene binarios precompilados para Mac OS X. También está disponible a través de MacPorts y Fink . Hay un par de excelentes interfaces (aparte de la línea de comandos ). svnX es un cliente de código abierto que ha existido por un tiempo y, como se menciona en Versiones, es un cliente de código cerrado muy atractivo que actualmente está en versión beta. Todavía debe familiarizarse con la línea de comandos , ya que se encontrará con problemas que estos clientes de GUI no pueden resolver.

Subversion maneja muy bien los archivos binarios . Lo he usado para proyectos web en el pasado, y he versionado con éxito la imagen y los archivos Flash con el código que los usó.


Mac tiene algo llamado "Versión" que es una interfaz de usuario de subversión como "Tortoise SVN". Lo encontré fácil de usar y efectivo.

También trabajo en un entorno Mac / PC (niños artísticos de dang) y la subversión es realmente el camino a seguir. Guardo todos los textos, imágenes, consultas y código allí.

Mis compañeros de trabajo no tecnológicos lo encontraron fácil de usar una vez que expliqué el concepto.


Creo que svn es una gran opción, algunos usuarios incluso pueden usar git para realizar ramificaciones locales. Ejecuto eclipse en mi Mac, así que uso un combo de git, svn línea de comando y subversivo (un plugin de eclipse para svn). Aquí hay una lista de clientes sv sv mac (la mayoría son plataformas cruzadas)

http://scplugin.tigris.org/ como TortoiseSVN pero no como una función rica)
http://subcommander.tigris.org/
http://rapidsvn.tigris.org/
http://www.versionsapp.com/
http://www.syncrosvnclient.com/ (no gratis $ 59)
http://www.lachoseinteractive.net/en/community/subversion/svnx/features/


Definitivamente le daría a la subversión otra mirada. Sé que puede ser aburrido, pero leer el Libro SVN ayudará toneladas.

Yo personalmente uso Versiones para Mac. Tiene una interfaz de usuario muy buena para interactuar con un repositorio de subversión.

Lo que hago es verificar el directorio / Trunk de un proyecto en la raíz del sitio. De esa forma puedo probar y ejecutar la copia de trabajo como mi configuración de desarrollo real. Una vez que esté listo para entrar en funcionamiento, puedo exportar los archivos de las carpetas repo sans .svn y subirlos a un servidor de producción o de transición. Espero que esto te dé una idea de qué tipo de flujo de trabajo puedes tener al usar subversión.


Para usar el control de fuente con una base de datos, probablemente necesite producir una representación basada en texto del esquema y de los datos. Debe hacer que esto se ejecute automáticamente una vez al día y confirmar los cambios en su repositorio.

Tenga en cuenta que un DBMS puede cambiar el orden de las filas en una base de datos para hacer que algunas operaciones sean más eficientes. Esto podría llevar a que dos volcados se vean diferentes sin tener datos diferentes. Asegúrese de que lo que crea el volcado de sus datos lo clasifique por la clave principal de cada tabla, y que el conjunto de tablas esté en un orden definido, de modo que los cambios que vea cuando diferencie 2 volcados sean solo los cambios importantes.