1
0
Fork 0
mirror of https://github.com/borgbackup/borg.git synced 2024-12-27 02:08:54 +00:00
Commit graph

1020 commits

Author SHA1 Message Date
Thomas Waldmann
a6b6712d6a deprecate the numeric --compression argument, rename null compression to none, update CHANGES 2015-08-14 23:00:04 +02:00
Alan Jenkins
02b3fbb401 lrucache: change test case to py.test
I re-wrote lrucache (and it seems like no-one had looked at it much
before :).  I was told my test function would have been simpler in
native py.test, so let's have a go converting it all.

We can avoid any reference to unittest, because lrucache doesn't write
files so it doesn't need any of our custom assertion helpers.
2015-08-14 14:51:10 +01:00
Alan Jenkins
0ee78240ee lrucache: test added code
Tests saved my butt, so I'd better contribute :).

These tests have been tested - substituting a null dispose function
causes an immediate failure.
2015-08-14 12:03:23 +01:00
Alan Jenkins
5e0013c5db Merge branch 'master' into lrucache 2015-08-14 10:59:21 +01:00
Alan Jenkins
76f6737e9d lrucache: cleanup (-10 lines)
dict.pop() will raise KeyError for us if necessary.  I was confused
because we used to have lrucache.pop() with a bug, that returned None
instead.

Great catch by @ThomasWaldmann.
2015-08-14 10:41:55 +01:00
Alan Jenkins
db298268e4 Cleanup error-raising in added code
At least one programmer is confused by my abuse of KeyError()
as a sentinel value.  Let's call the sentinel value _NotFound
instead, and let's avoid re-creating it on each call.

I have a new favourite line of code, "if item is _NotFound" :).
Thanks to @ThomasWaldmann for all these review suggestions.
2015-08-13 11:22:57 +01:00
Alan Jenkins
9ba7daa9c7 lrucache - simpler _not_ to inherit from dict
We need to make sure dispose() is always called when necessary.
Using inheritance it's just too easy to forget a method,
that we needed to override.

I also find it confusing when an override method calls another
method, and you have yet to see whether the latter method is
overridden or not.  It didn't help that most of these methods
are actually operator overloads.

