%20%E5%92%8C%E4%BF%AE%E8%A8%82%E6%8E%A7%E5%88%B6.png)
我將主目錄的大部分點檔案置於修訂控制之下,以便我可以輕鬆地在我使用的五台左右桌上型電腦和數十台伺服器中的任何一台之間移動變更。不幸的是,我的~/.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 ...
。我恢復沒有重大更改的檔案。但是,這有點尷尬,並且不能很好地處理僅更改一兩個項目但其他十幾個項目具有新時間戳的文件,因為所有這些更改仍然已提交。