Gnome

Gnome 系統資料庫 (~/.gconf) 和修訂控制

  • July 17, 2009

我將我的主目錄的大部分點文件都置於修訂控制之下,這樣我就可以輕鬆地在我使用的五台左右台式機和數十台伺服器之間移動更改。不幸的是,我的~/.gconf目錄在這方面有點痛苦,因為 gconfd 似乎真的很喜歡進行任意空白更改,更糟糕的是,更新mtime="..."它沒有更改的條目的屬性。

有沒有人對處理這個問題的好方法有任何想法?當值沒有改變時,我寧願永遠不必送出空格更改或時間更改,這樣我就可以輕鬆地跟踪我的差異隨著時間的推移。

我目前使用忽略 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)

我通過執行顛覆來使用它svn diff --diff-cmd gconf-diff ...。我還原沒有重大變化的文件。但是,這有點尷尬,並且不能很好地處理只有一兩個項目已更改的文件,但其他十幾個具有新時間戳的文件,因為所有這些更改仍被送出。

您是否嘗試儲存轉儲而不是將目錄儲存在 git 中?

gconftool-2 --dump /

引用自:https://serverfault.com/questions/36919