Gnome 레지스트리(~/.gconf) 및 개정 제어

Gnome 레지스트리(~/.gconf) 및 개정 제어

나는 내 홈 디렉토리의 도트 파일 대부분을 개정 제어 하에 유지하므로 내가 사용하는 5대 정도의 데스크톱 컴퓨터와 수십 대의 서버 간에 변경 사항을 쉽게 이동할 수 있습니다. 불행하게도, ~/.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)

나는 이것을 실행하여 전복을 사용합니다 svn diff --diff-cmd gconf-diff .... 큰 변화가 없는 파일을 되돌립니다. 그러나 이것은 약간 어색하며 한두 개의 항목만 변경된 파일을 잘 처리하지 못하지만 다른 항목 12개에는 모든 변경 사항이 여전히 커밋되므로 새로운 타임스탬프가 있습니다.

관련 정보