[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Rdiff-backup-commits] rdiff-backup CHANGELOG rdiff_backup/metadata.py..
From: |
dean gaudet |
Subject: |
[Rdiff-backup-commits] rdiff-backup CHANGELOG rdiff_backup/metadata.py... |
Date: |
Sun, 05 Nov 2006 01:24:52 +0000 |
CVSROOT: /cvsroot/rdiff-backup
Module name: rdiff-backup
Changes by: dean gaudet <dgaudet> 06/11/05 01:24:52
Modified files:
. : CHANGELOG
rdiff_backup : metadata.py rpath.py
Log message:
Preserve Mac OS X 'Creation Date' field across backups. (Patch from
Andrew
Ferguson.)
CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/rdiff-backup/CHANGELOG?cvsroot=rdiff-backup&r1=1.183&r2=1.184
http://cvs.savannah.gnu.org/viewcvs/rdiff-backup/rdiff_backup/metadata.py?cvsroot=rdiff-backup&r1=1.25&r2=1.26
http://cvs.savannah.gnu.org/viewcvs/rdiff-backup/rdiff_backup/rpath.py?cvsroot=rdiff-backup&r1=1.100&r2=1.101
Patches:
Index: CHANGELOG
===================================================================
RCS file: /cvsroot/rdiff-backup/rdiff-backup/CHANGELOG,v
retrieving revision 1.183
retrieving revision 1.184
diff -u -b -r1.183 -r1.184
--- CHANGELOG 5 Nov 2006 01:19:01 -0000 1.183
+++ CHANGELOG 5 Nov 2006 01:24:52 -0000 1.184
@@ -1,6 +1,9 @@
New in v1.1.6 (????/??/??)
--------------------------
+Preserve Mac OS X 'Creation Date' field across backups. (Patch from Andrew
+Ferguson.)
+
Set symlink permissions properly. (Patch from Andrew Ferguson.)
Selection fix: empty directories could sometimes be improperly
Index: rdiff_backup/metadata.py
===================================================================
RCS file: /cvsroot/rdiff-backup/rdiff-backup/rdiff_backup/metadata.py,v
retrieving revision 1.25
retrieving revision 1.26
diff -u -b -r1.25 -r1.26
--- rdiff_backup/metadata.py 29 Jan 2006 22:16:05 -0000 1.25
+++ rdiff_backup/metadata.py 5 Nov 2006 01:24:52 -0000 1.26
@@ -70,6 +70,7 @@
retvalparts.append('type:%s' % binascii.hexlify(cfile['type']))
retvalparts.append('location:%d,%d' % cfile['location'])
retvalparts.append('flags:%d' % cfile['flags'])
+ retvalparts.append('createDate:%d' % cfile['createDate'])
return '|'.join(retvalparts)
def string2carbonfile(data):
@@ -87,6 +88,8 @@
retval['location'] = (int(a), int(b))
elif key == 'flags':
retval['flags'] = int(value)
+ elif key == 'createDate':
+ retval['createDate'] = int(value)
return retval
def RORP2Record(rorpath):
Index: rdiff_backup/rpath.py
===================================================================
RCS file: /cvsroot/rdiff-backup/rdiff-backup/rdiff_backup/rpath.py,v
retrieving revision 1.100
retrieving revision 1.101
diff -u -b -r1.100 -r1.101
--- rdiff_backup/rpath.py 5 Nov 2006 01:19:02 -0000 1.100
+++ rdiff_backup/rpath.py 5 Nov 2006 01:24:52 -0000 1.101
@@ -1212,6 +1212,8 @@
if not cfile: return
log.Log("Writing carbon data to %s" % (self.index,), 7)
from Carbon.File import FSSpec
+ from Carbon.File import FSRef
+ import Carbon.Files
import MacOS
fsobj = FSSpec(self.path)
finderinfo = fsobj.FSpGetFInfo()
@@ -1220,7 +1222,16 @@
finderinfo.Location = cfile['location']
finderinfo.Flags = cfile['flags']
fsobj.FSpSetFInfo(finderinfo)
+
+ """Write Creation Date to self (if stored in metadata)."""
+ try:
+ cdate = cfile['createDate']
+ fsref = FSRef(fsobj)
+ cataloginfo, d1, d2, d3 =
fsref.FSGetCatalogInfo(Carbon.Files.kFSCatInfoCreateDate)
+ cataloginfo.createDate = (0, cdate, 0)
+
fsref.FSSetCatalogInfo(Carbon.Files.kFSCatInfoCreateDate, cataloginfo)
self.set_carbonfile(cfile)
+ except KeyError: self.set_carbonfile(cfile)
def get_resource_fork(self):
"""Return resource fork data, setting if necessary"""
@@ -1342,14 +1353,18 @@
def carbonfile_get(rpath):
"""Return carbonfile value for local rpath"""
from Carbon.File import FSSpec
+ from Carbon.File import FSRef
+ import Carbon.Files
import MacOS
try:
fsobj = FSSpec(rpath.path)
finderinfo = fsobj.FSpGetFInfo()
+ cataloginfo, d1, d2, d3 =
FSRef(fsobj).FSGetCatalogInfo(Carbon.Files.kFSCatInfoCreateDate)
cfile = {'creator': finderinfo.Creator,
'type': finderinfo.Type,
'location': finderinfo.Location,
- 'flags': finderinfo.Flags}
+ 'flags': finderinfo.Flags,
+ 'createDate': cataloginfo.createDate[1]}
return cfile
except MacOS.Error:
log.Log("Cannot read carbonfile information from %s" %
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Rdiff-backup-commits] rdiff-backup CHANGELOG rdiff_backup/metadata.py...,
dean gaudet <=