The problem this fixes is most evident when trying to back up an entire drive e.g. C:\, but the same problem occurs whenever there is a trailing slash in the path. The issue is that rdiff-backup has support for using \ as a way of escaping characters in the path specifier. This is all fine and common on unix, but on Windows, the \ is obviously used as a path separator. (There really is no way of escaping characters like this on the Windows command line. It is expected that you simple quote everything.) This patch simply disables escaping if the path separator is a \.

This does remove some functionality: if you are backing up from Windows to linux, you could have escaped the remote side of the connection, and with this patch you can't. However, you can still quote the remote path, and I believe that it's more important to allow trailing slashes, especially with drive specifications, than supporting escaping for the remote path.

(This problem was first reported here: http://lists.gnu.org/archive/html/rdiff-backup-users/2008-08/msg00051.html.)

Thanks,
JoshN
--- rdiff_backup/SetConnections.py	9 Oct 2008 20:23:42 -0000	1.18
+++ rdiff_backup/SetConnections.py	27 Nov 2008 15:38:47 -0000
@@ -97,12 +97,14 @@
 			raise SetConnectionsException(
 				"Unexpected end to file description %s" % file_desc)
 
+	allow_escaping = os.sep != '\\'
+
 	host_info_list, i, last_was_quoted = [], 0, None
 	while 1:
 		if i == len(file_desc):
 			return (None, file_desc)
 
-		if file_desc[i] == '\\':
+		if file_desc[i] == '\\' and allow_escaping:
 			i = i+1
 			check_len(i)
 			last_was_quoted = 1
_______________________________________________
rdiff-backup-users mailing list at [email protected]
http://lists.nongnu.org/mailman/listinfo/rdiff-backup-users
Wiki URL: http://rdiff-backup.solutionsfirst.com.au/index.php/RdiffBackupWiki

Reply via email to