Thomas Waldmann
ee80db4eb2
add commandline argument --sparse
...
default is to not create sparse files.
if you give --sparse, it will create a hole in the sparse output file when a all-zero chunk is extracted.
2015-04-17 22:28:40 +02:00
Thomas Waldmann
a2bf2aea22
simple sparse file support, made chunk buffer size flexible
...
Implemented sparse file support to remove this blocker for people backing up lots of
huge sparse files (like VM images). Attic could not support this use case yet as it would
have restored all files to their fully expanded size, possibly running out of disk space if
the total expanded size would be bigger than the available space.
Please note that this is a very simple implementation of sparse file support - at backup time,
it does not do anything special (it just reads all these zero bytes, chunks, compresses and
encrypts them as usual). At restore time, it detects chunks that are completely filled with zeros
and does a seek on the output file rather than a normal data write, so it creates a hole in
a sparse file. The chunk size for these all-zero chunks is currently 10MiB, so it'll create holes
of multiples of that size (depends also a bit on fs block size, alignment, previously written data).
Special cases like sparse files starting and/or ending with a hole are supported.
Please note that it will currently always create sparse files at restore time if it detects all-zero
chunks.
Also improved:
I needed a constant for the max. chunk size, so I introduced CHUNK_MAX (see also
existing CHUNK_MIN) for the maximum chunk size (which is the same as the chunk
buffer size).
Attic still always uses 10MiB chunk buffer size now, but it could be changed now more easily.
2015-04-15 16:29:18 +02:00
Jonas Borgström
20026e58aa
Fix incorrect behaviour with two character directory names.
...
Independetely found and fixed by both Thomas Waldemann and
Cam Hutchison. Closes #265 and #268 .
2015-04-13 22:44:14 +02:00
Jonas Borgström
7198929bae
cache: Warn user before accessing relocated repositories
...
This also closes #225
2015-04-13 22:42:32 +02:00
Jonas Borgström
78f9ad1fab
Require approval before accessing previously unknown unencrypted repositories
...
Closes #271
2015-04-06 23:07:10 +02:00
Jonas Borgström
18641ae687
xattr: Fix issue with empty (0 bytes) xattr values.
...
Closes #106
2014-12-14 14:28:33 +01:00
Jonas Borgström
678fdd1d42
Fix "Number of files" output for attic info.
...
Closes #124
2014-10-27 22:00:56 +01:00
Jonas Borgström
5a69f58823
Introduce a separate exception for missing repository objects
2014-10-09 20:41:47 +02:00
Jonas Borgström
21e03af56b
Fix minor location parser bug.
...
Make sure the entire input is parsed.
2014-08-08 23:34:27 +02:00
Jonas Borgström
9f64e39d9f
Reuse chunker buffer between files.
2014-08-03 15:04:41 +02:00
Jonas Borgström
193fb1fcd5
Added support for stripping leading path segments
...
closes #95
2014-08-02 22:15:21 +02:00
Jonas Borgström
8f4e0f7506
acl: Added workaround for old Linux systems
...
Really old Linux systems do not have extended_file_no_follow()
2014-08-01 15:50:18 +02:00
Jonas Borgström
2f72b9f960
HashIndex: Switch to a non-mmap based implementation
...
This eliminates unnecessary IO on low memory systems
2014-07-10 15:32:29 +02:00
Jonas Borgström
95162ce1f8
buzhash: One more test case
...
Test with more than 31 bytes to make sure our BARREL_SHIFT macro
works correctly.
2014-06-05 15:11:46 +02:00
Jonas Borgström
64cd6632a1
Avoid deadlock problems
...
Explicitly use write locks, instead of read locks (that are later
upgraded) unless we know we will never modify the repository
2014-05-31 15:39:51 +02:00
Jonas Borgström
3ab53b776d
Fix crash on extreme mtime timestamps (year 2400+)
...
Closes #81
2014-05-18 18:28:26 +02:00
Jonas Borgström
dd5c0aa0e3
acl: make darwin acl code numeric_owner aware
2014-05-03 23:22:55 +02:00
Jonas Borgström
47c6141aab
Experimental OS X ACL support ( #66 )
2014-05-03 15:10:11 +02:00
Jeremy Maitin-Shepard
1d5410a3cf
Add --exclude-caches option, for excluding CACHEDIR.TAG directories
...
See http://www.brynosaurus.com/cachedir/spec.html
2014-04-30 14:57:21 -07:00
Jeremy Maitin-Shepard
1955484e1b
testsuite/archiver.py: Fix misspelling regual -> regular
2014-04-30 14:43:32 -07:00
Jonas Borgström
1b779c896d
Linux ACL support improvements
2014-04-29 22:29:26 +02:00
Jonas Borgström
4bcc1b8ff9
Fix Cython issue on Linux
2014-04-27 14:29:03 +02:00
Jonas Borgström
29f95bba68
Use a dedicated file for bsdflags tests
2014-04-13 21:52:49 +02:00
Jonas Borgström
0ad5253d84
Experimental Linux ACL support ( #66 )
2014-04-13 20:26:46 +02:00
Jonas Borgström
8bf3bb1ca3
Added support for backup and restore of bsdflags (OS X and FreeBSD)
...
This improves our Backup-Bouncer score (#56 )
2014-04-08 21:52:26 +02:00
Jonas Borgström
4bbde41466
Fix bug where xattrs on symlinks were not correctly restored
2014-04-08 21:22:57 +02:00
Jonas Borgström
8e078b5f91
Initial (naive) full repository fuse mount support
2014-03-26 22:06:53 +01:00
Jonas Borgström
a9fc62cc9a
Added option to restrict remote repository access to specific path(s)
...
With this option remote repository access can be restricted to a
specific path for a specific ssh key using the following line
in ~/.ssh/authorized_keys::
command="attic serve --restrict-to-path /data/clientA" ssh-rsa clientA's key
command="attic serve --restrict-to-path /data/clientB" ssh-rsa clientB's key
Closes #51 .
2014-03-24 21:28:59 +01:00
Jonas Borgström
0e39acffd3
crypto: convert attic.crypto into a cython module
...
This will give a slight performance boost and make the openssl
detection/linking more robust.
2014-03-10 22:50:38 +01:00
Jonas Borgström
90fe318809
Attempt to make the archive metadata resync more robust
2014-03-06 20:05:13 +01:00
Jonas Borgström
66a84c0c12
check: Fix a check --repair issue and added more tests
2014-03-06 12:05:22 +01:00
Jonas Borgström
55a26e553f
check: replace --phase with --repository/archives-only
2014-03-04 21:56:37 +01:00
Jonas Borgström
a68e48bc30
check: Make item stream resync a bit more robust
2014-03-04 21:15:52 +01:00
Jonas Borgström
7be0ad609d
Make the manifest rebuild code more robust
...
Try to make sure we've actually found msgpack data before feeding
it into msgpack.
2014-03-01 15:00:21 +01:00
Jonas Borgström
3982c34e6c
Improve attic check documentation
...
Closes #24 .
2014-02-26 23:13:48 +01:00
Jonas Borgström
678fb2c845
testsuite: Fix test test_prune_repository
2014-02-26 20:27:08 +01:00
Jonas Borgström
9e8a944a2a
check: archive metadata recovery improvements
2014-02-24 22:44:43 +01:00
Jonas Borgström
6425d16aa8
repository: Fix potential race condition
...
If we crash between compact_segments() and write_index() and the
transaction deletes objects that are newer than the current index
might become undeleted.
2014-02-21 20:20:17 +01:00
Jonas Borgström
bd22bc8cb2
Automatically replay segments to rebuild missing repository index
2014-02-20 23:49:35 +01:00
Dan Christensen
5d2d3f1f93
Add --dry-run option to prune.
2014-02-19 21:33:05 -05:00
Jonas Borgström
e458f859d3
Added command line deprecation functionality
...
The following deprecations are currently handled:
- attic verify -> attic extract --dry-run
- attic prune --hourly|daily|... -> attic prune --keep-X
2014-02-19 22:53:44 +01:00
Jonas Borgström
d551b13a23
Use StableDict in a few more places
2014-02-18 23:09:12 +01:00
Jonas Borgström
7b31f23722
Replace verify command with "extract --dry-run"
...
closes #25
2014-02-18 21:33:06 +01:00
Jonas Borgström
893120e609
attic check performance improvement and minor progress reporting changes
2014-02-17 18:25:25 +01:00
Jonas Borgström
c394a31d62
Improved archive metadata deduplication.
2014-02-16 23:36:48 +01:00
Jonas Borgström
d44fa850cd
Fix exception during "attic create" with repeated files
...
Closes #39
2014-02-16 22:37:12 +01:00
Jonas Borgström
32e773c15d
Implemented archive metadata checking and repair
2014-02-16 22:21:39 +01:00
Jonas Borgström
0d248192e5
Implemented Repository.list()
2014-02-10 21:55:22 +01:00
Jonas Borgström
bbf490bf8b
More repository check/repair improvements
2014-02-10 21:32:18 +01:00
Jonas Borgström
ab1cf32071
Implemented hashindex.iteritems(marker=X)
2014-02-09 22:05:33 +01:00