Pregunta

Soy un desarrollador solitario en este momento; comparta sus experiencias sobre lo que es una buena configuración de VC para un desarrollador solitario.

Mis restricciones son;

  • Trabajo en varias máquinas y necesito mantenerlas sincronizadas
  • A veces trabajo fuera de línea

Actualmente estoy usando Subversion (solo el cliente a un servidor remoto), y eso está funcionando bien. Estoy interesado en Mercurial y git DVCS, pero ninguno de sus casos de uso tiene sentido en mi situación.

EDITAR: he migrado mi desarrollo activo a Fossil http://www.fossil-scm.org/ después de probarlo con un cliente. Realmente me gustan las funciones para sincronizar automáticamente mis repositorios (reduciendo las bifurcaciones accidentales), el soporte de documentación (tanto wiki como incrustado / versionado) que admite mi necesidad de documentar el código y el proyecto en diferentes espacios, el rastreador de problemas fácil de configurar y un acceso agradable control, interfaz web personalizable y comunidad útil.

¿Fue útil?

Solución

Puedo sugerir un control de versión bastante nuevo llamado fósil.

Este no es un proyecto para mí, está escrito por el Dr. Richard Hipp, el mismo tipo que hizo SQLite. Todo el repositorio es un archivo SQLite, por lo que es muy sólido. Tiene un wiki y un sistema de tickets integrado. Puede tener muchos usuarios con diferentes derechos, por lo que, por ejemplo, puede otorgar a sus usuarios el derecho de emitir tickets pero no ver el código fuente.

Esto es bastante simple, sencillo y funciona como un sistema distribuido, lo que significa que puede clonar y realizar el pago de forma local y remota.

Se puede ver más información en http://www.fossil-scm.org/ y Si observas detenidamente, verás que todo el sitio es realmente fósil.

Una cosa que realmente me impresionó con el fósil es que es solo un archivo, eso es todo. Todo el programa de fósiles es bastante pequeño, pero teniendo en cuenta quién es el autor, eso no es realmente una sorpresa.

Y como su repositorio es un archivo sqlite, simplemente cópielo y tendrá una copia de seguridad.

Otros consejos

Probablemente, cada persona le dirá que su DVCS favorito es el mejor para usted. Te diría que Mercurial es el mejor! ;-)

Pero eso es una mierda . Definitivamente necesitas un DVCS, pero pruébalos todos, o al menos los más utilizados, y haz tu elección por ti mismo. Elegir el DVCS para el que conoces a un gurú también es una opción sensata, por cierto. Recomiendo probar (o leer la documentación de) al menos Mercurial, Git y Bazaar. SVK puede tener la característica deseable que está diseñada para interactuar con SVN, pero la última vez que verifiqué tenían problemas de desempeño desagradables. Git también tiene un complemento de interacción SVN, AFAIK.

Trabajar sin conexión tiene absolutamente sentido para Git. Puede navegar por todo su historial, realizar confirmaciones, fusionar, crear sucursales, esencialmente hacer todo lo relacionado con su repositorio fuera de línea. Además, puede configurar un repositorio central que es el " maestro " ;, es decir, empujará todos sus cambios a ese repositorio central. De esa manera, siempre sabrá dónde está el último código, pero también tendrá la ventaja de poder enviar cambios de una máquina a otra si alguna vez lo necesita.

Hace poco convertí todos mis 80+ repositorios de Subversion a Git, y no he mirado atrás.

Bazaar : consulte caso de uso individual y Bazar en 5 minutos .

Especialmente para el uso sin conexión, un sistema de control de versión distribuido es el camino a seguir.

Subversion funciona muy bien (especialmente con TortoiseSVN). No creo que ningún VC distribuido tenga una ventaja en un solo escenario de desarrollador.

Editar: no había notado que "a veces trabajo fuera de línea" parte cuando originalmente respondí. En ese caso, supongo que debe ponderar la complejidad agregada de un DVCS con el hecho de que le proporciona historial / revisiones fuera de línea.

Siempre recomiendo darcs para esta situación ( aquí está mi respuesta a una pregunta similar ) ya que su interfaz de usuario de línea de comandos es una alegría de usar y la alegría es lo que quiero de mi desarrollo propio :)

Git viene con algunas GUIs funcionales, pero me parece muy difícil de manejar en comparación con darcs cuando llego a la línea de comandos para usar en proyectos personales.

Cualquiera satisfará su necesidad de trabajar fuera de línea y ambos son fáciles de sincronizar con los cambios.

Subversion requiere acceso a un repositorio centralizado. Si está trabajando sin conexión y desde varias máquinas, eso significa que no puede realizar revisiones sin conexión.

Una solución simple de Unix sería mantener un historial dentro del directorio de trabajo con RCS , y sincronice el directorio de trabajo (incluido el historial) entre diferentes máquinas utilizando Unison . La principal advertencia sería que, si cambia de máquina, primero deberá sincronizarlas antes de comenzar a realizar nuevas revisiones. Si ese es un problema, lo mejor es mirar un DVCS real.

Puede encontrar útiles las respuestas a la pregunta que hice: alternativa a VSS para una exposición individual (¿ejército de una?):

Alternativa al VSS para un solo hombre espectáculo (ejército de uno?)

Tienes que probar un DVCS (o lo que yo llamo un VCS peer2peer). Estoy de acuerdo con nowhereman. No pierdas tiempo con svn y todo el software que lo rodea para que te resulte útil. Un DVCS es más intuitivo que el antiguo y obsoleto estilo cliente-servidor. SVN no sabe qué es una etiqueta, o una rama. Para Svn todos son solo copias.

Por ejemplo: es tan difícil implementar una etiqueta como sinónimo de un número de revisión.

En mercurial una etiqueta es solo eso. No puedes seguir rastreando las versiones de una etiqueta como puedes en svn.

Lea aquí guía de DVD para comenzar. Luego puedes usar svk, mercurial aka hg o git. Pero, por favor, no retroceda en el tiempo

Soy un gran fanático del control de versiones distribuido. He jugado con git, mercurial y bzr, y ahora uso git para todos mis proyectos. Los tres de estos son excelentes para uso personal porque es muy sencillo crear un nuevo repositorio en su computadora. No tienes que ejecutar ningún servidor.

Aquí hay un par de ideas para compartir su repositorio en varias computadoras. 1) Utilice algún servicio alojado como github. Por lo general, estos son gratuitos para proyectos de código abierto y tarifas bajas para proyectos comerciales. Estamos usando github en el trabajo. 2) Use Dropbox para crear un disco compartido con respaldo de Internet al que puedan acceder todas sus computadoras. Es gratis por menos de 2 GB. (Si está en Ubuntu, Ubuntu One es otra alternativa). Ponga su repositorio de git maestro en Dropbox y luego coloque repositorios locales en cada una de sus computadoras. (Por lo tanto, Dropbox cumple la misma función que Github). Es completamente gratuito, te permite trabajar sin conexión fácilmente, te permite compartir el repositorio con otros desarrolladores más adelante si es necesario, y se realiza una copia de seguridad automáticamente.

Además, si realmente desea usar SVN, busque una solución alojada como cvsdude (a pesar del nombre, sí ejecutan SVN) en lugar de ejecutar su propio servidor. Podrá acceder a su código desde cualquier lugar, y solo le costará entre $ 5 y 10 por mes.

SourceGear Vault es gratis para un desarrollador y es muy bueno.

Recomiendo assembla.com: proporcionan svn, wiki y trac gratis. ¡No hay nada mejor que eso!

Si te sientes cómodo con Subversion, te sugiero que eches un vistazo a SVK

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top