2008-08-08 29 views
11

Estoy buscando buenas sugerencias sobre cómo implementar la versión y el control de código fuente para proyectos web.Control de código 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?

+0

tal vez esté buscando algo como [integración continua] (http://en.wikipedia.org/wiki/Continuous_Integration)? tienes algunos recursos en el enlace. –

+0

Eche un vistazo a [Bóveda] [1] o [TortoiseSVN] [2] de SourceGear. Espero que ayude. [1]: http: //www.sourcegear.com/vault/ [2]: http: //tortoisesvn.net/ –

Respuesta

15

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 el PC, no hay sustituto para TortoiseSVN, y para el Mac He oído cosas buenas sobre Versions.

+0

Versions (http://versionsapp.com/) es una muy buena aplicación, sin embargo es todavía en Beta y las características se están agregando todavía. Esto puede no ir demasiado bien con los tipos de gestión.He encontrado que las versiones son mejores que algunas alternativas (versión Zig, svnX), no he visto Cornerstone. –

5

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

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

5

Puede agregar cualquier tipo de archivo a 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.

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

1

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

2

Los otros han señalado que Subversion y sus parientes no tienen problemas para lidiar con los archivos binarios (aunque no tanto como el espacio-eficiente como 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, quisiera 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.

En su defecto, supongo que podría comprobar en un volcado de base de datos de texto como el tipo que genera el 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.

0

He estado usando git durante varias semanas y me he encariñado mucho 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.

0

Subversion tiene pre-compiled binaries for Mac OS X. También está disponible a través de MacPorts y Fink.Hay un par de excelentes interfaces (aparte del command-line). svnX es un cliente de código abierto que ha existido por un tiempo, y como se menciona Versions es un cliente de código cerrado de aspecto muy agradable que actualmente está en versión beta. Todavía debe get familiar with the command-line, ya que se encontrará con problemas que estos clientes de GUI no pueden resolver.

Subversion handles binary files muy bien. 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ó.

0

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.

Trabajo en un entorno Mac/PC también (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.

0

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

Yo personalmente uso las 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/Troncal 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.

0

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í está una lista de mac SVN clientes (la mayoría son multiplataforma)

http://scplugin.tigris.org/ como TortoiseSVN, pero no tan rico en características)
http://subcommander.tigris.org/
http://rapidsvn.tigris.org/
http://www.versionsapp.com/
http://www.syncrosvnclient.com/ (no libre de $ 59)
http://www.lachoseinteractive.net/en/community/subversion/svnx/features/

0

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

Cuestiones relacionadas