Registro de Gnome (~/.gconf) y control de revisiones

Registro de Gnome (~/.gconf) y control de revisiones

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 ~/.gconfdirectorio 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.

información relacionada