Breadcrumbs
Inicio / Tips AdminLinux: Adiós a los .old .bkp .dateTips AdminLinux: Adiós a los .old .bkp .date
Last Updated on lunes, 12 abril 2010 10:38 Written by macuriel viernes, 9 abril 2010 09:27
Hoy he intentado acordarme de la buena práctica que realizaba cuando modificaba ficheros de configuración, y cómo se suele hacer. Creo que todos hemos visto ficheros con sufijos del tipo .old, .orig, .bkp, .fecha que sirven de pseudo-backup de un fichero importante de configuración.
No voy a entrar a valorar si este método es bueno o malo, porque deberíamos evaluar otros factores como si la máquina es administrada por varios admins, si es un servidor crítico, si realmente queda documentada esa nomenclatura, etc…
Pero si quiero mencionar, y poner algún ejemplo de una metodología que si es estándar, y que hay un probabilidad muy elevada de encontrarla en casi cualquier sistema GNU/Linux: RCS utils. Con este sistema, tendremos un control de versiones con todas sus ventajas aplicado a un único fichero sin crear ni configurar nada adicional (ni repositorios, ni demonios, ni dependencias de servicios), solo instalando el paquete necesario rcs. Es raro que no esté instalado.
Esta información ha sido obtenida de RCS Intro – http://www.daemon-systems.org/man/rcsintro.1.html
¿Qué operaciones se suelen realizar con más frecuencia en un sistema de control de versiones?
- Crear ficheros nuevos
- Modificar fichero existentes
- Bloquear para evitar modificaciones concurrentes
- Controlar versiones, y adjuntar comentarios para ver de forma rápida este Changelog
- Comprobar diferencias entre versiones
- Recuperar cualquier versión
- Controlar el quién y el cuando de una modificación de fichero a lo largo de su vida
Basándonos en esta pequeña lista, pondré los dos comandos que nos permitirán realizarlas:
co y ci
Sigue leyendo para ver los ejemplos …
Ejemplos:
$ vi fichero1 #Guardamos cambios
$ ci -u fichero 1 #Con esto creamos la primera revisión, y nos pedirá introducir un comentario con un breve resumen del contenido del fichero
A partir de este momento, tendremos dos ficheros parecidos: fichero1 y fichero1,v. Este segundo fichero contendrá todo el control de versiones, no será necesario nada más. El parámetro -u sirve para no borrar la copia local. En los sucesivos ci que hagamos, nos pedirá introducir un comentario, pero en este caso hará referencia a los cambios que hayamos realizado.
$ co -l fichero1 # Realizará un checkout, es decir obtendrá una copia de la última revisión del fichero, y además la bloquea por el -l.
A partir de este momento, estos dos comando serán los que más utilicemos para usar RCS sobre fichero concretos. Posteriormente podremos utilizar parámetros como -r1.24 para indicarle a mano la revisión con la que se guardará el fichero, o la revisión que se obtendrá.
Podremos utilizar rcsdiff para ver las diferencias entre dos revisiones, o el comando rlog para ver toda la evolución del fichero con sus comentarios. Existen muchas más opciones, y quiero remitiros al enlace que puse en el artículo para que comprobéis las que más se ajustarán a vosotros.