¿Sistema de control de versiones para un pequeño laboratorio?

Soy un estudiante graduado en Ingeniería Eléctrica y mi laboratorio tiene varios proyectos relacionados con los ultrasonidos. Tenemos muchos códigos para realizar simulaciones, pero ahora nuestra situación es tal que cualquier secuencia de commands tiene ~ 5 versiones diferentes. Además, una persona podría desarrollar código para simular la propagación de ondas, mientras que otra necesita ese código para realizar una simulación diferente. Esto da como resultado que el código se envíe por correo electrónico una y otra vez.

Le sugerí control de versiones a mi asesor, y ella dice que le gusta, pero que no tiene time para administrar un VCS, por lo que tendría que configurarse de manera tal que requiera el menor mantenimiento posible. Obviamente, no estamos lanzando software al público, por lo que no importa si la estructura interna es poco convencional.

La mayoría de los laboratorios no son codificadores profesionales, pero todos necesitamos escribir el código MATLAB, así como algunas otras cosas. Por lo tanto, no espero que los usuarios sean tan buenos con los compromisos limpios y similares, por lo que sería bueno que todos tengan su propio "lugar de trabajo" o algo así. Pero para ser sincero, solo he usado el control de versiones para 3 personas a la vez, así que no estoy seguro de cómo configurarlo.

Entonces estoy preguntando cuál es la mejor manera de hacer esto. Solo he usado Subversion, pero me pregunto si esa es la elección correcta. Necesitamos un sistema que (orderado por importancia, descendiente):

  • requiere poco mantenimiento
  • ser fácil de usar y aprender, ya que no todos han usado el control de versiones
  • tiene integración de shell (todos usamos Windows XP)
  • ser fácil establecer permissions y dar a cada uno su propio espacio de trabajo
  • ser fácil de configurar y ejecutar

Entonces, (1) qué VCS es la mejor opción, y (2) cómo deberíamos estructurarlo. Gracias por la ayuda.

Usamos subversión y nos encanta, por su simplicidad, facilidad de uso, integración en el entorno de shell y la capacidad de no solo versión, código, sino también documentos de especificación, pdf y otros resources que tenemos.

En cuanto a estructurarlo, intente y use su estructura lógica, lo más cerca posible. Mantenlo simple 🙂

No veo ninguna razón por la que deba search más lejos de Subversion. Aunque, para un mantenimiento mínimo, puede consultar GitHub (ya que es una solución alojada, por lo que no debe preocuparse por las copys de security, serveres, etc.), pero también hay repositorys Subversion alojados.

Especialmente si ya está familiarizado con él, para que pueda poner a los demás al tanto y get crédito adicional 🙂

Una vez que la subversión de configuration completa requiere muy poco mantenimiento, su model es simple de aprehender, está integrado en el shell, es compatible con ACL que funcionan bien y su configuration está bien documentada.

puede configurar subversion en un server web, integrarlo con un dominio de Windows para authentication si es necesario (de lo contrario, debe agregar / eliminar usuarios, cambiar passwords en el server svn)

También podría elegir el modo distribuido de vcs, con las soluciones alojadas sin configuration de server, pero hacer que eso pase por la mente de su usuario será mucho más difícil que svn. Por no hablar de pasarlo por tu cabeza primero.

A less que tenga models de desarrollo paralelos complejos, rápidos, no recomendaría dvcs, me quedaría con SVN

Estoy de acuerdo en que la subversión es una muy buena opción. Pero también puedes considerar mercurial : es más fácil y también tiene una interfaz integrada de tortuga .

Yo recomendaría http://www.assembla.com. Ofrecen suscripciones pagas, pero para proyectos académicos, puede solicitar una count profesional gratuita.

Lo he usado para mis proyectos académicos y estaba 100% satisfecho por la facilidad de mantenimiento, time de actividad y simplicidad

La forma más fácil es usar Subversion . Pero para que funcione de la manera más fácil (en Windows), definitivamente debe usar TortoiseSVN .

Después de la installation, funciona justo dentro del explorador y está a solo un clic de distancia del uso. Tal vez uno de tus hombres debería echar un vistazo más profundo a toda la documentation para ayudar si es necesario. Todos los demás chicos deberían echar un vistazo a la Guía de uso diario para comenzar.

¡También debe tener cuidado con la estructura de su repository !

Subversion tiene demasiadas limitaciones relacionadas con el model "siempre en línea + server central". Recomiendo usar un sistema de control de versiones distribuidas.

De los tres principales, Git, Mercurial, Bazaar; en mi experiencia, Bazar es de lejos el más fácil de usar y configurar.