2008-08-05 15 views
70

Necesito implementar control de versiones, incluso para el desarrollo que hago en casa. He leído acerca de cuán grande es Subversion en los últimos dos años y estuve a punto de dedicarme a aprender esto de forma paralela hasta que supe que Git era el sistema de control de versiones más avanzado.Comenzar con Version Control

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

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

Además, no le importaría sugerencias sobre cómo comenzar con una u otra. (tutoriales, etc.)

+0

No creo que esto deba tener etiquetas de control de versión específicas. Consideré cambiarlo yo mismo, pero quería saber qué pensaban los demás. –

Respuesta

80

Lo más importante acerca de control de versiones es:

START sólo usarla

No usar el control de versiones es una idea horrible. Si no está utilizando el control de versiones, deje de leer en este momento y empiece a usarlo.

Es muy fácil convertir de

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

No importa que uno elija. Elija la más fácil para que la use y comience a registrar el historial de su código. Siempre puede migrar a otro (D) VCS más tarde.

Si usted está buscando un fácil de usar mirada GUI en TortoiseSVN (Windows) y Versions (Mac) (Sugerido por codingwithoutcomments)


Editar:

pix0r said:

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

Esto. Usar git no tiene sentido si no sabes lo que el control de versiones puede hacer por ti.

Edición 2:

Acabo de ver este enlace en reddit: Subversion Cheat Sheet. Buena referencia rápida para la línea de comando svn.

+0

¿Tiene una gran herramienta en mente para convertir el repositorio de una a la otra? Estoy totalmente de acuerdo con Start Now, pero me pregunto qué tan fácil sería exportar toda la historia y las revisiones de un sistema de VC a otro. –

18

Usa la subversión, es fácil de instalar, 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 pudiera cambiar el camino si sus necesidades crecen.

10

Ir para SVN. Si nunca antes has usado el control de fuente, no te 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 fuente. Si aprende uno, puede cambiar fácilmente a otro en una fecha posterior.

SVN es una gran herramienta, y debería ocuparse de la mayoría de sus necesidades. Y dado que ha existido, tiene una participación justa de herramientas GUI (TortoiseSVN, por ejemplo).

Ir para SVN.

+0

"Si aprende uno, puede cambiar fácilmente a otro en una fecha posterior". <- no es cierto. Muchas personas tienen problemas para ajustar su forma de pensar desde VCS centralizado a VCS distribuido. –

2

No espere. Elige uno y ve con él. Todos los sistemas tendrán sus ventajas y desventajas. Su poder se puede apagar, su computadora es robada, o se olvida de deshacer un cambio importante y todo su código se fríe mientras espera ver quién sale victorioso.

0

Cuando decidí que debía usar 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 instalé simplemente el servidor SVN y el SVN de Tortoise para el cliente y me sumergí en el profundo y no sé cómo usarlo en el camino.

16

El Subversion Book es su mejor apuesta para aprender la herramienta. Puede haber otros tutoriales de inicio rápido, pero el libro es la mejor referencia individual que encontrará.

Git tiene algunas características agradables, pero no podrá apreciarlas a menos que ya haya utilizado algo más estándar como CVS o Subversion. Definitivamente estoy de acuerdo con los carteles anteriores y comienzo con Subversion.

0

Comience a usar SVN para su trabajo real, pero intente hacer tiempo para juguetear con Git y/o Mercurial. SVN es razonablemente estable para la producción, pero finalmente se enfrentará a un escenario en el que necesitará SCM distribuido, momento en el que estará debidamente armado y los nuevos sistemas estarán lo suficientemente maduros.

4

Mi voto va a Subversion. Es muy potente, pero fácil de usar, y tiene algunas excelentes herramientas como TortoiseSVN.

Pero como han dicho otros antes que yo, SOLO COMIENCE A UTILIZARLO. El control de la fuente es una parte tan importante del proceso de desarrollo de software. Ningún proyecto de software "serio" debería estar sin él.

0

Yup, SVN de preferencia a menos que realmente necesite las características particulares de git. SVN es bastante difícil; Parece que es más complicado vivir con git. Puede obtener svn alojado de personas como Beanstalk - a menos que tenga gente interna de Linux, realmente lo recomendaría. Las cosas pueden salir mal horriblemente y es bueno tener a alguien más cuyo trabajo es arreglarlo.

Hay un excelente tutorial en el control de revisión de Eric Sink, que vale la pena leer sin importar qué sistema use.

0

superjoe30 writes:

pregunta relacionada (tal vez respuestas se pueden editar para responder a esta pregunta también):

Qué acerca del uso de control de origen en su propia computadora, si usted es el único ¿programador? Es >> esta buena práctica? ¿Hay consejos o trucos relacionados?

Uso SVN para todos mis proyectos personales.Comencé con la ejecución de svn en mi máquina doméstica, pero finalmente migré a Dreamhost. Sus paquetes de alojamiento que incluyen Subversion son bastante razonables.

3

