Pregunta

Necesito implementar control de versiones, incluso solo para el desarrollo que hago en casa.He leído sobre lo genial que es Subversion durante los últimos dos años y estaba a punto de dedicarme a aprender esto hasta que me enteré de que Git era el sistema de control de versiones emergente.

Dada la situación, ¿debería esperar y ver cuál sale ganando?¿Cuáles son sus ventajas relativas?

Un problema que noté con Git es que no hay muchas GUI con todas las funciones, lo cual es importante para muchos usuarios de mi equipo.

Además, no me importarían sugerencias sobre cómo empezar con uno u otro.(tutoriales, etc.)

¿Fue útil?

Solución

Lo más importante del control de versiones es:

SIMPLEMENTE COMIENCE A USARLO

No utilizar el control de versiones es una idea horrible.Si no está utilizando el control de versiones, deje de leer ahora mismo y comience a usarlo.

Es muy fácil convertir de

cvs<->svn<->git<->hg

No importa cuál elijas.Simplemente elija el más fácil de usar y comience a registrar el historial de su código.Siempre podrás migrar a otro (D)VCS más adelante.

Si está buscando una GUI fácil de usar, consulte TortugaSVN (Windows) y Versiones (Mac) (Sugerido por codificación sin comentarios)


Editar:

pix0r dijo:

Git tiene algunas características interesantes, pero no podrás apreciarlas a menos que ya hayas usado algo más estándar como CVS o Subversion.

Este.Usar git no tiene sentido si no sabes qué puede hacer el control de versiones por ti.

Edición 2:

Acabo de ver este enlace en reddit: Hoja de trucos de subversión.Buena referencia rápida para la línea de comando svn.

Otros consejos

Utilice Subversion, es fácil de configurar, fácil de usar y tiene muchas herramientas.Cualquier sistema de revisión futuro tendrá una función de importación desde SVN, por lo que no es como si no pudieras cambiar en el futuro si tus necesidades crecen.

El Libro de subversión es su mejor opción para aprender la herramienta.Puede que existan otros tutoriales de inicio rápido, pero el libro es la mejor referencia que encontrará.

Git tiene algunas características interesantes, pero no podrás apreciarlas a menos que ya hayas usado algo más estándar como CVS o Subversion.Definitivamente estaría de acuerdo con los carteles anteriores y comenzaría con Subversion.

Si eres nuevo en el control de versiones lee esto:
Control de fuente CÓMO

Elija SVN.Si nunca antes ha utilizado el control de fuente, no le importará de una forma u otra.

Además, no hay una gran cantidad de aprendizaje involucrado en el uso de un sistema de control de código fuente.Si aprende uno, podrá cambiar fácilmente a otro más adelante.

SVN es una gran herramienta y debería satisfacer la mayoría de sus necesidades.Y desde que existe, tiene una buena cantidad de herramientas GUI (TortoiseSVN, por ejemplo).

Elija SVN.

Para obtener una explicación sencilla de la mayoría de los conceptos básicos, consulte Una guía visual para el control de versiones.El artículo es muy compatible con SVN.

He usado RCS, CVS, SCCS, SourceSafe, Vault, perforce, subversion y git.

He evaluado BitKeeper, Dimensions, arch, bazaar, svk, ClearCase, PVCS y Synergy.

Si tuviera que empezar un nuevo repositorio hoy, elegiría git.Manos abajo.

Es gratis, rápido y está en desarrollo activo.

Y puedes usarlo como cliente de cualquier repositorio de Subversion usando git-svn.

Es genial.

@superjoe30

¿Qué tal si usas el control de fuente en tu propia computadora, si eres el único programador?¿Es esta una buena práctica?¿Hay consejos o trucos relacionados?

Creo que git es realmente más fácil para esto, ya que no necesitas un servidor ni te preocupas por ingresar URL, etc.Tu material de control de versiones simplemente vive en el .git directorio dentro de tu proyecto y simplemente continúa y úsalo.

Introducción de 5 segundos (suponiendo que la hayas instalado)

cd myproject
git init
git add * # add all the files
git commit

La próxima vez que hagas algunos cambios.

git add newfile1 newfile2 # if you've made any new files since last time
git commit -a

Mientras hagas eso, git te respalda.Si te equivocas, tu código está seguro en el bonito repositorio de git.Es impresionante

  • Nota:Puede que le resulte un poco más difícil sacar cosas de git que introducirlas, ¡pero es mucho más preferible tener ese problema que no tener los archivos en absoluto!

