svn - versionamiento - Mejor control de versión para el desarrollador solitario
software para control de versiones de archivos (13)
Es probable que cada persona le diga que su DVCS favorito es lo mejor para usted. ¡Te diría que Mercurial es el mejor! ;-)
Pero eso es una mierda . Definitivamente necesita un DVCS, pero pruébelos todos, o al menos los más usados, y haga su elección usted mismo. Elegir el DVCS para el que conoces a un gurú también es una elecció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 de que está diseñado para interactuar con SVN, pero la última vez que revisé tenían desagradables problemas de rendimiento. Git también tiene algún complemento de interacción SVN, AFAIK.
Soy un desarrollador solitario en este momento; por favor comparte tus experiencias sobre lo que es una buena configuración de VC para un desarrollador solitario.
Mis limitaciones son;
- Trabajo en varias máquinas y necesito mantenerlas sincronizadas
- A veces trabajo fuera de línea
Actualmente estoy usando Subversion (solo el cliente para un servidor remoto), y eso está funcionando bien. Estoy interesado en Mercurial y git DVCS, pero ninguno de sus casos de uso tiene sentido para mi situación.
EDITAR: he migrado mi desarrollo activo a Fossil http://www.fossil-scm.org/ después de probarlo con un cliente. Me gustan mucho las funciones para sincronizar automáticamente mis repositorios (reduciendo las horquillas accidentales), el soporte de documentación (tanto wiki como incrustado / versionado) que soporta mi necesidad de documentar el código y el proyecto en diferentes espacios, el rastreador de problemas fácil de configurar, buen acceso control, interfaz web skinnable y comunidad útil.
Podría sugerir un control de versión bastante nuevo llamado fósil.
Este no es un proyecto para mí también, está escrito por el Dr. Richard Hipp, el mismo tipo que hizo SQLite. El repositorio completo es un archivo SQLite, por lo que es muy sólido. Tiene un wiki y un sistema de tickets integrados. Puede tener muchos usuarios con diferentes derechos, por lo que puede, por ejemplo, dar a sus usuarios el derecho de emitir tickets pero no ver el código fuente.
Esto es bastante simple, directo y funciona como un sistema distribuido, lo que significa que puede clonar y pagar local y remotamente.
Se puede ver más información en http://www.fossil-scm.org/ y si miras de cerca verás que todo el sitio es en realidad fósil.
Una cosa que realmente me impresionó con fósil es que es solo un archivo, eso es todo. Todo el programa fósil es bastante pequeño, pero teniendo en cuenta quién es el autor, eso no es realmente una sorpresa.
Y dado que su repositorio es un archivo sqlite, simplemente cópielo y tendrá una copia de seguridad.
Puede encontrar útiles las respuestas a la pregunta que le hice: alternativa a VSS para una presentación de un solo hombre (¿ejército de uno?):
Alternativa a VSS para un show de un hombre (¿ejército de uno?)
Recomiendo assembla.com - proporcionan svn, wiki y trac gratuitos. No puede ser mejor que eso!
Siempre recomiendo darcs para esta situación (esta es mi respuesta a una pregunta similar ) ya que su interfaz de línea de comando es un placer de usar y la alegría es lo que quiero de mi propio desarrollo :)
Git viene incluido con algunas GUI utilizables, pero he encontrado que es demasiado difícil de manejar en comparación con los darcs cuando presiono la línea de comando para usarlo en proyectos personales.
Cualquiera de ellos satisfará su necesidad de trabajar fuera de línea y ambos son fáciles de sincronizar con los cambios.
Soy un gran admirador del control de versiones distribuidas. He jugado con git, mercurial y bzr, y ahora uso git para todos mis proyectos. Los tres son excelentes para uso personal porque es muy simple crear un nuevo repositorio en su computadora. No tiene que ejecutar ningún servidor.
Aquí hay un par de ideas para compartir su repositorio en varias computadoras. 1) Utiliza algún servicio alojado como github. Por lo general, estos son gratuitos para proyectos de código abierto y de bajo costo para proyectos comerciales. Estamos usando github en el trabajo. 2) Use Dropbox para crear un disco compartido respaldado por Internet al que puedan acceder todas sus computadoras. Es gratis por menos de 2 GB. (Si está en Ubuntu, Ubuntu One es otra alternativa). Coloque su repositorio master git en Dropbox y luego coloque repositorios locales en cada una de sus computadoras. (Por lo tanto, Dropbox juega el mismo rol que github). Es completamente gratuito, le permite trabajar fuera de línea fácilmente, le 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, mire 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á ~ $ 5-10 / mes.
Subversion funciona muy bien (especialmente con TortoiseSVN). No creo que ningún VC distribuido tenga una ventaja en un único escenario de desarrollador.
Editar: No había notado la parte "a veces trabajo sin conexión" cuando originalmente respondí. En ese caso, supongo que debe ponderar la complejidad añadida de un DVCS con el hecho de que le proporciona historial / revisiones fuera de línea.
Subversion requiere acceso a un repositorio centralizado. Si trabajas sin conexión y desde varias máquinas, eso significa que no puedes hacer revisiones sin conexión.
Una simple solución de Unix sería mantener un historial dentro del directorio de trabajo con RCS , y sincronizar el directorio de trabajo (incluido el historial) entre las diferentes máquinas que usan Unison . La advertencia principal sería que, si cambia de máquina, primero debe sincronizarlos antes de comenzar a realizar nuevas revisiones. Si eso es un problema, es mejor que investigue un DVCS real.
Tienes que probar un DVCS (o lo que yo llamo un VCS peer2peer). Estoy de acuerdo con nowhereman. No pierdas el tiempo con svn y todos los soft made alrededor para que sea más útil. Un DVCS es más intuitivo que el viejo 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 versiones de una etiqueta como lo haces en svn.
Lea aquí la guía de dvcs para comenzar. Entonces puedes usar svk, mercurial aka hg o git. Pero por favor no retrocedan en el tiempo
Trabajar fuera de línea tiene sentido para Git. Puede navegar por su historial completo, realizar confirmaciones, hacer fusiones, 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, usted enviará todos sus cambios a ese depósito central. De esa manera siempre sabrá dónde está el código más reciente, pero también obtendrá la ventaja de poder enviar cambios de una máquina a otra si alguna vez lo necesita.
Recientemente convertí todos mis más de 80 repositorios Subversion a Git, y no he vuelto a mirar atrás.
Bazaar : vea el caso de uso individual y Bazar en 5 minutos .
Especialmente para el uso fuera de línea, un sistema de control de versiones distribuidas es el camino a seguir.
SourceGear Vault es gratuito para un desarrollador y es muy bueno.