Si se encuentra en Mac OS X, encontré http://www.versionsapp.com/">Versions ser una increíble (gratis) GUI front-end a SVN.

4

En mi trabajo actual, mi el predecesor no usó ningún tipo de control de versión. Solo hay montañas de carpetas en al menos 3 lugares diferentes donde guardó todos sus proyectos. Se puede esperar que cualquier carpeta de proyecto aleatorio encuentre al menos un nombre de carpeta "project (OLD)" y uno llamado "proyecto"

Con el control de versiones, nunca tienes que hacer copias de compilaciones "seguras". No tienes que preocuparte de que tu IDE corrompa el archivo en el que estás trabajando (estoy buscando en ti, REALBasic 5.5) porque es tan fácil de comprometer (Leer: Sa ve) tu trabajo todos los días.

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

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

1

No es tan difícil cambiar entre los sistemas de control de versiones. Como otros han mencionado, lo importante es comenzar a usar cualquier cosa lo antes posible. Los beneficios de utilizar el control de fuente sobre no usar el control de fuente superan con creces 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 antiguo sistema en el disco y luego importando esos archivos en el nuevo sistema.

Además, estar familiarizado con los fundamentos de control de fuente es una habilidad muy, muy importante para tener como desarrollador de software.

4

Pruebe también visual svn para su servidor si desea evitar el funcionamiento de la línea de comandos.

0

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

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

8

He usado RCS, CVS, SCCS, SourceSafe, Vault, forzado, subversión y git.

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

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

Es gratis, rápido y en desarrollo activo.

Y puede usarlo como cliente de cualquier repositorio de subversión usando git-svn.

Rocas.

5

@ superjoe30

Qué acerca del uso de control de origen en su propia computadora, si usted es el único programador? ¿Es esta una buena práctica? ¿Hay consejos o trucos relacionados?

Encuentro que git es realmente más fácil para esto ya que no necesita un servidor o se preocupa por ingresar las URL, etc. Las cosas de control de versiones solo viven en el directorio .git dentro de su proyecto y usted simplemente continúa y lo usa.

5 segundo intro (suponiendo que haya instalado)

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

La próxima vez que hacer algunos cambios

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

Mientras usted está haciendo eso, Git tiene la espalda. Si te equivocas, tu código está a salvo en el buen repositorio de git. Es impresionante

  • Nota: Es posible conseguir cosas fuera de Git un poco más difícil que entrar en ellos, pero es mucho más preferible tener ese problema de no tener los archivos en absoluto!
+0

Use 'git add .' (agregue * directorio actual *), no' git add * '(use expansión de shell), es más rápido. –

13

Si usted es nuevo en versioncontrol leer esto:
Source Control HOWTO

+0

Eric Sink dice que este libro en línea está un poco desactualizado. –

+0

Hay un libro impreso (y PDF) de Eric Sink, pero no recuerdo la URL de descarga. Aunque el libro es bueno para entender los principios básicos de VCS, no es realmente justo. Más marketing de Veracity que información real. – bahrep

0

sin duda elegir SVN sobre CVS, aunque sólo sea porque las personas que aprendieron control de código fuente usando CVS, tienden a utilizar "svn delete" y luego "svn add "en lugar de" svn move ". Lo que hace que sea más difícil encontrar todas las revisiones previas de un archivo específico. Y siempre puede actualizar a usar git-svn. Personalmente, creo que es más fácil de aprender que hg, pero realmente el motivo principal 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 planea aprender/usar D, es casi obligatorio acceder a los repositorios de terceros, como DSource.

0

@ superjoe30 Sí, absoluteley. Una vez que comienzas a usar el control de versiones, nunca vuelves. Lo uso para todo, incluso mi carpeta de "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 un proceso de servidor involucrado.

0

Simplemente use TortoiseSVN, y puede vivir incluso sin conocer los comandos de Subversion reales ... Pero eso es malo. Afortunadamente, siempre habrá una "gran oportunidad" para aprenderlos de memoria, cuando su repositorio inestimable primero se corrompe.

Sí, sucede.

0

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

Sugiero instalar el servicio de Subversion en lugar de utilizar las URL de archivo: //, pero eso es sobre todo preferencia personal. Para un repositorio almacenado en su máquina de desarrollo, file: // funciona bien.

+0

El uso de las URL de archivo: // en un entorno multiusuario generalmente no es la idea más segura porque la forma en que se accede a los archivos es * mucho * más probable que se corrompan. Dado que es tan simple configurar un servidor de Subversion, realmente no necesita usar file: //. Una vez dicho esto, he * usado * file: // para proyectos en los que era el único desarrollador, en cuyo caso funcionó maravillosamente. –

3

Git es superior a la subversión, pero está un poco agotado.

Yo diría, 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 & usando git.

+0

_Sus palabras veo la injusticia._ Git NO es superior en comparación con Subversion. Git es un DVCS que se puede considerar "el más adecuado para el desarrollo de código abierto" y la característica más atractiva es que puede bifurcar un proyecto rápidamente. ** Subversion es un CVCS que es mucho más maduro y estable que Git **. – bahrep