Según mi propia experiencia, no recomendaría git como introducción al control de versiones.Lo he estado usando durante un par de meses y mi impresión es que es muy poderoso y, ahora que lo entiendo parcialmente, razonablemente intuitivo.Sin embargo, la curva de aprendizaje es muy pronunciada, a pesar de que he estado usando el control de versiones durante años.También adolece de ser demasiado expresivo: admite muchos flujos de trabajo y modelos de desarrollo diferentes, pero la única guía sobre "la mejor" forma de usarlo son unas pocas páginas en una búsqueda en Google, lo que también hace que sea complicado para un recién llegado elegir arriba.

Dicho esto, es posible que empezar desde cero con git sea realmente más fácil: mi experiencia con VCS se basa en el control de versiones centralizado (CVS, SVN, Perforce...) y parte de mis (¡continuas!) dificultades con git han sido comprender las implicaciones del modelo distribuido.Eché un vistazo breve a otros DVCS como Bazaar y Mercurial y parecían ser algo más amigables para los novatos.

De todos modos, como han dicho otros, Subversion es probablemente la forma más fácil de acostumbrarse a la mentalidad de control de versiones y obtener experiencia práctica de los beneficios de VCS (reversión, ramas, desarrollo colaborativo, revisión de código más sencilla, etc.).

Ah, y no empieces con CVS.Todavía está en uso práctico y tiene ventajas, pero en mi humilde opinión tiene demasiadas peculiaridades históricas y problemas de implementación (¡compromisos no atómicos!) para ser una buena forma de aprender.

Mi voto es para Subversion.Es muy potente, pero fácil de usar, y tiene excelentes herramientas como TortugaSVN.

Pero como otros han dicho antes que yo, SIMPLEMENTE COMIENCE A USARLO.El control de código fuente es una parte muy importante del proceso de desarrollo de software.Ningún proyecto de software "serio" debería prescindir de él.

En mi trabajo actual, mi predecesor no utilizaba ningún tipo de control de versiones.Solo hay montañas de carpetas en al menos 3 lugares diferentes donde guardaba todos sus proyectos.Se puede esperar que cualquier carpeta de proyecto aleatoria encuentre al menos un nombre de carpeta "proyecto (ANTIGUO)" y otro llamado "proyecto"

Con el control de versiones, nunca tendrás que hacer copias de compilaciones "seguras".Realmente no tienes que preocuparte de que tu IDE corrompa el archivo en el que estás trabajando (te estoy mirando, REALBasic 5.5) porque es muy fácil de confirmar (Leer:Guarde) su trabajo todos los días.

No hace falta decir que instalé el control de versiones el día después de que descubrí que existía.

Además, TortoiseSVN hace que acceder a la base de datos sea tan fácil como hacer clic derecho en una carpeta.

Pruebe también svn visual para su servidor si desea evitar cualquier trabajo de línea de comando.

Si está en Mac OSX, encontré que http://www.versionsapp.com/">Versions es una increíble interfaz gráfica de usuario (gratuita) para SVN.

Git es superior a Subversion, pero está un poco a la vanguardia.

Yo diría que, si recién estás comenzando, salta al límite;configurar una cuenta gratuita @ http://github.com

Tienen material educativo en el sitio para configurar y usar git.

No esperes.Elige uno y hazlo.Todos los sistemas tendrán sus pros y sus contras.Se te puede cortar la luz, te roban la computadora o te olvidas de deshacer un cambio importante y todo tu código se estropea mientras esperas a ver quién sale victorioso.

No es tan difícil cambiar entre sistemas de control de versiones.Como otros han mencionado, lo importante es empezar a usar cualquier cosa lo antes posible.Los beneficios de utilizar el control de fuente sobre no utilizarlo superan ampliamente los beneficios diferenciales entre los diferentes tipos de control de fuente.

Recuerde que no importa qué versión de control de fuente esté utilizando, siempre podrá realizar una conversión de fuerza bruta a otro sistema colocando los archivos de su sistema anterior en el disco y luego importando esos archivos sin formato al nuevo sistema.

Además, estar familiarizado con los fundamentos del control de código fuente es una habilidad muy, muy importante como desarrollador de software.

Utilice TortoiseSVN (version.app si está en Mac).Simplemente instálelo y listo.Si necesita un lugar para alojar su código, consulte http://beanstalkapp.com/

SubVersion es la mejor opción para usted. Como señaló Karl Seguin, pasar a otro sistema de versiones no sería un problema.Además, SVN tiene GUI muy fáciles de usar en el lado del cliente (TortoiseSVN).

http://www.snee.com/bobdc.blog/2007/08/getting_started_with_subversio.html http://dojo.jot.com/WikiHome/Getting%20Started%20With%20Subversion

Si elige subversion y desea alojar su propio servidor svn, entonces existe un servidor basado en Windows muy agradable y sencillo llamado servidor VisualSVN.Oculta la complejidad de configurar un servidor Apache, básicamente, simplemente pasa al siguiente.La configuración del usuario se maneja con una interfaz de usuario web, en lugar de una configuración

