Necesito trabajar con 4-5 programadores en una aplicación PHP bastante promedio usando codeigniter. Estamos en 5 ubicaciones diferentes en una ciudad, y todos los programadores no están muy bien educados y supongo que la mayoría de ellos nunca ha usado ningún sistema de control de versiones.
¿Me puede recomendar alguna plataforma muy fácil de acceder para colaborar en un proyecto como este? Estoy hablando de algo que es solo un poco más sofisticado que una carpeta compartida de Dropbox.
Respuestas:
Usted ya sabe la respuesta
El control de versiones fue diseñado para resolver este problema exacto . Si sus desarrolladores no están dispuestos a aprender a usar esta práctica de desarrollo estándar, es posible que deba reconsiderar sus desarrolladores. ¿Qué tipo de software van a producir si muestran una aversión a las prácticas estándar aceptadas, así como una aversión a aprender cosas nuevas?
Sugeriría que leyeran Pro Git y configuraran un repositorio privado de git para su equipo.
fuente
... FTP
Ok, esta es la forma en que comencé a colaborar, conectando Notepad ++ a FTP, haciendo una copia de seguridad cada 10 minutos en carpetas renombradas realmente apestadas, si haces esto, por el bien de tu proyecto, al menos usa el control de versiones en el servidor.
Un IDE en línea
Cloud9 es muy agradable y tiene edición simultánea, sin embargo, le costará tener más de 1 espacio de trabajo privado para trabajar con su equipo, pero vale la pena.
... prueba Mercurial
Si no encuentra que Git sea lo suficientemente accesible para sus compañeros de trabajo, pruebe Mercurial con TortoiseHG, que es un cliente GUI para Mercurial. Tardarán dos minutos en configurarse y menos en comenzar a usarlo.
Pídales que usen la GUI, solo tienen que aprender a usar 4 botones (extraer, actualizar, confirmar, presionar) y aprender 2 o 3 conceptos para guardar y compartir su trabajo.
Haga que se registren en bitbucket . Cree un repositorio para su proyecto y pídales que lo bifurquen para que puedan trabajar en su propio espejo del repositorio y de esa manera no tengan que lidiar con la fusión. Usted realiza la integración y solo les pide que emitan solicitudes de extracción de su bifurcación de Bitbucket una vez que hayan presionado. Pídales que extraigan solo de su repositorio (del que se bifurcaron).
Aprenda Mercurial usted mismo para que pueda resolver todos los problemas relacionados, este es un buen comienzo: http://hginit.com/
Prueba ambos
Puedes usar Mercurial de Cloud9, ¿qué tan genial es eso?
Deja de asumir
Si usted es el que busca usar las herramientas correctas, ya está en una posición de liderazgo. No asuma que no están educados y hable con ellos sobre cómo se hacen las cosas en el mundo real.
Sé entusiasta al respecto y no condescendiente.
Realmente no hay nada más fácil que esto si quieres hacer las cosas bien. Si expresamente no quieren usar el control de versiones, entonces podría tener otro tipo de problema más serio.
fuente
Recomiendo a sus desarrolladores a http://try.github.com
Pero si no es posible el control de la versión, puede quedarse con algo apropiado para el principiante / junior que es básico (y arcaico).
La configuración de la carpeta web de su servidor de desarrollo también podría ser svn checkout (o git) y puede configurar el crontab para realizar revisiones automáticas de vez en cuando automáticamente o simplemente puede instalar una copia de seguridad o sincronizar la carpeta a otra ubicación de copia de seguridad para cuando se sobrescriben los archivos de los demás (como sucederá) y debes darle a Bob los cambios que perdió. Finalmente, después de trabajar con el sistema durante unos meses, le rogarán que les dé acceso a svn / git.
fuente
Debe corregir esa suposición y averiguar si tienen o no conocimiento o experiencia de algún sistema de control de versiones. No tiene sentido suponer cuándo podrían tener conocimiento.
Como han dicho otras respuestas, esto es para lo que sirve el control de versiones. Git es probablemente el mejor camino a seguir, y Learn Git es un muy buen punto de partida.
fuente
Bueno, no hay otra salida que usar el control de versiones .
Dropbox tiene una especie de control de versiones , pero creo que si dos personas guardan un archivo, la versión más nueva simplemente reemplazará a la versión anterior, lo que no es deseable para el control de versiones durante el desarrollo del software.
Svn es un sistema de control de versiones fácil de aprender (al menos más fácil que git), y puede encontrar varios repositorios públicos alojados en línea, pero no lo recomendaría para equipos distribuidos geográficamente.
Entonces, el camino a seguir para los equipos distribuidos es git. Si tener su fuente pública O comprar un plan privado no es un problema, cree un repositorio en github , de lo contrario configure un repositorio git local.
Es posible que pueda encontrar una GUI para git que podría facilitar a estos desarrolladores comenzar a comprender un sistema de control de versiones conceptualmente. Para Windows es TortoiseGIT . No he usado ningún cliente git gui para Linux o MAC, por lo que no recomendaré uno aquí.
fuente
Estás en el buen camino
El
version controlling
es el camino a seguir! Servirá bien para compartir código compartido y ayudar con la integración. Además, los controles frecuentes son una disciplina muy importante que todo el equipo necesita practicar.Sin embargo, elegir el control de versión correcto para su proyecto es muy importante.
Hay una bonita publicación reciente y respuestas para ayudarlo a decidir: ¿Cuál es un buen ejemplo de juguete para enseñar el control de versiones?
fuente