¿Sugerencias para pasar al uso de SVN o GIT para administrar nuestro código en el servidor?

Nuestra situación actual:

  • 1 servidor Apache (alojado)
  • 30 gb de datos, cientos de carpetas / proyectos
  • los archivos son 99% html / php / js / css, con un montón de pdf / ppt / docs, etc.
  • Varios desarrolladores, trabajando desde diferentes ubicaciones, utilizando computadoras propias.
  • Algunos desarrolladores solo tienen acceso a ciertos directorios (usando diferentes cuentas ftp)
  • Todas las actualizaciones se realizan con FTP directamente, guardando archivos antiguos.
  • La empresa de alojamiento realiza copias de seguridad básicas diarias / semanales, pero el acceso a esos archivos requiere su ayuda.

Ahora sabemos que esto no es una solución óptima. De vez en cuando, alguien elimina accidentalmente archivos de trabajo con archivos incorrectos, etc.

¿Qué debemos hacer con esto?

  • Todos los archivos se respaldan automáticamente, por lo que los errores se pueden recuperar de manera fácil y segura
  • Los desarrolladores no deberían tener que cambiar mucho su flujo de trabajo, nos gusta mucho la funcionalidad de guardar automáticamente en FTP de Dreamweaver y WinSCP
  • Obtenemos la nueva y mejor forma de trabajar para afectar también a los archivos actuales

?

preguntado el 02 de febrero de 12 a las 11:02

2 Respuestas

¡¡Argh !! Tenia que decirlo. :)

Su flujo de trabajo asume que la mayoría de los desarrolladores trabajan solo en ciertas partes bien definidas del proyecto, ¿verdad? De lo contrario, creo que su configuración actual simplemente no funcionará.

Entonces, el primer curso de acción podría ser crear repositorios de fuentes separados para estos 'proyectos' separados. Utilizo el término proyecto de manera vaga para referirme a la funcionalidad (por ejemplo, búsqueda), parte del sitio web (por ejemplo, Acerca de nosotros) o cualquier otra cosa que divida el trabajo.

Yo no iría con SVN. Ningún proyecto nuevo debería hacerlo si está comenzando desde cero. Con git, comenzaría con lo siguiente:

  1. Cree una lista de subproyectos basada en la estructura de carpetas (sin archivos / carpetas superpuestos)
  2. Compromételos a separar repositorios de git
  3. Cree un proyecto maestro de git e importe todos estos repositorios de git como submódulos en la ruta correcta
  4. Otorgue permisos de escritura específicos del repositorio a los desarrolladores como antes
  5. Sin embargo, todos ellos deberían poder leer todos los repositorios.
  6. Un único git clone del repositorio principal seguido del submodule init El comando inicializará el repositorio para cada desarrollador.

Respondido 02 Feb 12, 15:02

Sí, aquí también se dice argh con bastante frecuencia. Parece que lo siguiente que estoy haciendo es buscar en Google Git para tontos. Solo una pregunta rápida: con la configuración que está sugiriendo, ¿cómo funciona el desarrollo básico? Ahora simplemente guardamos el archivo en el servidor FTP, actualizamos el navegador y está allí. Realmente, realmente me gusta la simplicidad. - Apeli

Tendría un paso explícito de 'git commit' después de realizar cambios. Hay herramientas de interfaz de usuario que manejan la confirmación y el envío a control remoto automáticamente, por ejemplo, SmartGit. Y recomendaré ProGit (progit.org). Libro electrónico gratuito, también disponible en versión de árbol muerto. - hilo inactivo

No he usado GIT. Uso mucho SVN. Por lo que describe, definitivamente necesita un sistema de control de versiones. Puede lograr casi todo (excepto que puede ser guardado automáticamente) desde un sistema de control de versiones, además le agradecerá que haya ahorrado un montón de líos que podría estar sufriendo con su sistema actual.

Entonces, saltemos a sus consultas:

All files are automatically backed up, so mistakes can be recovered easily 
and securely

Los archivos en un sistema de revisión se indexan por confirmación (confirmación == guardar), por lo que puede ver historia completa de un archivo. En funciones de compilación como diff, le ayudará a encontrar los cambios exactos realizados de una revisión a otra. Usted puede recuperar archivos borrados accidentalmente. Le gustaría (y apreciaría) aprender la estructura del repositorio y cómo ayuda a facilitar la liberación, reparaciones puntuales mediante ramificar el código. Entonces, SVN cubre terreno aquí.

Creación de usuario y configuración de autorización y autenticación es cuestión de editar un archivo de texto con nombre de usuario, contraseña y sus dominios.

Devs shouldn't have to change their workflow much, we really, really like the
auto-save-to-FTP functionality of Dreamweaver & WinSCP

Hay muchos complementos disponibles para SVN para varios IDE. No he trabajado en Dreamviewer pero parece trabajar con SVN en Dreamweaver es perfecto. Supongo que puede cambiar un poco su flujo de trabajo, pero es un buen cambio. En cualquier caso, siempre puedes tener cosas como Tortuga SVN para proporcionarle un maravillosa UI para trabajar.

We get the new, better way of working to affect also the current files

Importar archivos a SVN es muy fácil. Una vez que tenga en funcionamiento el servidor SVN básico, todo lo que necesita es ejecutar svn import my/project/folder svn://svn.server.location/reponame/projectname/trunk para cada proyecto o algo similar. Y te vas.

Lo que sugiero es mirar en

PS: Por cierto, mi respuesta es fiel a cualquier VCS moderno. Lo que sea que elija para ir será mejor que lo que tiene actualmente.

Respondido 13 Abr '17, 15:04

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.