http://www.visualsvn.com/server/

Usar un servidor público como Beanstalk probablemente sea más fácil, pero a algunas personas les gusta tener sus propios repositorios, ya sea por velocidad o seguridad.

Cuando decidí que debía utilizar un sistema de control de versiones de código, busqué buenos tutoriales sobre cómo empezar, pero no encontré ninguno que pudiera ayudarme.

Así que simplemente instalé SVN Server y Tortoise SVN para el cliente, me sumergí en el fondo y no aprendí a usarlos en el camino.

Comience a usar SVN para su trabajo real, pero trate de encontrar tiempo para jugar con Git y/o Mercurial.SVN es razonablemente estable para la producción, pero eventualmente te enfrentarás a un escenario en el que necesidad un SCM distribuido, momento en el cual estará adecuadamente armado y los nuevos sistemas estarán lo suficientemente maduros.

Sí, SVN de preferencia a menos que realmente necesites las características particulares de git.SVN es bastante difícil;Parece que es más complicado vivir con git.Puedes obtener svn alojado de personas como tallo de habichuelas - A menos que tenga personal interno de Linux, realmente lo recomendaría.Las cosas pueden salir mal con mucha facilidad y es bueno tener a alguien más cuyo trabajo sea solucionarlo.

Hay una excelente tutorial sobre control de revisiones de Eric Sink, que vale la pena leer sin importar qué sistema utilice.

superjoe30 escribe:

Pregunta relacionada (quizás las respuestas también se puedan editar para responder a esta pregunta):

¿Qué tal si usas el control de fuente en tu propia computadora, si eres el único programador?¿Es esta una buena práctica?¿Hay consejos o trucos relacionados?

Utilizo SVN para todos mis proyectos personales.Comencé ejecutando svn en la máquina de mi casa pero finalmente migré a Dreamhost.Sus paquetes de alojamiento que incluyen Subversion son bastante razonables.

Si en una caja de Windows, una solución rápida y sucia es CVSNT.Fácil de usar, simplemente configúrelo y funciona muy bien.

Yo prefiero SVN, pero este es bueno para un uso rápido.

Definitivamente elegiría SVN sobre CVS, aunque solo sea porque las personas que aprendieron control de fuente usando CVS tienden a usar "svn delete" entonces "svn add" en lugar de "svn move".Lo que hace que sea más difícil encontrar todas las revisiones anteriores de un archivo específico.Y siempre puedes actualizar para usar git-svn.Personalmente creo que es más fácil de aprender que el hg, pero realmente el principal La razón para usar SVN es que se ha convertido en gran medida en el sistema de control de versiones de facto del software de código abierto.

Si alguna vez planeas aprender/usar D es casi obligatorio acceder a los repositorios de terceros, como DFuente.

@ superjoe30 Sí, absolutamente.Una vez que comienzas a usar el control de versiones, nunca regresas.Lo uso para todo, incluso para mi carpeta "inicio".

@Orion Edwards Subversion no requiere un servidor.Puede acceder a un repositorio local directamente (a través de un cliente, por supuesto) y no hay ningún proceso de servidor involucrado.

Simplemente use TortoiseSVN y podrá vivir incluso sin conocer los comandos reales de Subversion...Pero eso es malo.Afortunadamente, siempre habrá una “gran oportunidad” para aprenderlos de memoria, cuando su valioso repositorio se corrompa por primera vez.

Sí, sucede.

Como se mencionó muchas veces en otros lugares, Just Do It.Pude comenzar desde cero con Subversion en Windows en poco tiempo leyendo la guía de inicio rápido en el Libro Rojo.Una vez que señalé TortoiseSVN al repositorio, estaba en el negocio.Me tomó un tiempo entender los puntos más finos, pero fueron obstáculos menores que superar.

Sugeriría instalar el Servicio Subversion en lugar de usar las URL file://, pero eso es principalmente una preferencia personal.Para un repositorio almacenado en su máquina de desarrollo, file:// funciona bien.

Por experiencia personal, svn sería mi recomendación.Incluso puedes utilizar un servicio como tallo de habichuelas que ofrece cuentas gratuitas (con límites obviamente, pero suficientes para cualquier proyecto pequeño) para probar el terreno.Pero como han dicho otros, git es superior y probablemente valga la pena investigarlo.

Un consejo importante para facilitar la configuración de un servidor SVN en este momento es utilizar un dispositivo virtual.Es decir, una máquina virtual que tiene Subversion preinstalado y (en su mayor parte) preconfigurado, prácticamente una cosa plug & play.Puedes probar aquí, aquí y aquí, o simplemente intente buscar en Google "dispositivo virtual de subversión".

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