%20y%20control%20de%20revisiones.png)
Mantengo la mayoría de los archivos dot de mi directorio personal bajo control de revisión, para poder mover fácilmente los cambios entre cualquiera de las cinco máquinas de escritorio y docenas de servidores que uso. Desafortunadamente, mi ~/.gconf
directorio es un poco molesto cuando se trata de esto, porque a gconfd parece gustarle mucho hacer cambios arbitrarios en los espacios en blanco y, peor aún, actualizar los mtime="..."
atributos de las entradas que no ha cambiado.
¿Alguien tiene alguna idea sobre buenas formas de lidiar con esto? Preferiría nunca tener que realizar cambios en espacios en blanco o cambios de tiempo cuando un valor no ha cambiado, para poder realizar un seguimiento fácil de mis diferencias a lo largo del tiempo.
Respuesta1
En lugar de almacenar el directorio en git, ¿intentaste almacenar un volcado?
gconftool-2 --dump /
Respuesta2
Actualmente examino sólo las diferencias reales usando un programa de diferencias que ignora los cambios de mtime y espacios en blanco:
#!/usr/bin/env ruby
require 'tempfile'
input2 = ARGV.pop || (
$stderr.puts("Usage: gconf-diff [opts] <file> <file>")
exit(1)
)
input1 = ARGV.pop
UNWANTED_PAT = /mtime="\d+"/
def copy_tmp(id, path)
t = Tempfile.new("gconf-diff-#{id}-")
File.open(path).each { |line| t.write(line.gsub(UNWANTED_PAT, '')) }
t.close
t
end
t1 = copy_tmp('1', input1)
t2 = copy_tmp('2', input2)
system('diff', *(ARGV + ['-B', '-b', t1.path, t2.path]))
exit($?.exitstatus)
Tengo subversion y uso esto ejecutando svn diff --diff-cmd gconf-diff ...
. Revertiré archivos que no tienen cambios significativos. Sin embargo, esto es un poco incómodo y no funciona bien con archivos donde sólo uno o dos elementos han cambiado, pero una docena de otros tienen nuevas marcas de tiempo, ya que todos esos cambios aún están confirmados.