1

Utilice TortoiseSVN (version.app si está en mac). Solo instala y listo. Si necesita un lugar para alojar su código, mire http://beanstalkapp.com/

0

Por experiencia personal, svn sería mi recomendación. Incluso puede usar un servicio como Beanstalk que ofrece cuentas gratuitas (con límites evidentes, pero suficientes para cualquier proyecto pequeño) para probar las aguas. Pero como otros han dicho, git es superior y es probable que valga la pena investigarlo.

-1

Respuesta corta: Subversion si eres el único que la codifica o estás en el sitio con todas las personas con las que trabajas. GIT si trabajas con personas en diferentes sitios y tu base de códigos es enorme.

Subversion es realmente, muy fácil de configurar y usar. También es bueno porque también puedes hacer cosas relativamente complicadas con él, como conectarlo a Apache y usar SSL o conectarlo a Trac para la administración del proyecto. Hay tantas herramientas disponibles para Subversion que es realmente una buena opción.

GIT es mucho más útil para las personas que forman parte de equipos grandes que trabajan en un entorno distribuido. Linus T. lo desarrolló para el equipo de Linux porque no estaba satisfecho con las capacidades de los repositorios tradicionales. Bien vale la pena aprender si alguna vez planea trabajar con personas en proyectos de código abierto.

0

Coding Horror tiene una gran publicación sobre how to set up Subversion on Windows.

Siguiendo el tutorial, pude ejecutar Subervsion y TortoiseSVN localmente y obtuve la educación que necesitaba.

Por lo que respecta a Git, probablemente sea una buena idea hacer un experimento práctico con los dos, para comprender cuál se ajusta a su práctica de desarrollo específica.

0

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 una subversión preinstalada y (en su mayoría) preconfigurada en ella, más o menos una cosa de jugar &. Puede probar here, here y here, o simplemente intente buscar en Google en "dispositivo virtual subversion".

0

Empecé a usar subversión después de leer el blog de Wil Shipleys.

Así que comencé a registrar el código, una máquina y la cuenta de Dreamhost. Luego, después de que accidentalmente borré una función y guardé mi proyecto, supe que estaba en un "dudu" profundo, pero con la subversión simplemente revisé la última versión de ese archivo y fue como si nada hubiera pasado.

Uso el control de versiones para todo ahora. Estoy planeando mudarme a git porque es más rápido, funciona sin conexión, ocupa menos espacio y oh chico es más rápido.

1

Si usted decide ir con la subversión y que desea alojar su propio servidor SVN, entonces no es un servidor basado muy agradable y fácil de Windows llamado servidor de VisualSVN. Oculta la complejidad de configurar un servidor Apache, básicamente, pasa al siguiente. configuración de usuario se maneja con un webUI, en lugar de una configuración

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

usando un público sirven planta de frijoles RLIKE es probablemente más fácil, pero algunas personas les gusta tener sus propios repositorios, ya sea para la velocidad o la seguridad

5

Desde mi propia experiencia con él, no recomendaría git como introducción al control de versiones. Lo he estado utilizando durante un par de meses y tengo la impresión de que es muy poderoso y, ahora que lo entiendo parcialmente, es bastante intuitivo. Sin embargo, la curva de aprendizaje es muy pronunciada, aunque 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 está a unas pocas páginas de una búsqueda en Google, lo que también dificulta que un recién llegado elija arriba.

Dicho esto, es posible que comenzar desde una pizarra en blanco con git sea más fácil: mi experiencia VCS es todo con control de versión centralizada (CVS, SVN, Perforce ...) y parte de mi dificultad (¡en curso!) con git ha estado comprendiendo las implicaciones del modelo distribuido. Eché un vistazo brevemente a otros DVCS como Bazaar y Mercurial y parecían un poco más amigables para los novatos.

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

Ah, y no empieces con CVS. Todavía es de uso práctico y tiene ventajas, pero en mi humilde opinión tiene demasiados caprichos históricos y problemas de implementación (¡compromisos no atómicos!) Como una buena forma de aprender.

0

Una razón importante para usar svn en lugar de cvs es que svn admite diffs binarios. Puede que eso no le importe a muchos programadores, pero si está haciendo una serie de cambios menores en una imagen de 10Mb, tener una copia única cada vez en su repositorio puede masticar espacio notablemente rápido.

Uso TortoiseSVN en Windows, pero en la Mac he optado por el cliente comercial CornerStone sobre el cliente de versiones (ahora comercial). Encontré que la gama de clientes de Mac gratuitos, incluido RapidSVN, tenía suficientes puntos débiles para molestarme y desembolsar dólares reales. La red de seguridad que CornerStone proporciona para capturar archivos que olvidé agregar al repositorio me vale los dólares. ¡Dedico mucho tiempo a colaborar con un cliente estadounidense que se encuentra en un huso horario opuesto, por lo que no puedo permitirme perder el tiempo olvidándome de agregar archivos!