2008-08-12 14 views
19

¿Dónde debería comenzar a aprender sobre los sistemas de control de versiones? He usado SVN, Team Foundation y Sourcesafe en el pasado, pero realmente no siento que lo entiendo completamente, y mi equipo tampoco parece entenderlo.Aprendizaje de control de versiones, y aprenda bien

¿Qué puntos son los más importantes para dominar? Me doy cuenta de que esto difiere de VCS a VCS, pero por el bien de esta pregunta podemos suponer que Subversion es el VCS que más me interesa conocer.

Además, si puede, recomiende cualquier libro sobre el tema que le parezca útil.

+0

sería 'aprenderlo bien', no 'aprenderlo bueno'. No puedo creer que los mods hayan pasado por alto esto. –

Respuesta

10

El artículo de wikipedia sobre control de versiones es un gran lugar para comenzar

Revision control

Cuando se trata de enseñar a mis colegas, me encontré conseguir él entender el vocabulario en Al final fue una excelente manera de comenzar a introducirlo en las técnicas de control de código fuente.

¿No sabes qué es una sucursal? Ve a buscar y cómo funcionan :)

Hay un libro de subversión en línea gratis en Version Control with Subversion que proporciona una referencia inestimable.

0

Echa un vistazo GIT. Una charla sobre él here.

1

Para responder a su pregunta sobre: ​​¿Cuáles son los puntos más importantes para dominar? Le sugiero que, después de completar todo el proceso de comprobación y extracción, volviendo a las versiones anteriores y realizando diffs, consulte las ramificaciones. La ramificación puede ayudarlo a lidiar con el dolor de estar en medio de un gran cambio y repentinamente necesita realizar una solución de error y desplegarlo en la producción sin la mezcla en la mitad de las cosas en las que está trabajando.

1

Creo que la documentación de Subversion es un buen lugar para comenzar. Descubrí que Wikipedia realmente no ayuda, ya que solo cubre un punto de vista "fundamental".

En el Subversion Book que Alex menciona, yo recomiendo especialmente el capítulo 1, a pesar de que podría estar en un nivel que es demasiado bajo si ya tiene alguna experiencia con SVN. El Capítulo 4 cubre la bifurcación y la fusión en detalle, pero es bastante técnico.

Lo que me ayudó mucho es la Guía de uso diario en la documentación de TortoiseSVN; cubre las operaciones más importantes en un estilo tutorial.

supongo que las cosas más importantes que debe comprender están diversificando, la fusión y el etiquetado.Comprenderlos requiere tiempo y práctica, por lo que recomiendo encarecidamente un proyecto de mascota pequeña en un repositorio local, para que pueda experimentar. Creo que es importante darse cuenta de que todo el sistema está basado en diferencias: una fusión no es más que aplicar automáticamente los cambios que se han realizado en una rama al código en otra rama, en lugar de corregir el código usted mismo. Cosas como conflictos (que me tomaron bastante tiempo entender) son solo consecuencias de eso.

Pero, por supuesto, todavía estoy aprendiendo, así :)

6

creo que los puntos más importantes que uno tiene que aprender con respecto a los sistemas de control de origen son los siguientes:

  • el valor de los pequeños, frecuentes registros de entrada/compromete
  • etiquetado, ramas y la mezcla
  • reversiones
  • resolución de conflictos
  • exclusivos frente a la caja no exclusiva
  • de integración continua
  • basado en pruebas de desarrollo & pruebas unitarias automatizadas sistemas de control vis a vis de código
  • bifurcan

Si usted tiene estos conceptos principales cubierto, esa es prácticamente la mayoría de las cosas que necesitará saber para el control de origen :)

1

También, como usted, nunca me sentí realmente cómodo con SVN o SourceSafe.

Echa un vistazo Mercurial. Quickstart y Cheatsheets
también una gran cheat sheet from DongWoo Lee (su sitio parece abajo de modo he escaneado y subido a la mía)

Con Mercurial todo parecía mucho más suave y fácil sin saber por qué, ya que no es tan diferente en los comandos a los demás.

1

No estoy seguro de la cantidad de experiencia que tiene con los sistemas de control de versiones, pero para alguien que no tiene conocimientos previos sobre el concepto, le recomiendo leer los primeros capítulos del Subversion book. Algunas de las cosas descritas allí son específicas de Subversion, pero muchos de los conceptos son "universales" para los sistemas de control de versiones y cómo trabajar con ellos.

Creo que es muy importante que la gente haga un esfuerzo para tratar de comprender los conceptos principales y las razones detrás de los sistemas de control de versiones antes de comenzar a usarlos. Demasiado a menudo veo que los desarrolladores solo usan un pequeño subconjunto de las características de su sistema porque no entienden los conceptos subyacentes y, por lo tanto, no ven el sentido de usar lo que consideran características "avanzadas" o "innecesarias", o son simplemente temeroso de hacerlo por miedo a romper algo o causar problemas para el proyecto.

Al haber experimentado este fenómeno con muchos desarrolladores en el pasado, recientemente escribí un resumen de lo que considero best practices for version control en mi blog.

0

en mi humilde opinión, el mejor recurso para la Gestión de la Configuración de red sería The ACME Project por Brad Appleton

Debe leer sobre todos los patrones y los patrones de SCM Anti. Todos los términos técnicos de SCM están bien definidos en este sitio y hay muchos artículos sobre técnicas de ramificación, SCM ágil y otras cosas importantes.

Esto, probablemente, le dará suficiente formación teórica para manejar cualquier herramienta de versión específica.

En cuanto a un libro de Subversion, es probable que sea el oficial Subversion book que se mencionó anteriormente. Está disponible en línea de forma gratuita o puede comprar una copia impresa.

0

en mi humilde opinión, esto es THE book: libro de Berczuk en los patrones de SCM

Cuestiones relacionadas