2011-03-17 15 views
5

Me gustaría leer el código fuente de una de las herramientas de control de revisiones para aprender cómo funciona el control de revisiones. Me gustaría leer el que es más legible.Comprensibilidad de bases de código fuente de git, mercurial, bazar

No conozco una medida objetiva y cuantitativa de esto, así que en el espíritu del WTFs/min comic, me gustaría preguntar a aquellos que han leído los códigos fuente de estas herramientas, ¿cuántas WTF/min? estima que cada proyecto tiene?

+0

Antes de comenzar a bucear en la fuente, recomendaría leer la documentación disponible. Explica los conceptos básicos, y a menudo es más útil para comprender los principios que el código. –

Respuesta

5

Si lee C bien (y algunos Perl y bash también), adymitruk es correcto. Git es una buena elección.

Sin embargo, si está más cómodo con Python, lea la fuente de Mercurial. Muchos de los WTF/min se derivan de su familiaridad con el lenguaje y el estilo en que está escrito el DVCS. Git está escrito en C, Perl y Bourne shell, Mercurial es Python (con un poco de C IIRC) y Bzr está escrito en Python, Pyrex y C.

También querrá tener en cuenta qué es su herramienta de su elección. Si usa Git, comprenderá qué está implementando cada archivo. Del mismo modo con Mercurial o Bzr.

Básicamente, al elegir qué herramienta o idioma usar (o estudiar), un buen axioma es este: vaya con lo que sabe. Está intentando aprender cómo implementar un DVCS, no cómo usar un sistema o idioma en particular :)

+0

La estructura jerárquica de los comandos de git hace que sea más fácil aprender: sintaxis a un lado –

2

Git es su mejor opción porque está en capas. Los comandos se basan en comandos de nivel inferior. Esto te permitirá entender lo que sucedería conceptualmente. Puede implementar comandos usted mismo desde los niveles inferiores. Finalmente, implemente los de bajo nivel para manipular los archivos ellos mismos.

Git fue diseñado pensando mucho en él y le dará la mejor avenida de aprendizaje.

Además, eche un vistazo a las publicaciones internas y los guiones de Scott Chacon.

+1

Una nota: si quieres leer la fuente de Git, asegúrate de comprender C, Perl y bash. –

4

¿Qué puede ser mucho mejor que Python en el contexto de un código comprensible y hermoso?

Go for Mercurial. Yo lo he hecho y es absolutamente encantador :)

1

Antes de entrar en el código es útil para obtener primero una visión general de arquitectura saber dónde bucear en Para bazar de la siguiente podría ayudar:. http://doc.bazaar.canonical.com/bzr.2.3/en/user-guide/core_concepts.html http://doc.bazaar.canonical.com/bzr.2.3/developers/overview.html

Encontré la base de código de bazar bien organizada, limpia y legible, probablemente porque es python y cada cambio de código se revisa , por lo que la documentación del código normalmente se modifica según la revisión, que en general aclara mucho las cosas. Si te quedas atascado siempre puedes preguntar por el IRC o por la lista de correo, pero no he necesitado hacer tanto.

0

Me pregunto cuánto valor hay en ver malos ejemplos, para tener una idea de lo que no se debe hacer, en lugar de solo mirar buenos ejemplos. Nunca he visto la fuente de Subversion o CVS, pero podría valer la pena revisarlos y comprender por qué no funcionan tan bien como los DVCS que mencionaste.

Cuestiones relacionadas