Age | Commit message (Collapse) | Author | Files | Lines |
|
Previously, they were all stored in one flat directory,
resulting in millions upon millions of files in one directory.
|
|
When I tried to run unit tests it failed because of permission access:
$ ./check
run unit tests
Running test 650/650: test_updates_subdirectory_of_persistent_directory
OK
436 excluded statements
42 excluded modules
Time: 2.6 s
ERROR:root:Command failed: ./obnam list-formats
CRITICAL:root:Traceback (most recent call last):
File "/usr/lib/python2.7/dist-packages/cliapp/app.py", line 182, in _run
self.setup_logging()
File "/usr/lib/python2.7/dist-packages/cliapp/app.py", line 408, in setup_logging
delay=False)
File "/usr/lib/python2.7/dist-packages/cliapp/app.py", line 58, in __init__
*args, **kwargs)
File "/usr/lib/python2.7/logging/handlers.py", line 118, in __init__
BaseRotatingHandler.__init__(self, filename, mode, encoding, delay)
File "/usr/lib/python2.7/logging/handlers.py", line 65, in __init__
logging.FileHandler.__init__(self, filename, mode, encoding, delay)
File "/usr/lib/python2.7/logging/__init__.py", line 897, in __init__
StreamHandler.__init__(self, self._open())
File "/usr/lib/python2.7/dist-packages/cliapp/app.py", line 65, in _open
return logging.handlers.RotatingFileHandler._open(self)
File "/usr/lib/python2.7/logging/__init__.py", line 916, in _open
stream = open(self.baseFilename, self.mode)
IOError: [Errno 13] Permission denied: '/var/tmp/obnam.log'
This was because my global configuration had a log file configured and it was not accessible to a normal user:
$ grep '^log:' /etc/obnam.conf
log: /var/tmp/obnam.log
$ ls -l /var/tmp/obnam.log
-rw------- 1 root root 24112886 Oct 25 08:58 /var/tmp/obnam.log
$
|
|
|
|
Previously, scan_tree would, when encountering a very deep directory
tree, crash due to Python's maximal stack depth limit. To avoid that,
avoid recursion and use an explicit list of unprocessed items.
|
|
|
|
|
|
|
|
longer than the uncompressed data.
|
|
|
|
Yarn now does that automatically.
|
|
|
|
This avoids using ttystatus, since ttystatus doesn't provide anything
useful for this.
|
|
|
|
For some reason this was missing from the mode_str lookup, it is the only type
listed on
https://github.com/thomas-joiner/k4dirstat/blob/master/kdirstat/cache-file-format.txt
which wasn't handled.
For unknown file types emit a commented "#UNHANDLED ..." line rather than
crashing with a backtrace.
Add a yarn for this scenario, although I've not been able to run it due to
"ASSUMING extended attributes are allowed for users".
Real world use has been tested by Florian Geyer,
http://listmaster.pepperfish.net/pipermail/obnam-support-obnam.org/2015-September/003836.html
Cc: Florian Geyer <blueice@fobos.de>
|
|
|
|
|
|
Signed-off-by: Ben Boeckel <mathstuf@gmail.com>
|
|
If the default keyring is not pristine, the test suite fails with errors
related to gpg not being able to read the keyring. Since the symmetric
encryption tests can use an empty keyring, make an empty directory for
it.
Signed-off-by: Ben Boeckel <mathstuf@gmail.com>
|
|
Signed-off-by: Ben Boeckel <mathstuf@gmail.com>
|
|
Signed-off-by: Ben Boeckel <mathstuf@gmail.com>
|
|
It turns out to be costly to call the method often in a big backup.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
I use a symlink to keep build artifacts off of my main drive, so
preserve the link if it exists.
Signed-off-by: Ben Boeckel <mathstuf@gmail.com>
|
|
Signed-off-by: Ben Boeckel <mathstuf@gmail.com>
|
|
|
|
|
|
We do not, in fact, currently support the live data root being
a non-directory. The code removed here assumes it can be (it can't,
neither LocalFS nor the SFTP plugin support it), and (sometimes)
gets the check for whether it is wrong, resulting in backing up the
parent directory instead, breaking things and confusing people.
|
|
|
|
|
|
coverage 4.0a6 no longer generates .coverage file, so
check first if it exists before attempting removal.
|
|
|
|
This speeds up fsck more than 5 times, depending on the backup
structure and history.
|
|
|
|
|
|
|
|
Conflicts:
obnamlib/__init__.py
|
|
|
|
|