Łukasz Langa
52677d2b5d
Optimization: don't SELECT the path twice if it's not there
2020-05-17 21:58:30 +02:00
Łukasz Langa
45ab4501ee
Make handle_unknown_path
more readable
2020-05-17 21:50:09 +02:00
Łukasz Langa
8ee84344e8
Simplify normalization and Unicode handling
2020-05-17 21:18:48 +02:00
Łukasz Langa
7608b56ea6
Remove trailing whitespace
2020-05-17 21:17:19 +02:00
Łukasz Langa
8e9e37094d
Claim 3.7 and 3.8 compatibility, can't be bothered to check 3.6
2020-05-17 20:19:10 +02:00
Łukasz Langa
9af31192c2
Make tests more robust and readable
2020-05-17 20:17:56 +02:00
Łukasz Langa
c73646d2e1
Update ACKS
2020-05-17 18:47:23 +02:00
Łukasz Langa
8ec9ea9629
Use NFKD instead of NFKC because that's what macOS uses by default
2020-05-17 18:33:23 +02:00
Łukasz Langa
c27c259282
Add MIT license to make it explicit
2020-05-17 18:28:17 +02:00
Stan Senotrusov
74f043b3ca
Normalize unicode paths in the database ( #37 )
...
* Normalize unicode paths in the database to enable use of the same database across different platforms
* Check if unicode normalization should be applied without regexp
2020-05-17 18:27:05 +02:00
Reid Williams
4ea0a57e0a
Add and remove unnecessary / needed decodes ( #38 )
...
* remove unecessary decode
* add needed decode
Co-authored-by: Reid Williams <reid@computable.io>
2020-05-17 17:07:47 +02:00
Zhuoyun Wei
6d82ff93b1
Fix a typo in README ( #35 )
2018-02-26 10:13:56 -08:00
p1r473
a043402114
Vacuuming ( #34 )
...
Added database vacuuming to shrink DB size on hard drive of old hashes that went missing
2017-06-13 13:34:44 -07:00
liloman
a8e52626ef
Swap sqlite cursor with dictionary and set data structures ( #24 )
...
1. Use 2 new data structures:
-paths (set) contains all the files in the actual filesystem
-hashes (dictionary) substitute the sqlite query with dict[hash] = set(db paths)
2. Minimal unitary tests created with bats (bash script)
See https://github.com/ambv/bitrot/issues/23 for details.
2017-03-03 10:16:46 -08:00
Lukasz Langa
6b4a1fd46a
Typo in README
2016-11-01 12:06:01 -07:00
Lukasz Langa
58aa762e5c
0.9.2, updated README and benchmarks
0.9.2
2016-11-01 12:02:34 -07:00
Łukasz Langa
7cf1577be7
Merge pull request #20 from benshep/patch-1
...
Corrected assumed 'utf-8' encoding
2016-11-01 11:24:18 -07:00
benshep
53b1a12301
Corrected assumed 'utf-8' encoding
...
Was failing on my machine - traced it to line 189 using a hard-coded 'utf-8' encoding. Everywhere else uses FSENCODING (which on my machine is 'mbcs'), so replaced it here as well.
2016-10-31 14:03:59 +00:00
Łukasz Langa
d192fa0175
Fixed -s
0.9.1
2016-10-29 19:27:18 -07:00
Łukasz Langa
5e66b772d2
More robust filename encoding during stdout handling
2016-10-29 19:12:33 -07:00
Łukasz Langa
8c871b1319
Merge pull request #18 from vain/fix-encoding-warning
...
Print full path when file name decoding fails
2016-10-29 15:04:46 -07:00
Łukasz Langa
8cfdf0cfc1
Merge pull request #19 from vain/increase-verbosity
...
Increase verbosity
2016-10-29 15:02:31 -07:00
Peter Hofmann
313347dd61
Show warnings about unreadable files even with verbosity == 0
...
I had a semi-corrupt encfs (which I detected, thanks to this tool!). A
file was only partially readable. Somewhere in the middle, an IOError
occured. Essentially, this is a corrupt file system -- which this tool
is meant to help detect --, so this class of errors shouldn't be
suppressed by "-q".
2016-09-21 17:45:29 +02:00
Peter Hofmann
4e3c840eb0
Show warnings about un-stat-able files even with verbosity == 0
...
I get that this is some kind of a grey area due to the underlying race
condition (files vanishing after they have been scanned). However, if we
can't stat() a file it can have many different causes -- the file being
vanished is just one of them. Since this tool is meant to help detect
bit rot and corrupt file systems, I'd rather be informed about
un-stat-able files.
2016-09-21 17:45:24 +02:00
Peter Hofmann
4bd293f024
Print full path when file name decoding fails
2016-09-19 18:16:55 +02:00
Lukasz Langa
5ed89d8b1a
[0.9.0] Python 3 compat, --quiet obeyed for bitrot.db checksum checks
0.9.0
2016-08-09 14:51:57 -07:00
Łukasz Langa
bfb73acc70
Merge pull request #17 from philipbl/error_files
...
Make bad files available in exception
2016-07-14 10:40:48 -07:00
Philip Lundrigan
49912e9c9c
Add Phil to authors
2016-07-14 08:28:20 -06:00
Philip Lundrigan
6405beaeba
Fix if condition
2016-07-14 08:28:05 -06:00
Philip Lundrigan
18bf67317e
Make error files available in exception
2016-07-13 12:58:20 -06:00
Łukasz Langa
e4efbc290c
bitrot 0.8.0, fsencoding and self-integrity check
2016-05-02 17:52:20 -07:00
Łukasz Langa
a09f0b0ad6
Bump version after fixing #13
2015-11-02 16:27:00 -08:00
Łukasz Langa
2fc483e6b4
Update README.rst
2015-11-02 16:26:21 -08:00
Łukasz Langa
539c277bd8
Open file in binary mode for SHA1 computation
...
Fixes #13 .
2015-11-02 16:23:18 -08:00
Łukasz Langa
0f4ebfa4fa
Fix a RST typo.
2015-06-22 18:10:49 -07:00
Łukasz Langa
13b0067ac8
[0.7.0] Multiple bug fixes and refactors
0.7.0
2015-06-22 18:08:26 -07:00
Łukasz Langa
08c6d436bf
Merge pull request #7 from msloth/hotfix-missing-dbase-at-test
...
catch missing database file when running 'test' instead of crashing
2014-12-30 16:37:33 -08:00
Łukasz Langa
a319333fdb
Merge pull request #8 from ganwell/master
...
Fixed possible unique constraint exception
2014-10-03 00:22:24 -07:00
Jean-Louis Fuchs
4d1ca47777
Fixed possible unique constraint exception
...
When renaming a file its hash can't be used in the WHERE
condition in the UPDATE statement since there _can_ be more
than one file having the same hash and not all of them are
renamed just the one not existing anymore. So we need to use
the old path (now non-existent) to specify the record to
update.
To make the code more clear I also added setting the hash
explicitly in the UPDATE statement.
2014-09-10 15:48:33 +02:00
Marcus Linderoth
a6e1bb9b4c
catch missing database file when running 'test' instead of crashing
2014-08-10 18:03:28 +02:00
Łukasz Langa
e5f737b09d
PEP 8
0.6.0
2013-11-11 00:43:22 -08:00
Łukasz Langa
1b8a582e34
Add --follow-links, skip files with ENOACCES et al.
2013-11-11 00:38:05 -08:00
Łukasz Langa
1f94944f87
commit at exit, in case of interrupted execution
2013-10-27 06:49:55 +01:00
Łukasz Langa
9521bdea00
minor formatting fixes, bumped to 0.6.0
2013-10-27 06:45:25 +01:00
Łukasz Langa
a8faff93e1
Merge branch 'periodic-commits' of git://github.com/yang/bitrot into yang-periodic-commits
...
Conflicts:
src/bitrot.py
2013-10-19 22:17:17 +02:00
Łukasz Langa
dbdf7cf99b
Merge branch 'master' of github.com:ambv/bitrot
...
Conflicts:
src/bitrot.py
2013-10-19 22:15:51 +02:00
Łukasz Langa
f0e2d61fc3
Merge pull request #2 from yang/ignore-broken-symlinks
...
Ignore broken symlinks/files that disappear
2013-10-19 13:00:04 -07:00
Łukasz Langa
2cf550d6a3
Merge pull request #1 from yang/div-by-zero
...
Fix division-by-zero bug
2013-10-19 12:58:01 -07:00
Yang Zhang
af81b67d58
Use proper defined constant ENOENT
2013-10-17 11:42:23 -07:00
Yang Zhang
11e94f663c
Clean up throttling and sha1 from feedback
2013-10-17 11:40:01 -07:00