Mejores prácticas para el desarrollo con múltiples máquinas y control de versiones

Estoy empezando a practicar el control de versiones (me gustaría usar Eclipse y SVN), y no estoy seguro de la mejor configuration para mi escenario.

Actualmente soy un desarrollador solitario y tengo dos computadoras (un escritorio de trabajo y una computadora portátil hogareña) que me gusta usar para el desarrollo (principalmente cosas basadas en la web). Tengo acceso a un server remoto basado en Linux y basado en Windows, y parece que siempre tengo files dispersos entre las dos máquinas en function de dónde realizo el trabajo.

¿Hay alguna instrucción o mejores prácticas sobre cómo configurar un entorno de desarrollo para que cuando me siento en cualquier máquina tenga los mismos files para trabajar y la capacidad de utilizar el control de versiones?

Algunas cosas que he usado entre mi computadora portátil / estación de trabajo / server.

  • Si las routes están expuestas, cree un repository svn local y luego use la ruta de networking al repository desde la segunda máquina. Funciona bien si no desea ejecutar un server, solo usa files locales. Mi computadora portátil y estación de trabajo tienen las mismas cnetworkingenciales, por lo que pasar funciona muy bien con las routes ocultas '\ machine \ c $ \ etc'

  • También me gusta usar Unison para administrar los files entre mi computadora portátil y estación de trabajo. No es el control de versiones, y con las indicaciones de date y hora lo hace bastante bien en 'que es más nuevo'. Además, si eres el único que usa ambos, los conflictos son muy bajos. Uso esto para administrar mis 'mis documentos' http://www.cis.upenn.edu/~bcpierce/unison/

  • Por supuesto, puede crear un server SVN y he encontrado Visual SVN para que esto sea demasiado fácil. Empecé a usar esto para mis proyectos personales después de que surgió la necesidad de "lanzar" al server. Tener el server svn en el server remoto tenía algunos beneficios cuando se trataba de iniciar y trabajar desde casa. (O invitando a otros desarrolladores) http://visualsvn.com/server/

Simplemente instale SVN en una de sus computadoras (preferiblemente en el server Linux). Supongo que los administradores instalarán SVN para usted y crearán los repositorys necesarios.

La integración de SVN con Eclipse es realmente fácil a través del complemento.

Si usted es nuevo en el control de código fuente (o incluso si no lo está), leer el CÓDIGO de código fuente de Eric Sink le dará una buena introducción y lo expondrá a algunas de las mejores prácticas.

Consideraría un sistema de control de versiones distribuidas, así como Subversion. Incluso si finalmente vas con Subversion, es bueno que entiendas todas las opciones disponibles para ti. Personalmente, soy un desarrollador único y trabajo en múltiples ubicaciones, y he descubierto que el concepto de DVCS funciona mucho mejor que SVN.

Git, Mercurial y Bazaar son tres opciones. Aquí hay un buen video de Linux Torvalds que explica algunas de las diferencias conceptuales.

Estoy implementando Bazar como mi solución de control de fuente para manejar este escenario. He usado Subversion durante años, pero simplemente no encaja en este escenario de uso distribuido. Bazar lo hace.