[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Rdiff-backup-commits] rdiff-backup ./CHANGELOG rdiff_backup/Main.py r..
From: |
Ben Escoto |
Subject: |
[Rdiff-backup-commits] rdiff-backup ./CHANGELOG rdiff_backup/Main.py r... [r1-0] |
Date: |
Tue, 21 Feb 2006 04:10:38 +0000 |
CVSROOT: /sources/rdiff-backup
Module name: rdiff-backup
Branch: r1-0
Changes by: Ben Escoto <address@hidden> 06/02/21 04:10:38
Modified files:
. : CHANGELOG
rdiff_backup : Main.py fs_abilities.py
Log message:
Listing a read-only repository should work now
CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/rdiff-backup/rdiff-backup/CHANGELOG.diff?only_with_tag=r1-0&tr1=1.147.2.17&tr2=1.147.2.18&r1=text&r2=text
http://cvs.savannah.gnu.org/viewcvs/rdiff-backup/rdiff-backup/rdiff_backup/Main.py.diff?only_with_tag=r1-0&tr1=1.89.2.7&tr2=1.89.2.8&r1=text&r2=text
http://cvs.savannah.gnu.org/viewcvs/rdiff-backup/rdiff-backup/rdiff_backup/fs_abilities.py.diff?only_with_tag=r1-0&tr1=1.16.2.4&tr2=1.16.2.5&r1=text&r2=text
Patches:
Index: rdiff-backup/CHANGELOG
diff -u rdiff-backup/CHANGELOG:1.147.2.17 rdiff-backup/CHANGELOG:1.147.2.18
--- rdiff-backup/CHANGELOG:1.147.2.17 Sun Jan 29 21:32:17 2006
+++ rdiff-backup/CHANGELOG Tue Feb 21 04:10:38 2006
@@ -6,6 +6,11 @@
Fix a security violation when restoring from a remote repository.
(Patch from Charles Duffy.)
+--list-at-time, --list-increments, and --list-increment-sizes should
+now work from a read-only repository. (Bug reported by Wolfgang
+Dautermann.)
+
+
New in v1.0.4 (2006/01/15)
--------------------------
Index: rdiff-backup/rdiff_backup/Main.py
diff -u rdiff-backup/rdiff_backup/Main.py:1.89.2.7
rdiff-backup/rdiff_backup/Main.py:1.89.2.8
--- rdiff-backup/rdiff_backup/Main.py:1.89.2.7 Wed Feb 1 02:59:08 2006
+++ rdiff-backup/rdiff_backup/Main.py Tue Feb 21 04:10:38 2006
@@ -683,7 +683,7 @@
def ListIncrements(rp):
"""Print out a summary of the increments and their times"""
- rp = require_root_set(rp)
+ rp = require_root_set(rp, readonly = 1)
restore_check_backup_dir(restore_root)
mirror_rp = restore_root.new_index(restore_index)
inc_rpath = Globals.rbdir.append_path('increments', restore_index)
@@ -693,7 +693,7 @@
print manage.describe_incs_parsable(incs, mirror_time,
mirror_rp)
else: print manage.describe_incs_human(incs, mirror_time, mirror_rp)
-def require_root_set(rp):
+def require_root_set(rp, readonly = None):
"""Make sure rp is or is in a valid rdiff-backup dest directory.
Also initializes fs_abilities and quoting and return quoted rp if
@@ -703,11 +703,11 @@
if not restore_set_root(rp):
Log.FatalError(("Bad directory %s.\n" % (rp.path,)) +
"It doesn't appear to be an rdiff-backup destination dir")
- single_set_fs_globals(Globals.rbdir)
+ single_set_fs_globals(Globals.rbdir, readonly)
if Globals.chars_to_quote: return restore_init_quoting(rp)
else: return rp
-def single_set_fs_globals(rbdir):
+def single_set_fs_globals(rbdir, readonly = None):
"""Use fs_abilities to set globals that depend on filesystem.
This is appropriate for listing increments, or any other operation
@@ -724,8 +724,10 @@
SetConnections.UpdateGlobal(write_attr, 1)
rbdir.conn.Globals.set_local(conn_attr, 1)
- fsa = rbdir.conn.fs_abilities.get_fsabilities_readwrite('archive',
- rbdir, 1,
Globals.chars_to_quote)
+ if readonly: fsa = rbdir.conn.fs_abilities.get_fsabilities_readonly(
+ 'archive', rbdir, Globals.chars_to_quote)
+ else: fsa = rbdir.conn.fs_abilities.get_fsabilities_readwrite(
+ 'archive', rbdir, 1, Globals.chars_to_quote)
Log(str(fsa), 4)
update_triple(fsa.eas, ('eas_active', 'eas_write', 'eas_conn'))
@@ -806,7 +808,7 @@
def ListChangedSince(rp):
"""List all the files under rp that have changed since restoretime"""
- rp = require_root_set(rp)
+ rp = require_root_set(rp, readonly = 1)
try: rest_time = Time.genstrtotime(restore_timestr)
except Time.TimeException, exc: Log.FatalError(str(exc))
mirror_rp = restore_root.new_index(restore_index)
@@ -818,7 +820,7 @@
def ListAtTime(rp):
"""List files in archive under rp that are present at restoretime"""
- rp = require_root_set(rp)
+ rp = require_root_set(rp, readonly = 1)
try: rest_time = Time.genstrtotime(restore_timestr)
except Time.TimeException, exc: Log.FatalError(str(exc))
mirror_rp = restore_root.new_index(restore_index)
Index: rdiff-backup/rdiff_backup/fs_abilities.py
diff -u rdiff-backup/rdiff_backup/fs_abilities.py:1.16.2.4
rdiff-backup/rdiff_backup/fs_abilities.py:1.16.2.5
--- rdiff-backup/rdiff_backup/fs_abilities.py:1.16.2.4 Tue Jan 10 22:27:48 2006
+++ rdiff-backup/rdiff_backup/fs_abilities.py Tue Feb 21 04:10:38 2006
@@ -100,14 +100,14 @@
s.append(s[0])
return '\n'.join(s)
- def init_readonly(self, rp):
+ def init_readonly(self, rp, override_chars_to_quote = None):
"""Set variables using fs tested at RPath rp. Run locally.
This method does not write to the file system at all, and
should be run on the file system when the file system will
only need to be read.
- Only self.acls and self.eas are set.
+ Only self.acls, self.eas, and self.chars_to_quote are set.
"""
assert rp.conn is Globals.local_connection
@@ -117,6 +117,13 @@
self.set_acls(rp)
self.set_resource_fork_readonly(rp)
self.set_carbonfile()
+
+ if override_chars_to_quote is None:
+ ctq_rp = rp.append('chars_to_quote')
+ if ctq_rp.isreg(): self.chars_to_quote =
ctq_rp.get_data()
+ else: self.chars_to_quote = "" # default is no quoting
+ else: self.chars_to_quote = override_chars_to_quote
+
return self
def init_readwrite(self, rbdir, use_ctq_file = 1,
@@ -395,13 +402,13 @@
else: self.high_perms = 1
tmp_rp.delete()
-def get_fsabilities_readonly(desc_string, rp):
+def get_fsabilities_readonly(desc_string, rb, ctq = None):
"""Return an FSAbilities object with given description_string
Will be initialized read_only with given RPath rp.
"""
- return FSAbilities(desc_string).init_readonly(rp)
+ return FSAbilities(desc_string).init_readonly(rb, ctq)
def get_fsabilities_readwrite(desc_string, rb, use_ctq_file = 1, ctq = None):
"""Like above but initialize read/write and pass other arguments"""
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Rdiff-backup-commits] rdiff-backup ./CHANGELOG rdiff_backup/Main.py r... [r1-0],
Ben Escoto <=