Gnome 注册表 (~/.gconf) 和版本控制

Gnome 注册表 (~/.gconf) 和版本控制

我将主目录中的大部分点文件置于修订控制之下,这样我就可以轻松地在我使用的五台左右台式机和数十台服务器之间移动更改。不幸的是,我的~/.gconf目录在这一点上有点麻烦,因为 gconfd 似乎真的很喜欢随意更改空格,更糟糕的是,更新mtime="..."它没有更改的条目的属性。

有人有关于处理这个问题的好方法吗?当值没有改变时,我宁愿永远不必提交空格更改或时间更改,这样我就可以轻松地跟踪随时间变化的差异。

答案1

您是否尝试过存储转储,而不是将目录存储在 git 中?

 gconftool-2 --dump /

答案2

我目前仅使用忽略 mtime 和空格变化的 diff 程序来检查真正的差异:

#!/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)

我让 subversion 通过运行 来使用它svn diff --diff-cmd gconf-diff ...。我恢复没有重大更改的文件。但是,这有点尴尬,并且不能很好地处理只有一两个项目发生变化但其他十几个项目有新时间戳的文件,因为所有这些更改仍处于提交状态。

相关内容