version-control - online - fuentes para tarjetas
Sistema de control de fuente para un solo desarrollador (27)
¿Cuál es el sistema de control de fuente recomendado para un equipo muy pequeño (un desarrollador)?
El precio no importa El cliente pagaría :-)
Estoy trabajando en Vista32 con VS 2008 en C ++ y luego en C # y con WPF. Configurar un servidor extra (físico) para esto me parece exagerado.
Alguna opinion?
Bueno, para empezar, no necesitas distribuir uno :) No estoy seguro de lo que significa esta parte física, porque podrías poner el servidor svn en tu propia máquina en pequeños problemas.
Por otro lado, NetBeans tiene un módulo de historial local que registra todos los cambios locales de un archivo. Tal vez algo así sería suficiente para ti si Visual Studio tiene algo similar.
Gday,
Haré una pregunta obvia aquí.
¿Qué sistema, si hay alguno, usa el cliente?
No quiere complicar las cosas desde SVN o CVS a Clearcase, por ejemplo.
aclamaciones,
Robar
No veo por qué el hecho de que su único desarrollador cambie algo en el problema del control de origen. Seguiría el mismo sistema (de hecho lo hago en mis proyectos en solitario). Yo uso wush.net (svn y trac) en esos casos. Es rápido de configurar y no requiere que usted haga o sepa ningún problema del servidor. Te recomiendo que uses algo como esto.
Puede usar Vault de SourceGear, la herramienta de reemplazo para fuente de estudio visual segura. El IDE está integrado en Visual Studio.
La herramienta es gratuita para un solo usuario.
Más información: http://www.sourcegear.com/vault/index.html
Recomendaría Subversion ya que es para un desarrollador único y supongo que no está haciendo una fusión compleja y un montón de comprobación de historial / historial.
Parece que muchas personas están usando http://svnrepository.com/ para su alojamiento. Viene con Trac e incluso Git si lo necesitas más tarde.
También recomendaría Mercurial. Su conjunto de comandos es muy parecido al que se encuentra en Subversion, por lo que la curva de aprendizaje no es tan pronunciada. Como se mencionó anteriormente, está diseñado para ejecutarse localmente, pero también es fácil compartir / fusionar cambios entre computadoras, o incluso simplemente enviarlo a un servidor remoto para hacer copias de seguridad.
Ofrece herramientas excelentes, como TortoiseHG , y tiene buenos complementos para NetBeans y Eclipse. También se ejecuta de forma nativa en Win32, ya que está escrito en Python.
Si no desea configurar un servidor usted mismo (para copias de seguridad, por ejemplo), hay proveedores de hosting gratuitos disponibles; hay una lista completa en The Mercurial Wiki .
Vaya por subversion y tortugaSVN, no necesita configurarlo en un servidor.
- Los costos son cero
- La documentación de subversión es genial y divertida de leer
- tortoiseSVN es un cliente muy conveniente
Yo recomendaría dos cosas:
Primero, ese otro servidor: ¿qué sucede si su máquina muere? la casa se quema? etc. Tenerlo en otra máquina es una buena idea desde el punto de vista de la redundancia.
El segundo es QUÉ:
Si está familiarizado con la fuente visual (no) segura, piense en SourceGearVault. Es MUY agradable, muy rápido y mucho un "clon" muy mejorado de VSS (es decir, funciona de la misma manera desde el punto de vista de los usuarios, no bajo el capó). Necesita servidor SQL y Windows tho (es .NET + servidor SQL). Gratis para 1 usuario
De usted no lo es, entonces le sugiero que haga una de estas dos cosas:
Primero, obtenga VisualSVN. Es genial, funciona muy bien con VS2008. En segundo lugar, si DEBE ejecutarlo localmente, obtenga el servidor VisualSVN (¡gratis!). Asegúrate de tener un buen plan de respaldo. Se ejecuta en XP / 2003/2008 / Vista, etc. Simplemente es Apache + SVN, por lo que solo te ahorra la configuración, me llevó 5 minutos instalarlo y ejecutarlo.
O, y prefiero este:
ir a algún lugar como Unfuddle, Dreamhost, etc., y obtener alojamiento para SVN. Es privado, es rápido y, sobre todo, es OFFSITE. ¡Mi cuenta de dreamhsot, con algo loco como 500GB de almacenamiento y 1-2TB de transferencia / mes cuesta alrededor de $ 6 / mes! Hay otros que hacen hosting SVN + seguimiento de errores, etc. Mire a su alrededor.
Pero sí, SVN es el schizzzznit. Puedes crear un repositorio local, pero me gusta tener un servidor remoto, respaldado.
TFS es total, total exageración para 1 desarrollador (o <5 IMO)
Yo uso Mercurial . Se ejecuta un tratamiento que corre solo en mi sistema de desarrollo Vista sin otras dependencias requeridas. Uso la línea de comandos pero también está TortoiseHG para integrar con Explorer.
Dos comentarios:
- Hay otras herramientas que probablemente se integren mejor con VS. Creo que Subversion tiene buenos plug ins VS.
- El beneficio de un servidor por separado es que es una buena copia de respaldo de todo su trabajo en caso de que su disco rígido fallezca, etc., por lo que es mejor tener uno.
Editar: @Slartibartfast: si solo desea ejecutar el control de código fuente en una sola máquina, una herramienta de control de código fuente distribuido como git o Mercurial es ideal, ya que están diseñadas para ejecutar repositorios completos en una máquina sin la sobrecarga de un servidor. El hecho de que nunca conecte su repositorio a los de otra persona para impulsar y sacar cambios no significa que la herramienta no sea la correcta.
A un sistema de control de fuente no le importa si solo hay un desarrollador involucrado :)
Le recomendaría que use un sistema de control de fuente que haya usado antes y le haya gustado.
Sin embargo, si le gusta la integración del sistema de control de fuente en comparación con 2008, yo iría con TFS aunque nunca tuve la experiencia para configurarlo, pero no debería ser tan difícil.
Otra posibilidad es usar svn (encontrará algunos servidores en google) y usar Tortoisesvn que se integra en el shell de Windows y es agradable trabajar con él.
Me sorprende que nadie haya mencionado a Perforce . Es gratis para 2 personas, sorprendentemente rápido y se integra con VS. También el servidor de origen tiene enlaces para él de manera predeterminada.
Además del control de fuente, realmente vale la pena completar el bucle y configurar un servidor de símbolos y un servidor de origen , para que tenga una depuración sencilla de todo lo que haya enviado (por ejemplo, no busque más pdbs o fuente que coincida con el binario) . Tanto el servidor de fuente como el de símbolos son completamente gratuitos y soportados en VS desde 2005.
Uso Perforce también para mis cosas personales, principalmente porque lo usamos en el trabajo. También hay enlaces de emacs para que puedas sincronizar, verificar cosas dentro o fuera, etc. todo desde dentro de emacs.
Yo recomendaría usar subversión. Muchos han recomendado usar una caja separada como servidor, en caso de que su máquina de desarrollo fallezca. ¿Qué sucede cuando el servidor SVN muere? La respuesta aquí es que no importa dónde elija ejecutar el servidor, asegúrese de hacer siempre copias de seguridad frecuentes, posiblemente automatizadas a diario en algún equipo secundario, preferiblemente fuera del sitio.
Algunas buenas respuestas aquí.
Quiero reiterar la sugerencia de usar una computadora separada para alojar el servidor de control de fuente, aunque no tiene que ser una máquina dedicada . Podría ser su cuadro de Windows Home Server u otro servidor que ya esté ejecutando. O podría ser una máquina virtual alojada en otro servidor. Lo que sea, simplemente hazlo separado de la (s) máquina (s) donde escribes el código.
También quiero sugerirle que obtenga una buena disciplina de respaldo para su servidor. Algo al menos todas las noches; cada hora si puedes. Haga una copia de respaldo en un dispositivo dedicado (como un disco duro externo) o algo fuera del sitio (un servidor en la casa de su primo en otro estado) o en la nube (Amazon S3). Recuerde que su código fuente es su activo clave; ¡cuídalo!
Hay dos soluciones posibles para su problema: VCS centralizado o VCS distribuido (DVCS).
VCS centralizado como Subversion satisfaría su característica para comprometer y explorar el registro. También le permite almacenar de manera segura su repositorio en otra computadora, que debería ser uno de sus principales objetivos, ya que la falla del disco duro siempre es una posibilidad. Sin embargo, al usar Subversion, el historial aún reside solo en la ubicación central, por lo que es vulnerable y usted indicó que no desea tener otro servidor.
Los Sistemas de control de versiones distribuidas (DVCS) como Mercurial y Git le permiten realizar operaciones más complejas en su repositorio. Con ambas herramientas, todo el repositorio reside en la misma computadora, haciendo que sea más fácil hacer copias de seguridad y usar el repositorio con otra computadora, por ejemplo, una computadora portátil. Mientras que Mercurial puede parecer complejo al principio, las operaciones que usarías con subversión son prácticamente las mismas con Mercurial. Por lo tanto, no hay gastos adicionales para comenzar si ya conoce Subversion y puede usar más funciones avanzadas de Mercurial más adelante.
Debería poder encontrar un servicio de repositorio en línea para su repositorio de Mercurial que le permita realizar copias de seguridad fáciles y colaborar algún día si lo necesita.
Mi recomendación es Mercurial con TortoiseHg.
Me doy cuenta de que el costo no es un problema, pero una buena solución gratis que no involucraría el check in y out sería alojar el código dentro de Dropbox, al hacer esto obtendría instantáneamente versiones y copias de seguridad, que son las principales características de un solo sistema desarrollador proporcionaría.
Recientemente cambié mi estudio de Subversion a Perforce y puse algunas notas al respecto, una especie de autopsia, en mi blog aquí . Espero que sea útil.
Varias de las publicaciones abogan por poner el repositorio en un servidor porque proporciona redundancia. No creo que esto sea tan útil para un solo usuario. Usar una máquina de servidor por separado agrega mucha complejidad, pero no compra mucha redundancia: si pierde la máquina del servidor, todavía tiene las fuentes actuales en su máquina de desarrollo, pero puede haber perdido TODO su historial. Poner el repositorio en un servidor tiene sentido si ese servidor se respalda regularmente. El uso de un servicio de alojamiento externo para el repositorio puede proporcionar redundancia de almacenamiento, pero usted está a merced del servicio externo Y necesita una conexión a Internet para acceder al repositorio. Si usa un host externo, haga copias de seguridad frecuentes del repositorio del que tiene control.
Recomiendo especialmente TortoiseSVN usando un repositorio local basado en archivos. Solo asegúrese de hacer una copia de seguridad del repositorio local en una segunda máquina o medio externo (como CD-ROM) regularmente.
Bazar es un buen sistema de control de versiones. Me gusta usarlo para mis configuraciones de Linux porque no necesita crear un repositorio por separado.
Hace un tiempo hice una publicación sobre cómo hacer un blog sobre el uso de SVN con un solo desarrollador. Lo llamé Control de fuente de servicio único
He estado trabajando con Bazar ahora durante unas semanas y me gusta mucho. Soy un desarrollador de Linux, así que no sé mucho sobre Tortois, pero si te gusta, debes saber que hay un Tortoisbzr
Incuestionablemente usaría git, y creo que muchos motivos por los que un desarrollador único quisiera usar git se insinúan o describen en git magic
Definitivamente recomendaría git
Funciona muy bien para equipos grandes y pequeños. El único inconveniente es el soporte de windows nativo pobre. Aunque funciona bien para mí en Cygwin. También existe un puerto de Windows nativo .
Algunos de sus beneficios:
- Excelente soporte para un flujo de trabajo no lineal. Su ramificación y fusión es mucho mejor que, por ejemplo, Subversion.
- Buenas herramientas para navegar en su repositorio
- Maneja bien grandes proyectos.
- No es posible modificar el historial sin cambiar la firma criptográfica de su repositorio
- Con su diseño no monolítico, es fácil de programar.
Algunas personas encuentran que tiene una curva de aprendizaje empinada. Pero una vez que lo entiendes, puedes hacer casi cualquier cosa que desees con él.
Sourcegear''s Vault es una gran opción, se ejecuta en SqlServer y existe desde hace muchos años. No usaría ninguna versión de VSS (Visual Source Safe).
Subversion tiene una barrera de entrada muy baja.
TortoiseSVN es un cliente gratuito y se integra en su explorador, es decir, en el menú contextual del mouse.
El repositorio puede ser solo un directorio en algún lugar de su PC o en una unidad de red. Copia de seguridad solo significa subir este directorio
Hay algunos complementos para Visual Studio para Subversion, AnkSvn es uno que he usado, es gratuito y se integra muy bien (es decir, será inteligente mover y eliminar archivos, etc.)
Subversion es una buena opción para un desarrollador.
Actualizar:
Desde este post, he estado usando Mercurial. Es un SVN distribuido. El aspecto ''distribuido'' puede no ser directamente útil para un único desarrollador, sin embargo, es mejor para la fusión y es algo más rápido. También hay un cliente de extensión de Windows Explorer gratis y bueno: Tortoise Hg .
En resumen, si usted es el tipo de persona que trabajará en muchas sucursales al mismo tiempo (haciendo picos, etc.) o si trabaja en varias PC a la vez y desea acceso completo sin conexión para registrar el historial en ambas, entonces Mercurial . Si solo desea un seguimiento simple y una solución bien probada y fácil de entender, entonces Subversion .
Uso Springloops: herramienta de control de versiones para desarrolladores
- Control de versión SVN / Git
- Despliegue automático a servidores
- Crear repositorios
- Invitar a la gente
- Importar archivos
- Gran apoyo
Entonces, prueba Springloops
Usaría Subversion (de hecho, la uso) [ update : Jul 2014 - Uso Git - veré el final de la respuesta]. SVN es:
- gratis,
- lo suficientemente bueno (ver desventajas a continuación),
- sencillo,
- funciona bien en Windows (y Linux también),
- mucha gente lo usa así que es fácil obtener ayuda,
- puede integrarse con la mayoría de los IDEs, es decir, Visual Studio (es decir, ankhsvn o VisualSVN - más información ) o Eclipse (es decir, Subclipse - aquí alguien preguntó sobre eso).
Recomiendo encarecidamente máquina separada para servidor de control de origen. En el mejor de los casos en algún lugar de la nube . Ventajas:
- No perderá sus repositorios de control de fuente si su caja de desarrollo muere.
- No tiene que preocuparse por el mantenimiento de una caja más.
Hay empresas que alojan repositorios SVN .
Aquí hay enlaces a paquetes SVN (cliente y servidor) para varios sistemas operativos.
Desventajas de SVN
Estoy usando SVN en una máquina con Windows por unos 5 años y descubrí que SVN tiene algunas desventajas :).
Es lento en grandes repositorios
SVN (o su cliente - TortoiseSVN) tiene una gran desventaja: es terriblemente lento (mientras se actualiza o se comete) en repositorios grandes (miles de archivos) a menos que tenga unidad SSD .
La fusión puede ser difícil
Muchas personas se quejan de cuán difícil es fusionarse con SVN.
Me fusiono durante aproximadamente 4 años (incluyendo aproximadamente 2 años en CVS - eso fue terrible, pero factible) y alrededor de 2 años con SVN.
Y personalmente no me parece difícil, por otro lado, cualquier fusión es fácil después de fusionar sucursales en CVS :).
Combino un repositorio grande (dos repositorios de hecho) una vez a la semana y rara vez tengo conflictos que son difíciles de resolver (la mayoría de los conflictos se resuelven automáticamente con el software diff que uso).
Sin embargo, en caso de proyecto de algunos desarrolladores, la fusión no debería ser un problema en absoluto si se mantienen algunas reglas simples:
- fusionar cambios a menudo,
- evitar el desarrollo activo en varias ramas al mismo tiempo.
Agregado en julio de 2011
Muchos desarrolladores recomendaron Control de versiones distribuidas como Git o Mercurial .
Desde la perspectiva del desarrollador único , existen solo algunas ventajas importantes de DVCS sobre SVN:
- DVCS puede ser más rápido.
- Puede comprometerse con el repositorio local sin acceso a uno central.
- El DVCS es algo candente y elegante de usar / aprender (si alguien paga por su aprendizaje).
Y no creo que la fusión sea un problema en el caso de un desarrollador individual.
Joel Spolsky escribió un tutorial sobre Mercurial que definitivamente vale la pena leer.
Entonces, a pesar de las muchas ventajas de DVCS, me quedaría con SVN si la fusión o la velocidad no son un problema.
O intente con Mercurial, que de acuerdo con esta y las preguntas de SO, está mejor soportado (en julio de 2011) en Windows.
Agregado en julio de 2014
Durante casi un año utilizo Git (principalmente Git Bash) para mis proyectos favoritos (es decir, resolver problemas de Euler) y las sucursales locales para cada problema de Euler son realmente buenas características, exactamente como se describe como una ventaja de DVCS.
Hoy las herramientas de Git en Windows son mucho, mucho mejores que hace 2 o más años. Puede utilizar el repositorio remoto (como GitHub o ProjectLocker y muchos otros) para mantener copia de su proyecto lejos de su estación de trabajo sin esfuerzo extra / dinero.
Sin embargo, utilizo el cliente GUI solo para ver diferencias (y algunas veces para elegir archivos para confirmar), así que es mejor no tener miedo de la línea de comandos, es realmente agradable.
Así que a partir de hoy iría con Git.