¿cómo funciona el control de versiones? ¿Guarda archivos diff como un camino con hashes para validar el camino?¿Cómo funciona el control de versiones?
Respuesta
Diferentes VCS utilizan diferentes enfoques. CVS, por ejemplo, creará un archivo en el servidor para cada archivo que usted confíe. Esto es esencialmente un archivo en formato RCS; CVS es solo una envoltura alrededor de RCS que ejecuta los comandos de RCS sobre muchos archivos en un subárbol de directorio (RCS solo puede trabajar en archivos individuales).
El archivo RCS contiene una lista de cambios (número de versión, mensaje de verificación y cuánto se modificó). Luego viene una copia de la versión HEAD actual. El resto de los archivos son los diffs entre las versiones (long explanation).
De esta manera, CVS puede devolver rápidamente la versión HEAD (que se solicita con más frecuencia) y puede calcular las otras versiones.
CVS no realiza ninguna validación; si uno de sus archivos se daña, necesita una copia de seguridad. Como CVS se basa en RCS, no puede versionar directorios ni puede rastrear nombres. CVS y RCS usan el comando estándar diff(1)
para crear los diffs.
Subversion (SVN) funciona de manera similar pero agrega control de versiones de directorios y cambia el nombre. Además, SVN usa un mejor algoritmo de diferencias (xdelta) que proporciona un repositorio más pequeño.
Echa un vistazo Eric Sinks blog series on version control.
Además, Joel Spolsky escribió Hg Init: a Mercurial tutorial, que finalmente me hizo "entender" de qué se trata el control de fuente distribuida.
Hay más de una forma de pelar un gato ...
Darcs es muy diferente y en mi humilde opinión más intuitiva que otros SCM incluso distribuidos. Hay una excelente guía para principiantes sobre cómo funciona: Understanding Darcs.
- 1. ¿Cómo funciona el control de versión monodesarrollo?
- 2. Cómo funciona el control de versiones semántico en el flujo de trabajo de git
- 3. ¿Cómo maneja el buffer de protocolo el control de versiones?
- 4. ¿Cómo usar el control de versiones con el código VBA?
- 5. práctica de control de versiones
- 6. ¿Cómo se organiza el repositorio de control de versiones?
- 7. Control de versiones para gráficos
- 8. Cómo usar el control de versiones con JasperReports
- 9. Cómo deshabilitar el control de versiones en CouchDB?
- 10. MEF Dependencias y control de versiones
- 11. Control de versiones para scripts de shell
- 12. Control de versiones de cuadernos de Mathematica
- 13. Estrategias de control de versiones de CMS para el contenido
- 14. Control de versiones de archivos MDF
- 15. Control de versiones para documentos Word
- 16. Control de versiones para InterSystems Ensemble/Caché
- 17. Patrones de control de versiones de objetos
- 18. Control de versiones y Android Library Projects
- 19. estrategia de control de versiones CouchDB
- 20. "Mejor práctica" de control de versiones
- 21. Control de versiones de un objeto Ruby
- 22. Solución de control de versiones de rieles
- 23. ¿Sistemas de control de versiones simultáneas múltiples?
- 24. Umbraco: ¿trabajando con el control de versiones? prueba/producción?
- 25. Cambiar el control de versiones en iTunes connect
- 26. Seguimiento de archivos de Excel en el Control de versiones
- 27. Mejores prácticas para el control de versiones con proyectos múltiples
- 28. Ejemplos de cómo visualizar un sistema de control de versiones?
- 29. Control de versiones de NetBeans para newb?
- 30. SQLite, iPhone y control de versiones