Thomas Waldmann
d3fe74d4c0
Cache: do not try to release the lock twice
...
If Cache was already closed and __del__ was called, it called close() again
and crashed when trying to release the lock again.
2015-03-09 15:17:56 +01:00
Thomas Waldmann
9841af5542
better attic create -v output
...
Added a indicator character to the left for (A)dded, (M)odified, (U)nchanged status
of regular files. Lowercase indicators are for special files.
You may or may not want to use grep to filter out U and d.
2015-03-08 19:18:21 +01:00
Thomas Waldmann
d9cfca8989
PR #223 - Merge branch 'fix_45' of https://github.com/ThomasWaldmann/attic into merge
2015-03-08 15:09:01 +01:00
Thomas Waldmann
4633931413
add global option --no-cache-files to lower memory consumption
...
When given, attic does not use the "files" cache. Saves about 240B RAM per file
(that sounds only a little, but consider that backups nowadays are often millions of files).
So try this if attic eats more memory than you have as RAM (usually means paging or
MemoryErrors). Of course, saving memory is not for free. In my one experiment, run time
increased from 3.5 to 23 minutes (my system has enough RAM).
2015-03-08 15:01:24 +01:00
Thomas Waldmann
084f6e1602
PR #222 - Merge branch 'issue_189' of https://github.com/ThomasWaldmann/attic into merge
2015-03-08 04:20:13 +01:00
Thomas Waldmann
be29e5f6f4
fix traceback when trying to do unsupported passphrase change, fixes #189
2015-03-08 04:19:25 +01:00
Thomas Waldmann
c8b23b507d
PR #221 - Merge branch 'issue_139' of https://github.com/ThomasWaldmann/attic into merge
2015-03-08 02:37:43 +01:00
Thomas Waldmann
e425545c10
datetime does not like the year 10.000, fixes issue #139
2015-03-08 02:32:33 +01:00
Thomas Waldmann
70e907f4ed
PR #184 - Merge branch 'fuse-filesizes' of https://github.com/dnnr/attic into merge
2015-03-07 00:09:51 +01:00
Thomas Waldmann
0d2cd28c19
PR #214 - Merge branch 'crypto_cleanup' of https://github.com/thomaswaldmann/attic into merge
2015-03-06 23:50:15 +01:00
Thomas Waldmann
29449e40bc
PR #208 - Merge branch 'stdin_stdout_support' of https://github.com/thomaswaldmann/attic into merge
2015-03-06 23:28:00 +01:00
Thomas Waldmann
fbaa505191
PR #206 - Merge branch 'fixes' of https://github.com/thomaswaldmann/attic into merge
2015-03-06 23:18:08 +01:00
Thomas Waldmann
8c4d290a93
PR #173 - Merge branch 'rpc-whitelist' of https://github.com/dnnr/attic into merge
2015-03-06 22:55:53 +01:00
Thomas Waldmann
a5fe6160ba
PR #150 - Merge branch 'normalize_paths' of https://github.com/wavexx/attic into merge
2015-03-06 22:35:16 +01:00
Thomas Waldmann
1f4077d870
crypto.pyx: adapt to strange requirements found in the openssl docs
...
https://www.openssl.org/docs/crypto/EVP_aes_256_cbc.html
EVP_DecryptInit_ex(), EVP_DecryptUpdate() and EVP_DecryptFinal_ex() are the corresponding decryption operations. EVP_DecryptFinal() will return an error code if padding is enabled and the final block is not correctly formatted. The parameters and restrictions are identical to the encryption operations except that if padding is enabled the decrypted data buffer out passed to EVP_DecryptUpdate() should have sufficient room for (inl + cipher_block_size) bytes unless the cipher block size is 1 in which case inl bytes is sufficient.
I doubt this is correct, but let's rather be defensive here.
2015-03-03 20:18:28 +01:00
Thomas Waldmann
550320535c
crypto.pyx: cosmetic changes, added comments
2015-03-03 20:11:28 +01:00
Thomas Waldmann
6c7c2e2e40
cleanup crypto.pyx, make it easier to adapt to other modes
...
There were some small issues:
a) it never called EVP_EncryptFinal_ex.
For CTR mode, this had no visible consequences as EVP_EncryptUpdate already yielded all ciphertext.
For cleanliness and to have correctness even in other modes, the missing call was added.
b) decrypt = encrypt hack
This is a nice hack to abbreviate, but it only works for modes without padding and without authentication.
For cleanliness and to have correctness even in other modes, the missing usage of the decrypt api was added.
c) outl == inl assumption
Again, True for CTR mode, but not for padding or authenticating modes.
Fixed so it computes the ciphertext / plaintext length based on api return values.
Other changes:
As encrypt and decrypt API calls are different even for initialization/reset, added a is_encrypt flag.
Defensive output buffer allocation. Added the length of one extra AES block (16bytes) so it would
work even with padding modes. 16bytes are needed because a full block of padding might get
added when the plaintext was a multiple of aes block size.
These changes are based on some experimental code I did for aes-cbc and aes-gcm.
While we likely won't ever want aes-cbc in attic (maybe gcm though?), I think it is cleaner
to not make too many mode specific assumptions and hacks, but just use the API as it
was meant to be used.
2015-03-03 19:19:28 +01:00
Thomas Waldmann
aab900b169
extract: if --stdout is given, write all extracted binary data to stdout
2015-03-01 05:07:29 +01:00
Thomas Waldmann
a3f335e0ff
create: if "-" is given as path, read binary from stdin
2015-03-01 04:29:44 +01:00
Thomas Waldmann
db7ce095d2
fix typos / spelling
2015-02-28 03:43:08 +01:00
Thomas Waldmann
8ffd4c4926
convert docstrings to triple-double-quoted
2015-02-28 03:24:30 +01:00
Thomas Waldmann
a8ce0b8b8a
remove unused imports
2015-02-28 03:09:01 +01:00
Thomas Waldmann
74768511e1
do os.fsync like recommended in the python docs (gets a fileno, not file object, also do a flush first)
2015-02-28 02:45:21 +01:00
Evan Hempel
b425950f8b
Extra debug information for 'fread failed'
2015-02-12 20:32:20 -05:00
Daniel Danner
bffc419615
FUSE: reflect deduplication in allocated blocks
...
Instead of giving all files a fixed block count of 1, this assigns each
deduplicated chunk to a certain file. In effect, the cumulative file
size that is shown in the mountpoint accurately reflects the amount of
actual disk space needed for the repository (barring metadata overhead).
Although the block assignment is done arbitrarily, depending on the
user's access pattern, the sizes will be consistent within the entire
mount point. This facilitates the use of tools like du and ncdu for
inspecting the actual disk usage in a repository as opposed to just
looking at the original, uncompressed, non-deduplicated file sizes.
2015-01-23 16:43:45 +01:00
Daniel Danner
046b196bab
Only allow whitelisted RPC calls in server mode
...
Without this check, the client is able to call any method of
RepositoryServer and Repository, potentially circumventing
restrict_to_paths or even run arbitrary code.
2015-01-11 14:06:59 +01:00
Jonas Borgström
4ab4ecc7af
hashindex: Fix issue with file sizes larger than 2GB.
...
See: http://librelist.com/browser//attic/2015/1/6/does-attic-have-an-upper-data-size-limit/
2015-01-06 22:28:04 +01:00
Jonas Borgström
b5a9085717
Fix Python 3.2 compatibility issue with noatime open().
...
Closes #164 .
2015-01-03 23:12:47 +01:00
Jonas Borgström
add59e4ab3
Prepare for future payload format change
2014-12-17 21:55:33 +01:00
Yuri D'Elia
15c8a6323f
Normalize source/exclude paths before matching
...
This normalizes the file names in the dot directory when specified explicitly,
along with exclude/include patterns.
This fixes several mismatches when including relative paths that involve the
current directory.
2014-12-14 22:03:49 +01: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
53f6738090
Merge pull request #111 from c4rlo/patch-1
...
fix typo in comment
2014-12-08 21:48:36 +01:00
Jonas Borgström
5d96434abd
Merge pull request #113 from c4rlo/noatime
...
open files with O_NOATIME if possible
2014-12-08 21:48:04 +01:00
Jonas Borgström
7e15abd29c
hashindex: Fix issue with indicies larger than 2GB
2014-11-22 14:41:24 +01:00
David Fries
f22b62c1a4
limit create file permissions
...
Be safe by default, create files so that other users can't read them,
at least until the original permissions are set.
2014-10-31 20:02:12 -05: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
547fa0a590
Speed up initial repository access
...
Use os.listdir() instead of os.walk() to avoid unnecessary
stat() calls.
Closes #119
2014-10-10 21:01:55 +02:00
Jonas Borgström
7b9d129bcd
Remove dead code
2014-10-09 20:43:58 +02:00
Jonas Borgström
5a69f58823
Introduce a separate exception for missing repository objects
2014-10-09 20:41:47 +02:00
Carlo Teubner
f4804c07ca
open files with O_NOATIME if possible
2014-09-12 22:22:08 +01:00
c4rlo
ec73e45ae2
fix typo in comment
2014-09-07 13:54:18 +01: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
1b0e21b95a
Fixed typo
2014-07-10 15:44:29 +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
4b2dae29d4
Fix incorrect detect of follow_symlinks support
...
This only affects system with Python 3.3+ and a really old libc
2014-07-01 21:28:07 +02:00
Jonas Borgström
15065dbaa4
Fix sporadic "Resource temporarily unavailable" error
...
Issue reported on the mailing list while backing up to a remote
repository on OS X over a slow uplink.
2014-06-13 20:07:01 +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
df85e72d3c
Fix file cache save bug
2014-06-03 23:10:52 +02:00
Jonas Borgström
243481f6da
Fix test suite breakage
2014-06-03 22:00:34 +02:00
Jonas Borgström
80a2a4113f
Revert "Reduce memory usage when backing up many small files"
...
The memory usage should be reduced a fair bit by #90 so this
might not be needed anymore. Or at least not enabled by default
2014-06-03 21:39:26 +02:00
Jonas Borgström
7f9fe03917
cache: Reduce file cache memory usage ( #90 )
...
The memory usage is reduced at the expence of extra msgpack
packing/unpacking. Hopefully this is a good tradeoff.
Ideally the entire cache should be replaced with a radix tree
but that will have to wait a bit.
2014-06-03 21:19:02 +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
af3e78e6b2
Really fix EDEADLK bug
2014-05-31 15:17:06 +02:00
Jonas Borgström
9178d76ce7
Fix py3.2 specific EDEADLK related bug.
2014-05-31 15:15:56 +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
11687fbec1
crypto: store EVP_CIPHER_CTX on the stack
2014-05-13 23:18:32 +02:00
Cyril Roussillon
0b4e324af2
chunker: optimized the barrel shift
...
move the modulo out of the barrel shift and use 32bits variables so
that the compiler recognizes it and uses the "rol*" asm instructions.
Before: 245 MiB/s
After: 338 MiB/s
CPU: Intel(R) Core(TM) i5-3320M CPU @ 2.60GHz
Modification by Jonas: commit message formatting and added
Cyril Roussillon to AUTHORS
2014-05-13 23:05:13 +02:00
Jonas Borgström
7e258c8401
crypto: Improved AES performance
...
attic.crypto now uses the OpenSSL EVP API for AES encryption.
This API uses AES-NI instructions when available resulting in
a significant AES encryption performance improvement:
Before: 80MiB/s
After: 1931MiB/s
Message size: 64kiB
CPU: Intel(R) Core(TM) i5-3320M CPU @ 2.60GHz
2014-05-13 22:33:58 +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
Jonas Borgström
055a40910b
Reduce memory usage when backing up many small files
...
Closes #69 .
2014-05-03 13:35:48 +02:00
Jonas Borgström
a87a019608
cachedir: Add CACHEDIR.TAG file to attic cache dirs
2014-05-01 14:56:21 +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
c502481d5e
fix typo
2014-04-29 23:07:41 +02: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
8c25d02481
Experimental FreeBSD ACL support (nfs4 and posix) ( #66 )
2014-04-27 14:17:52 +02:00
Jonas Borgström
54e757e717
acl: Remove acl comments
2014-04-13 23:41:04 +02:00
Jonas Borgström
29f95bba68
Use a dedicated file for bsdflags tests
2014-04-13 21:52:49 +02:00
Jonas Borgström
14808b77cb
Fix Python3.2 compatibility
2014-04-13 20:34:32 +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
02a8172eee
docs: More improvements
2014-04-06 22:47:22 +02:00
Jonas Borgström
ead1511948
docs: More documentation improvements
2014-04-06 15:16:25 +02:00
Jonas Borgström
ccb7ea909f
prune: Use the local time zone (not UTC) when interpreting time
2014-03-30 22:57:16 +02:00
Jonas Borgström
9ae3d10a99
cache: Properly clean up txn.tmp after a failed commit
2014-03-30 22:46:57 +02:00
Jonas Borgström
37cc63fc46
Fix one more -Werror=declaration-after-statement issue
2014-03-30 22:35:13 +02:00
Tung Dao
6d77808bec
Fix for ISO C90 compliance
2014-03-30 22:43:31 +07:00
Jonas Borgström
1db4ba52f9
Make sure key files end with a new line
2014-03-28 22:56:40 +01:00
Jonas Borgström
8080f183d6
mount: Improve fuse filesystem memory efficiency
...
Closes #59
2014-03-28 22:51:09 +01:00
Jonas Borgström
3b80688959
mount: Load archive metadata on demand
2014-03-27 23:01:14 +01:00
Jonas Borgström
af262482de
mount: Use RepositoryCache
...
This makes a full repository mount a bit faster but it's still
too slow and memory hungry.
2014-03-26 22:42:20 +01: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
Johann Klähn
f47353e7ef
accept names of other commands in help command
2014-03-21 22:12:15 +01:00
Jonas Borgström
8a1ebe0112
Added '--stats' option to attic prune and attic delete
2014-03-19 22:32:07 +01:00
Jonas Borgström
839dd94a59
prune: Delete all archives in a single transaction
...
This will improve performance and make the whole operation atomic
2014-03-19 21:58:25 +01:00
Jonas Borgström
80e7e637cc
Make --stats output 78 characters wide
2014-03-19 21:52:49 +01:00
Jonas Borgström
92c333c071
Add a method to detect out of date binary extension modules
2014-03-18 22:04:08 +01:00
Jonas Borgström
e398d5f632
Include "all archives" size information in "--stats" output.
...
Closes #54
2014-03-18 21:42:03 +01:00
Jonas Borgström
c3ca45315b
cache: Speed up cache rebuild by caching archive metadata requests
2014-03-13 22:29:47 +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
9dce2362cc
archive checkpoint: Reset timer after the checkpoint has been committed
2014-03-05 20:00:27 +01:00
Jonas Borgström
3193af5482
Remove explicit flush calls since line_buffering is enabled.
2014-03-05 19:58:29 +01:00
Jonas Borgström
11c08f412a
check: No progreess output to stderr during archives check
2014-03-04 22:02:35 +01:00
Jonas Borgström
55a26e553f
check: replace --phase with --repository/archives-only
2014-03-04 21:56:37 +01:00
Jonas Borgström
477e1a39dd
check: Make sure all non-critical output is sent to stdout
2014-03-04 21:21:58 +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
1b42da1fa5
Merge remote-tracking branch 'jdchristensen/prune-docs-info'
2014-02-26 20:26:37 +01:00
Jonas Borgström
fd2f3ea634
Fix UnicodeEncodeError on verbose output of unicode paths
...
We can't assume that the stdout encoding is not less restrictive
than the filesystem encoding.
2014-02-25 12:33:23 +01:00
Dan Christensen
78c2ef6a13
When -v is specified with prune, also show the timestamp of each
...
archive, which is helpful for debugging. Unify this with the
formatting done by "attic list". The spacing is chosen so that
the attic prune output is 79 characters wide when the archive
names are at most 36 characters.
2014-02-24 19:46:56 -05:00
Dan Christensen
4c4018e1d7
Update prune documentation to use new command line options,
...
and also to say that the time that matters is the time each
backup completes.
2014-02-24 19:32:18 -05:00
Jonas Borgström
a229db0dce
check: More code cleanup
2014-02-24 23:37:21 +01:00
Jonas Borgström
9e8a944a2a
check: archive metadata recovery improvements
2014-02-24 22:44:43 +01:00
Jonas Borgström
c1e1d6e9dd
repository: Fixed a potential infinite loop in recover_segment
2014-02-24 12:59:38 +01:00
Jonas Borgström
88ff981eee
Ignore xattr errors during extract if not supported by the filesystem
...
Closes #46 .
2014-02-23 13:15:57 +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
30daa23e42
Minor cleanup
2014-02-18 21:16:36 +01:00
Jonas Borgström
7bcb0f97d6
Slightly lower the number of file descriptors kept open
...
This is needed to support old version of sftp-server that only
support 100 open file descriptors. Closes #40 .
2014-02-17 21:16:04 +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
22548841a2
Merge pull request #38 from jdchristensen/quickstart
...
Quickstart and --weekly doc fixes
2014-02-10 12:50:57 +01:00
Dan Christensen
a79acdd10c
Correct --weekly help to say weekly, not daily.
2014-02-09 16:15:49 -05:00
Jonas Borgström
ab1cf32071
Implemented hashindex.iteritems(marker=X)
2014-02-09 22:05:33 +01:00
Jonas Borgström
1e4fd4e18a
PyBuffer_FromMemory should be a static function
2014-02-09 21:25:05 +01:00
Jonas Borgström
66fe7e5377
Removed redundant is_a_terminal function and minor check fixes.
2014-02-09 20:35:00 +01:00
Jonas Borgström
14dd0414eb
Merge remote-tracking branch 'jdchristensen/help'
2014-02-09 20:30:57 +01:00
Jonas Borgström
1809ea2f3e
More attic check --repair improvements
2014-02-09 16:05:04 +01:00
Jonas Borgström
33b58eac82
Initial check --repair support
2014-02-09 16:05:04 +01:00
Jonas Borgström
5898b3b935
Merge remote-tracking branch 'jdchristensen/prune-within'
...
Conflicts:
attic/archiver.py
2014-02-09 16:04:32 +01:00
Dan Christensen
b5483b79a4
Add a --within option to the prune command.
2014-02-08 15:37:27 -05:00
Dan Christensen
9d19550c1a
Add support for --exclude-from.
2014-02-08 12:44:48 -05:00
Dan Christensen
020c4f802f
return self.exit_code from do_help
2014-02-08 11:51:44 -05:00
Dan Christensen
989a86463c
Escape the backslash in the help text.
2014-02-08 11:45:36 -05:00
Dan Christensen
c0cb26613d
On help on patterns.
2014-02-08 09:44:31 -05:00
Jonas Borgström
2252616f9e
Repository code cleanup
2014-02-08 13:32:47 +01:00
Dan Christensen
4da8466b3b
Fix a doc typo.
2014-02-07 18:10:52 -05:00
Dan Christensen
b76a40c987
Simplify the ExcludePattern logic further, and explain.
2014-02-07 18:04:21 -05:00
Dan Christensen
8cc74be62e
Simplify IncludePattern and add a few more tests to PatternTestCase.
2014-02-07 16:27:18 -05:00
Dan Christensen
db9632532c
Add one more test to PatternTestCase.
2014-02-07 16:04:06 -05:00
Dan Christensen
9c5e3d4ddc
Fix minor bugs in IncludePattern and ExcludePattern, and speed up
...
ExcludePattern by storing a compiled regular expression.
2014-02-07 15:54:24 -05:00