3 votes

Registre Gnome (~ /.gconf) et contrôle de révision

Je garde la plupart des fichiers de configuration de mon répertoire personnel sous contrôle de révision, afin de pouvoir facilement déplacer des modifications entre n'importe quel des cinq ou six ordinateurs de bureau et des dizaines de serveurs que j'utilise. Malheureusement, mon répertoire ~/.gconf est un peu pénible à gérer à cause de cela, car gconfd semble vraiment aimer apporter des changements arbitraires d'espacement et, pire encore, mettre à jour les attributs mtime = "..." sur des entrées qu'il n'a pas modifiées.

Est-ce que quelqu'un a des idées sur de bonnes façons de gérer cela? Je préférerais ne jamais avoir à valider les changements d'espacement ou de temps lorsque la valeur n'a pas changé, afin de pouvoir facilement suivre mes différences au fil du temps.

3voto

Tom Wilkinson Points 775

Plutôt que de stocker le répertoire dans git, avez-vous essayé de stocker un dump?

 gconftool-2 --dump /

2voto

scottc Points 201

Je examine actuellement uniquement les vraies différences en utilisant un programme diff qui ignore les modifications mtime et de l'espace :

#!/usr/bin/env ruby

require 'tempfile'

input2 = ARGV.pop || (
    $stderr.puts("Utilisation : gconf-diff [opts]  ")
    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)

J'ai configuré subversion pour utiliser ceci en exécutant svn diff --diff-cmd gconf-diff .... Je rétablis les fichiers qui n'ont pas de modifications significatives. Cependant, c'est un peu maladroit et ne gère pas bien les fichiers où un ou deux éléments ont changé, mais une douzaine d'autres ont de nouveaux horodatages, car toutes ces modifications sont quand même validées.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X