This turns out to require _less_ code :-).
(Admittedly the code could have been reduced a bit anyway
because python3's super() can be called without any arguments).
2015-08-12 23:56:01 +01:00
Alan Jenkins
e3f671c4fb We forgot to close files which fell out the lrucache
The initializer now takes a dispose function.  lrucache
claims ownership of the items it contains and will dispose
deleted items.  Ownership can naturally be reclaimed by calling
pop() for the item.
2015-08-12 23:13:34 +01:00
Thomas Waldmann
3100fac361 fix archiver test to not expect backup of the UF_NODUMP file, try 2 2015-08-12 17:03:30 +02:00
Thomas Waldmann
0481424128 fix archiver test to not expect backup of the UF_NODUMP file 2015-08-12 16:41:30 +02:00
Thomas Waldmann
2194d9837e update CHANGES 2015-08-12 16:04:41 +02:00
Thomas Waldmann
b512827b07 Merge branch 'honor_nodump' of https://github.com/jeffrizzo/attic 2015-08-12 15:57:54 +02:00
Thomas Waldmann
02ccf37766 Merge branch 'minor' of https://github.com/sourcejedi/attic 2015-08-12 15:16:44 +02:00
Alan Jenkins
04887439a0 recover_segment(): don't assume we have an fd for segment
Suggested by @ThomasWaldmann.  Avoiding a complex assumption
should make the code easier to understand and maintain.

(Technically we do have an fd for the segment, because
the only caller opens the segment and checks it before
calling for repair.)
2015-08-12 11:32:12 +01:00
Alan Jenkins
d83b919d52 Style fix in added code
PEP8 says to prefer "is not None"
2015-08-12 11:20:05 +01:00
Thomas Waldmann
8300efb1db remote: pragma: no cover for the stuff we can't test 2015-08-12 04:28:31 +02:00
Thomas Waldmann
4d8949e66a archiver: more tests 2015-08-12 04:09:36 +02:00
Thomas Waldmann
feff0f0c94 install docs: replace hack for llfuse with proper solution
found out why it could not install llfuse into virtual env: it always complained about
not being able to find fuse.pc - which is part of libfuse-dev / fuse-devel and was missing.

once one adds the fuse dev stuff, llfuse installs to virtual env without problems.
2015-08-12 03:15:44 +02:00
Thomas Waldmann
b16dc03e36 tests for CompressionSpec 2015-08-12 02:27:41 +02:00
Thomas Waldmann
e06b0b3612 use C99's uintmax_t and %ju format
whatever size_t and off_t is, should even fit in there
2015-08-12 01:04:03 +02:00
Alan Jenkins
3321a887d3 io.write_commit() already implies io.close_segment() 2015-08-11 21:46:58 +01:00
Alan Jenkins
57845c07ed Clean up fds of segments we delete (during compaction)
When we delete a segment, let's close its fd as well.
Note as well wasting the fd, this was forcing the
filesystem to preserve the deleted file until we exited.

I noticed roughly 20 open fds of deleted files when
attic saved 10G of data.
2015-08-11 21:46:58 +01:00
Thomas Waldmann
1724241d0c README: mention lzma and lz4 compression 2015-08-10 20:45:15 +02:00
Thomas Waldmann
8b1d46caa4 docs: more about compression 2015-08-10 20:36:21 +02:00
Thomas Waldmann
abe29583f2 install lz4 from brew 2015-08-10 01:21:27 +02:00
Thomas Waldmann
8af3aa3397 merged master 2015-08-09 23:51:46 +02:00
Thomas Waldmann
822379048f added some sidebar links 2015-08-09 22:32:14 +02:00
Thomas Waldmann
1e35f5ce4a minor fixes to CHANGES 2015-08-09 21:22:55 +02:00
Thomas Waldmann
69456e07c4 cache sync: change progress output to separate lines
printing without \n plus sys.stdout.flush() didn't work as expected.
2015-08-09 19:02:35 +02:00
Thomas Waldmann
197ca9c0d3 C merge code: cast to correct pointer type, silences warning 2015-08-09 16:19:53 +02:00
Thomas Waldmann
955ac9c44c get rid of testsuite.mock, directly import from mock
this was left over from times when we either used mock from stdlib
or pypi mock. but as we only use pypi mock now, the indirection is
not needed any more.
2015-08-09 14:26:54 +02:00
Thomas Waldmann
4c668a85b6 update docs copyright (to be same as project copyright) 2015-08-09 14:16:56 +02:00
Thomas Waldmann
7ffdfe1716 update CHANGES 2015-08-09 14:10:53 +02:00
Thomas Waldmann
74e5860508 document that passphrase(-only) mode is deprecated 2015-08-09 13:47:36 +02:00
Thomas Waldmann
e74c87d5b5 update borg check help 2015-08-09 12:52:39 +02:00
Thomas Waldmann
80ee8b98af fix the repair mode
if one used --last (or since shortly: gave an archive name), verify_chunks (old method name) was
not called because it requires all archives having been checked.

the problem was that also the final manifest.write() and repository.commit() was done in that method,
so all other repair work did not get committed in that case.

I moved these calls that to a separate finish() method.
2015-08-09 12:43:57 +02:00
Thomas Waldmann
4f6c43baec document what borg check does, fixes #138 2015-08-09 01:15:05 +02:00
Thomas Waldmann
03f39c2663 borg check: give a named single archive to it, fixes #139 2015-08-09 01:14:53 +02:00
Thomas Waldmann
35b0f38f5c cache sync: show progress indication
sync can take quite long, so show what we are doing.
2015-08-09 01:14:37 +02:00
Thomas Waldmann
cce0d20dad test whether borg extract can process unusual filenames 2015-08-09 01:14:37 +02:00
Thomas Waldmann
616d16a9b0 add help string for --no-files-cache, fixes #140 2015-08-08 20:50:21 +02:00
Thomas Waldmann
60e34968b0 codecov: fixes for env vars and osx 2015-08-08 20:46:58 +02:00
Thomas Waldmann
a9027a033d coverage: omit some infrastructure / generated files 2015-08-08 19:12:14 +02:00
Thomas Waldmann
40801d74a6 remove old unittest discover / runner code, we use py.test now 2015-08-08 19:03:37 +02:00
Thomas Waldmann
6164640ecc add codecov.io badge 2015-08-08 18:31:57 +02:00
Thomas Waldmann
5864bd76eb fix test coverage / codecov.io, use xcode6.4 2015-08-08 18:31:41 +02:00
Thomas Waldmann
ba75356314 add OS X to travis 2015-08-08 01:44:12 +02:00
Thomas Waldmann
a1e039ba21 reimplement the chunk index merging in C
the python code could take a rather long time and likely most of it was converting stuff from python to C and back.
2015-08-06 23:32:53 +02:00
Thomas Waldmann
7e21d95ded fix CHANGES.rst filename in MANIFEST.in 2015-08-06 16:40:38 +02:00
Thomas Waldmann
58d57df46d improve README.rst 2015-08-06 16:39:50 +02:00