[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[rdiff-backup-users] More patches to get rdiff-backup working under cygw
From: |
Marc Dyksterhouse |
Subject: |
[rdiff-backup-users] More patches to get rdiff-backup working under cygwin/windows |
Date: |
Fri, 26 Jan 2007 15:59:37 -0500 |
User-agent: |
Thunderbird 1.5.0.9 (Windows/20061207) |
Hi all,
I had some issues backing up a linux machine to a Windows box using
rdiff-backup. I got passed all my (known) issues today so I wanted to
submit the fixes so others could take advantage of them. I started with
version 1.1.7.
Note that these fixes are only needed when backing up unix to windows.
Windows to windows or windows to unix shouldn't need this. Well,
actually, the Security.py patch is probably needed in all these cases.
My issues:
o The now famous fsync issue:
I just included the same patch here that is already being used.
o Files with asterisks (*) and other bad characters:
I had a file named "*.xxx" that was causing the backup to fail.
Turns out there's a pretty bad bug in the get_ctq_from_fsas logic where
the regex used wants to quote all characters except a-z, underscore,
space, period, and dash. But the faulty regex also includes all ASCII
chars BETWEEN a space and a period. Bad regex: "^a-z0-9_ .-" Good
regex: "^a-z0-9_ .-". Putting the dash at the end makes it not be a
range special character. This appears twice in fs_abilities.py. The
second one includes "A-Z" (uppercase chars) too.
o DOS device files ("aux", "prn", etc) caused backup to fail.
Any file on linux that was named aux or aux.XXX or prn[.XXX] or
con[.XXX] or nul[.XXX] or com[0-9][.XXX] or lpt[12][.XXX] would cause
the backup to fail.
I created a patch that tests the file system abilities and escapes these
names if necessary by quoting the first character of the name. So,
"aux" is converted to ";097ux".
This was the biggest change. I've only tested it when backing up unix
on to windows. Restore works too.
o Security.py exception
FilenameMapping.set_init_quote_vals was missing from the list of methods
that can be called remotely.
The four patches can be downloaded here:
http://www.visiwave.com/download/rdiff_backup/rpath.py.patch
http://www.visiwave.com/download/rdiff_backup/Security.py.patch
http://www.visiwave.com/download/rdiff_backup/FilenameMapping.py.patch
http://www.visiwave.com/download/rdiff_backup/fs_abilities.py.patch
Regards,
marc
- [rdiff-backup-users] More patches to get rdiff-backup working under cygwin/windows,
Marc Dyksterhouse <=