Altenwald Blog
Blog sobre programación, software libre, redes, servidores, ...
Menú
Acerca de... ¿Quiénes somos? RSS
Categorías
sistemas (70) desarrollo (128) historias (25) productividad (49) seguridad (10) libros (25) noticias (45) opinión (35) humor (3)
Etiquetas
programación (111) desarrollo de software (79) erlang (75) opinión (37) noticia (36) libros (28) servidores (26) desarrollo web (24) base de datos (24) administración de sistemas (23) php (22) desarrollo ágil (22) empresa (21) otp (20) ruby (19) ingeniería de negocio (18) elixir (18) desarrollo profesional (16) redes (16) seguridad (14)
2009-01-12
3 min productividad
Sistemas de Control de Versiones: ¿Centralizados o Distribuidos?
[ desarrollo de software ]  [ scm ] 

Desde hace tiempo, la tendencia de uso de los sistemas de control de versiones, ha sido el uso centralizado mediante sistemas tan populares como CVS o Subversion. Ahora, desde que muchos grandes proyectos optaran por los sistemas de control de versiones distribuidos, cada vez hay más gente que se va cambiando a ellos y, sobre todo, proyectos grandes.

¿Será que es mejor el enfoque distribuido al centralizado?

Vamos a verlos ambos para llegar a una determinación, o al menos una leve explicación del porqué del cambio.

Enfoque Centralizado

Cuando se desarrollaron los sistemas de control de versiones, muchos de ellos se hicieron en esquema cliente-servidor, con lo que el desarrollo de las herramientas está claramente diferenciado entre:

¿Qué limitaciones y características posee? Haremos una breve lista:

Enfoque Distribuido

Desarrolladores como Linus Torvalds, Eric S. Raymond y otros más, han desarrollado sistemas distribuidos de control de versiones tales como git, Baazaar, Mercurial, darcs, ... estos sistemas se destacan por haber sido desarrollados en un formato distribuido, esto quiere decir que, en sí, no hay un servidor que mantenga una copia del repositorio, sino que está mantenida entre los clientes que estén en uso del repositorio y, al igual que los clientes P2P, mientras más desarrolladores haya conectados, mejor conectividad habrá entre todos.

Esto da una serie de ventajas al sistema centralizado, como son:

Conclusiones

Después de ver las ventajas, desventajas y características de cada uno, vemos que el uso de los sistemas distribuidos es más indicado, sobre todo, para proyectos con gran afluencia de desarrolladores. Por lo que, tenemos nuestra explicación al hecho del cambio de modelo en los grandes proyectos.

Autor
Manuel Rubio
Programación Concurrente & Erlanger