deduplicating backup program
git clone git://
Log | Files | Refs | README | LICENSE

DateCommit messageAuthorFiles+-
2019-07-13 00:24Fix free callssin1+3-3
2019-05-23 23:57Update TODOsin1+1-0
2019-05-23 14:02Forgot to update CHANGELOG, aw wellsin1+1-1
2019-05-22 10:40Reword comment to make it consistentsin1+1-1
2019-05-22 10:39Fix commentsin1+1-1
2019-05-21 12:19Removed trailing tabEddie Thieda1+1-1
2019-05-21 11:42Fix type mismatchsin2+2-2
2019-05-21 11:40Remove some magic numberssin4+41-22
2019-05-21 11:32Add some comments to bcompresssin1+3-3
2019-05-21 11:10Revert "Store key in hex format"sin1+2-16
2019-05-21 10:55Store key in hex formatsin1+16-2
2019-05-21 08:45Modified wordingEddie Thieda1+2-2
2019-05-20 11:10Update TODOsin1+1-0
2019-05-20 11:01Rename bcompat to compatsin5+4-4
2019-05-20 10:57Fix dup-init so the repo can be created in the current directorysin1+2-1
2019-05-20 10:39Fix grammarsin1+1-1
2019-05-20 10:18Use uchar instead of uint8_tsin3+3-3
2019-05-20 10:16Update DESIGNsin1+5-0
2019-05-20 10:07Fix typo in dup-init.1sin1+2-2
2019-05-20 10:02No need to call strerror() for malloc()/calloc() failuresin5+21-24
2019-05-19 18:30Call sodium_init in beopen()sin1+5-0
2019-05-19 17:18Remove unused vars, thanks Evil_Bob!sin6+1-16
2019-05-19 16:56Initialize sodium before generating random bytessin1+3-3
2019-05-19 16:26Add support for storing/retrieving an encrypted seedsin8+93-20
2019-05-19 15:52Xor the given seed into the buzhash tablesin3+11-4
2019-05-17 13:41No need to set csize to 0 when the call failssin1+0-1
2019-05-17 11:38Use param.key directly, no need to keep a copysin1+2-5
2019-05-17 11:30Check a key is provided when snapshots are encryptedsin1+6-0
2019-05-17 11:28Use a type field in snap.csin1+20-16
2019-05-16 13:48Define BSIZEAVG in the same way as it is done for MIN/MAXsin1+1-1
2019-05-16 13:43Explain the chunker a bit in the DESIGN documentsin1+9-1
2019-05-16 13:33Update TODOsin1+1-0
2019-05-16 11:42Free buf earlysin1+3-5
2019-05-16 11:40Return 1 if a block hash mismatch is detectedsin1+3-1
2019-05-16 11:39Revert "Fold checks into one"sin1+10-3
2019-05-16 11:36Fold checks into onesin1+3-10
2019-05-16 11:34Fix commentsin1+1-1
2019-05-16 11:30Update CHANGELOGsin1+1-1
2019-05-16 11:19Update DESIGNsin1+5-4
2019-05-16 11:09Load key before repo statesin5+5-5
2019-05-16 11:04Style fixsin1+0-1
2019-05-16 10:58encrypt: Use a switch instead of an if/elseif constructsin2+30-31
2019-05-16 10:51compress: Use a switch instead of an if/elseif constructsin1+23-24
2019-05-16 10:46Make creat()/open() param handling the samesin2+26-26
2019-05-16 10:38Reorder param checkssin2+11-14
2019-05-15 11:49Add comment for state.csin1+1-0
2019-05-14 11:31Fix type warning, switch to void *sin1+2-2
2019-05-14 11:28Style fixsin4+4-4
2019-05-14 11:12Style fixsin2+8-9
2019-05-14 11:01Rename fn to loadmdsin1+4-4
2019-05-14 10:33Split initmdhead() into plaintext/encrypted variantssin1+76-67
2019-05-14 10:27Split ssync() into plaintext/encryption variantssin1+68-53
2019-05-14 10:12Update DESIGNsin1+3-1
2019-05-14 10:05Move hashing to top layersin5+58-98
2019-05-13 22:32chunker: Fixup return typessin2+2-3
2019-05-13 22:23chunker: Call seterr()sin3+13-11
2019-05-13 22:10Fixup pack/unpack prototypessin2+4-4
2019-05-13 22:01Initialize reserved fields to 0sin2+2-0
2019-05-13 21:55Use bcompressops() directlysin1+9-35
2019-05-12 19:41Update commentsin1+1-1
2019-05-12 19:39Die early if encryption key is not providedsin1+5-0
2019-05-12 19:14Split some more pack/unpack from write/readsin1+34-29
2019-05-12 18:40Convert errx() to printerr()sin1+1-1
2019-05-12 18:37Fix commentsin3+5-5
2019-05-12 18:36Separate pack/unpack from write/readsin1+18-18
2019-05-12 18:30Split pack/unpack from write/readsin1+14-17
2019-05-12 18:27Set errors in key.csin7+26-13
2019-05-12 15:55Style fixsin1+2-2
2019-05-12 15:47snap.c: pack/unpack cannot failsin1+7-18
2019-05-12 15:38Use explicit sizessin2+3-3
2019-05-12 15:36Rework additional data handlingsin1+36-39
2019-05-12 15:28Compare against define in assert()sin3+3-3
2019-05-12 14:24Encrypt/authenticate snapshot metadatasin2+160-39
2019-05-12 11:01Fixup declarationssin9+7-4
2019-05-12 10:57Use seterr() when reading/write the state filesin7+29-16
2019-05-12 10:52Move error functions to misc.c so they can be reusedsin15+167-193
2019-05-12 10:42Use extern for declssin1+2-2
2019-05-12 10:32Fix error messagesin1+1-1
2019-05-12 09:30Remove outdated commentsin1+1-1
2019-05-12 09:26Use extern for declssin1+2-2
2019-05-12 09:20dup-init: Call loadkey() after locking the reposin1+6-1
2019-05-12 09:19Rename some more symbolssin6+24-24
2019-05-12 09:18Rename {load,save}key to {read,write}keysin9+18-18
2019-05-12 09:17Rename {load,save}state to {read,write}statesin8+16-16
2019-05-12 09:03Use a state file to store repository settingssin14+317-248
2019-05-08 00:14Implement state filesin3+146-0
2019-05-09 12:45Nuke some whitespacesin1+0-2
2019-05-09 10:39Do not exit on error in runtestssin1+1-1
2019-05-08 00:16Re-arrange some definessin2+11-4
2019-05-07 23:57Align some commentssin2+21-21
2019-05-07 20:06Update commentsin2+2-2
2019-05-07 20:04snap: Update pack functionssin1+4-2
2019-05-07 19:56Change snapshot formatsin1+128-8
2019-05-07 19:56Reorder bhdr fieldsin1+3-3
2019-05-07 17:11Fix error messagesin1+1-1
2019-05-07 15:57Switch from singly linked list to a tail queuesin1+15-15
2019-05-06 00:00Add DESIGN docsin1+51-0
2019-05-05 20:25No need for a temporary bops pointersin2+21-57
2019-05-05 20:22Remove useless commentsin1+0-1
2019-05-05 20:17Add some comments to snap.csin1+8-8
2019-05-05 19:56dup-check: Print hashes of corrupt blockssin2+16-1
2019-05-05 20:03Make bcheck() return 1 if a block hash mismatch was detectedsin1+4-3
2019-05-05 19:53Rework manpagessin5+21-13
2019-05-05 19:43Fix comment stylesin1+2-1
2019-05-05 19:41Fixup definition ordersin1+1-1
2019-05-05 19:38Rework some commentssin5+6-27
2019-05-05 19:29Fix stylesin1+4-8
2019-05-05 19:27Fix memleaksin1+8-5
2019-05-05 19:23Enable support for repository lockingsin7+36-2
2019-05-05 19:14Don't unlink lockfilesin2+2-10
2019-05-05 16:50Avoid chdir calls in dup-gc(1) and dup-init(1)sin2+25-14
2019-05-05 16:34Implement {lock,unlock}repo()sin3+59-0
2019-05-05 16:18Put misc declarations in misc.hsin7+9-13
2019-05-05 16:16Fix declaration stylesin1+3-3
2019-05-05 16:05Fix commentsin1+2-0
2019-05-05 10:58Add lz4 supportsin7+60-5
2019-05-05 07:07Change wording.Eddie Thieda1+1-1
2019-05-03 15:57Update TODOsin1+0-1
2019-05-03 15:54Fix testssin7+7-7
2019-05-03 15:43More strerrorsin4+45-40
2019-05-03 15:41Use strerror() in block.csin1+3-2
2019-05-03 15:40More instances of strerror in snap.csin1+15-11
2019-05-03 15:33Check mkdir() return valuesin1+4-2
2019-05-03 15:32Use strerror()sin2+6-4
2019-05-03 14:29Set error closer to where it happenedsin1+14-14
2019-05-03 14:18Add error reporting to bstorage.csin1+86-21
2019-05-03 14:11Error reporting for bencrypt.csin1+36-12
2019-05-03 14:10Error reporting for bcompress.csin1+26-7
2019-05-03 14:09Error reporting for block.csin1+33-11
2019-05-03 14:08Set error message in snap.csin1+42-12
2019-05-03 14:03Use serr/berr in the toolssin6+52-68
2019-05-03 14:02Report unknown errorssin2+8-2
2019-05-03 13:51Add error reporting functions for snapshotssin2+28-0
2019-05-03 13:20Add error reporting functionssin2+28-0
2019-05-03 12:55Add missing externsin1+1-1
2019-05-03 12:37Reword READMEsin1+2-2
2019-05-03 12:31Fix outdated commentsin1+1-1
2019-05-03 12:24Explicitly set key to NULL in default bparamsin1+5-1
2019-05-03 12:17No need to call bssync() from bsclose()sin1+0-3
2019-05-03 12:10Update TODOsin1+1-0
2019-05-03 12:07improve portability of tests and improve dup-rm testHiltjo Posthuma5+25-15
2019-05-03 11:37Check against KEYSIZE for consistencysin1+3-3
2019-05-03 11:35Use xread/xwrite helpers in key.csin1+6-2
2019-05-03 11:24Add some comments to bencryptsin1+10-4
2019-05-03 11:15Style fixessin1+3-2
2019-05-02 23:22Update TODOsin1+1-0
2019-05-02 23:21Update CHANGELOGsin1+1-0
2019-05-02 23:10Fix signed/unsigned warningssin1+2-2
2019-05-02 23:07Update READMEsin1+4-4
2019-05-02 23:00Remove outdated comment in dup-init(1)sin1+0-2
2019-05-02 22:51Rework key.c asserts againsin1+6-6
2019-05-02 22:47Pipe to tar in READMEsin1+2-2
2019-05-02 22:44Update READMEsin1+1-1
2019-05-02 22:40Rework assertssin1+5-5
2019-05-02 22:32Add -k option to dup-init(1)sin3+29-4
2019-05-02 15:37Add some comments to bencrypt.csin1+8-0
2019-05-02 15:25Update TODOsin1+1-0
2019-05-02 15:17dup-unpack: keyfile could be uninitializedHiltjo Posthuma1+1-1
2019-05-02 15:08dup-keygen: fix warning: return 0 in keygen()Hiltjo Posthuma1+1-0
2019-05-02 15:01Reword READMEsin1+3-3
2019-05-02 14:59Explain how to use encrypted repos in READMEsin1+24-0
2019-05-02 14:46Add comment in config.h about key sizesin1+1-1
2019-05-02 14:44Make bparams case-insensitivesin3+15-12
2019-05-02 13:55Add initial encryption supportsin24+686-40
2019-05-02 14:00Rename bparam to bpar to be consistentsin2+4-4
2019-05-02 13:26Rework bcput/bcgetsin1+34-20
2019-05-02 12:48Free compression context on errorsin1+4-3
2019-05-01 21:26Rename flags to constants in commentsin1+2-2
2019-05-01 21:19Call sodium_init()sin1+6-0
2019-05-01 21:09Switch to libsodium generic hash APIsin14+19-1226
2019-05-01 20:08Update TODOsin1+1-0
2019-05-01 20:06Pre-bump version numbersin1+1-1
2019-05-01 20:03Create a test Makefile targetsin2+3-1
2019-05-01 20:01Break dotest into one file per testsin9+106-116
2019-05-01 19:54Some more comments in bstorage.csin1+75-36
2019-05-01 13:33Shorten type width to 16 bits and mark rest as reservedsin2+13-7
2019-05-01 13:03Use block descriptor type to select hash function in bscheck()sin1+1-1
2019-05-01 12:45Reflect hash type in the block descriptor typesin1+12-9
2019-05-01 12:37Update CHANGELOGsin1+1-1
2019-05-01 12:34Add back blake2s supportsin3+67-6
2019-05-01 12:30Add blake2s reference implementationsin2+368-0
2019-04-30 16:52Update CHANGELOGsin1+15-0
2019-04-27 18:17Sync tree.h with OpenBSDsin1+0-12
2019-04-27 18:12Some more style fix, rename some varssin3+9-9
2019-04-27 18:05Add some more information in the dup-gc(1) manpagesin1+7-4
2019-04-27 18:00Rework README a bitsin1+1-2
2019-04-27 17:49Style fixsin8+51-52
2019-04-27 17:42Put xread/xwrite to misc.csin6+53-120
2019-04-27 17:31Add some commentssin1+10-5
2019-04-27 17:30Reorder some code in bscheck()sin1+5-10
2019-04-27 17:26Delete unused variablesin1+1-1
2019-04-26 17:08Rephrase READMEsin1+1-1
2019-04-26 16:59Rename fieldsin1+6-6
2019-04-26 16:55Remove indentation levelsin1+15-14
2019-04-26 16:50Add truncation checks for pathssin4+45-26
2019-04-26 15:02Fix allocation sizesin1+1-1
2019-04-26 14:46Include some needed headers in bcompat on *BSDsin1+3-0
2019-04-26 13:50Introduce S_READ/B_READ/B_RDWRsin10+30-16
2019-04-26 13:41Remove useless options from dup-gc(1)sin1+0-6
2019-04-26 11:56Add test for dup-gc(1)sin1+18-0
2019-04-26 11:49Implement dup-gc(1)sin10+113-19
2019-04-26 10:22Add some commentssin1+2-1
2019-04-26 10:16More gc worksin1+31-20
2019-04-26 10:07Implement block gc operationsin5+50-1
2019-04-26 09:59Update TODOsin1+1-1
2019-04-26 09:57Add some more testssin1+40-4
2019-04-26 09:44Add block compat interfacesin5+25-5
2019-04-26 08:00Rework bparam handling in the storage layersin1+27-40
2019-04-25 21:50Add CAVEATS section to dup-rm(1)sin1+4-0
2019-04-25 21:46Add some comments to bsrm()sin1+6-0
2019-04-25 21:08If fallocate(2) fails do our best to recoversin1+7-1
2019-04-25 21:04Implement dup-rm(1)sin3+119-4
2019-04-25 21:02Implement block deletionsin5+63-1
2019-04-25 20:43Skip block descriptors with a reference count of 0sin1+4-1
2019-04-25 20:40Update TODOsin1+1-0
2019-04-25 20:36Store a reference count in the block descriptorsin1+19-3
2019-04-25 20:04Remove unused headersin1+0-1
2019-04-25 20:03Fix error messagesin1+1-1
2019-04-25 19:54Implement dup-check(1)sin9+192-5
2019-04-25 19:22No need for tar -cf - just use tar -csin1+1-1
2019-04-25 18:03Update TODOsin1+1-0
2019-04-25 18:02Make snapshots immutablesin1+5-1
2019-04-25 17:24Makefile style fixsin1+0-1
2019-04-25 17:21Rework manpagessin3+7-8
2019-04-25 17:11No need for explicit exit 1 as we use set -esin1+4-4
2019-04-25 17:10Leave artifacts behind if the test failssin1+2-2
2019-04-25 17:01Don't set +x on dotestsin1+0-0
2019-04-25 16:58Add a few simple testssin1+40-0
2019-04-25 16:44Remove unused declarationssin1+0-3
2019-04-25 16:44Check magic outside of unpack just like the other fieldssin1+7-2
2019-04-25 15:30Add #bitreich-en contact info to READMEsin1+2-1
2019-04-25 15:18Add some commentssin4+15-6
2019-04-25 15:09Rename raw to generic layersin1+1-1
2019-04-25 13:40Add magic field at the start of the storage headersin1+11-3
2019-04-25 13:29Update TODOsin1+1-0
2019-04-25 13:28Re-order functions to be consistent with the block layersin2+16-16
2019-04-25 13:24Define BHDRSIZE in the same way as BDSIZEsin1+2-2
2019-04-25 13:18Add /usr/local/{include,lib} to CPPFLAGS/LDFLAGSsin1+2-1
2019-04-25 13:16Move CPPFLAGS to config.mksin2+2-1
2019-04-25 13:06Implement srewind() to rewind the snapshot entry offsetsin2+11-0
2019-04-25 13:03Drop -llz4 from LDLIBSsin1+1-1
2019-04-25 13:02Use appropriate mask when reading the hash algosin1+1-1
2019-04-25 13:00Some more sanity checkssin1+13-0
2019-04-25 12:56Fix typosin1+1-1
2019-04-25 12:54Rework bsopen() handling of compression/hash algossin1+2-33
2019-04-25 12:45Add none compression typesin1+1-0
2019-04-25 12:45Fix compression/hash table traversalsin1+8-8
2019-04-25 12:05Rewrite dedup from scratchsin44+2063-3486
2019-04-18 21:36Update TODOsin1+1-0
2019-04-18 21:16Flatten algomap structuresin2+29-51
2019-04-18 17:09dup-migrate: Rework description in manpagesin1+1-1
2019-04-18 15:07dup-migrate: Clarify what dup-list-old and dup-unpack-old aresin1+7-2
2019-04-18 14:42Use dup-*-old in the migration scriptsin1+2-2
2019-04-18 13:03Add scripts to distfilessin1+1-0
2019-04-18 13:01Sync after migrationsin1+1-0
2019-04-18 12:25dup-migrate: Discard metadata while readingsin1+1-1
2019-04-18 12:22Fix usagesin1+1-1
2019-04-18 12:18Implement dup-migrate(1)sin3+56-5
2019-04-18 12:05dup-pack: Print index cache hit percentage in verbose modesin1+10-0
2019-04-18 11:54Rename d* to dup-*sin20+219-219
2019-04-18 10:39Add missing bracessin1+2-1
2019-04-18 10:38Only compr/hash details some things in verbose modesin1+4-3
2019-04-18 10:36dinfo: Implement terse mode outputsin2+56-27
2019-04-18 10:25Re-order options in manpagesin1+3-3
2019-04-18 10:23Style fixsin2+0-2
2019-04-18 10:18Move SNAPSF/STOREF defines to dedup.hsin7+3-18
2019-04-18 09:42Move block helpers to utils.csin5+63-109
2019-04-18 09:35Put snapshot helpers to utils.csin6+124-307
2019-04-18 08:31Print compress/hash info in dinfo(1)sin2+9-10
2019-04-18 08:31Make match_ver() privatesin2+13-14
2019-04-17 23:46Factor out some more helperssin8+89-301
2019-04-17 23:35Factor out init_{blk,snap}_hdr()sin3+28-35
2019-04-17 18:58dunpack: write to stdout and describe in man pageHiltjo Posthuma2+2-2
2019-04-17 17:15Fix READMEsin1+1-1
2019-04-17 15:49Refactor dedup into multiple programssin16+1818-784
2019-04-17 15:13Use free_snap() instead of free()sin1+1-1
2019-04-17 14:52Initialize min blk size to UINT64_MAXsin1+1-6
2019-04-17 14:42No need to initialize hash_name to NULLsin1+1-2
2019-04-17 14:29Don't use $(BIN) in Makefile, soon we will be generating multiple binariessin1+16-16
2019-04-17 14:18Prefer libgomp over libompsin2+2-2
2019-04-17 14:16Add functions to list supported hashes/compressorssin4+30-0
2019-04-17 14:09Fix indentationsin1+2-2
2019-04-14 07:28Bump to 1.0sin2+2-2
2019-04-13 17:17Update TODOsin1+1-0
2019-04-13 12:44Update declsin1+2-2
2019-04-13 10:06Prevent const poisoningsin2+2-2
2019-04-13 09:00Print repo hash/compression algorithm in verbose modesin4+36-0
2019-04-13 08:56Re-order options in usage to match manpagesin1+1-1
2019-04-13 08:56Fix typo in usagesin1+1-1
2019-04-12 12:53Use an invalid type for the null entrysin2+2-2
2019-04-12 12:42Factor out hashes to separate filessin7+134-88
2019-04-12 12:37Factor out compressors into separate filessin6+182-149
2019-04-10 12:54Fix typosin1+2-2
2019-04-10 12:52Add an explicit check for unsupported algos to make the error obvioussin1+6-0
2019-04-10 12:48Check {compr,hash}_init() for failuressin1+14-7
2019-04-10 12:42Add a comment to clarify flags usagesin1+4-2
2019-04-10 12:41Make some more room in the flags for compression algossin1+2-2
2019-04-10 12:16Add support for snappy compressor/decompressorsin6+67-3
2019-04-08 12:18Explicitly initialize hash_algosin1+1-1
2019-04-07 13:39Oops, don't enable openmp by defaultsin1+2-2
2019-04-07 13:34Fix alignment in manpagesin2+3-3
2019-04-07 13:29Add support for blake2s and blake2spsin7+793-2
2019-04-07 13:16Comment fixsin1+3-3
2019-04-07 13:12Style fixsin2+6-22
2019-04-07 12:41Fix error messagesin1+1-1
2019-04-07 12:37More indentationsin1+1-1
2019-04-07 12:37Fix indentationsin1+1-1
2019-04-07 12:33Add a compr_final() hooksin3+29-0
2019-04-07 12:29Default to lz4sin1+1-1
2019-04-07 12:27Case-insensitive matchingsin2+4-2
2019-04-07 12:26Consistent naming between compressor/hash typessin2+7-7
2019-04-07 12:25Add mini compressor frameworksin5+208-61
2019-04-07 11:52Re-organize flags a bitsin1+3-4
2019-04-07 09:58Rename varsin1+4-4
2019-04-07 09:52Make name more concretesin2+3-3
2019-04-07 09:50Merge hash.h with dedup.hsin8+24-21
2019-04-07 09:38Fix man lint warningssin1+4-3
2019-04-07 09:14Add mini hash frameworksin6+184-73
2019-04-06 18:05Update TODOsin1+1-0
2019-04-06 17:58Remove empty assignments from config.mksin1+0-2
2019-04-06 17:50Update changelogsin1+4-0
2019-04-06 17:29Add flag to switch between blake2b and blake2bpsin3+67-20
2019-04-06 16:36Make parallel version optionalsin3+10-3
2019-04-06 16:19Experimental support for blake2bpsin4+376-14
2019-04-06 16:14Group headers under an HDR var in Makefilesin1+6-3
2019-04-06 08:40Remove impossible conditionsin1+1-2
2019-04-06 08:33Remove match_pattern and inline the code in the callersin1+7-13
2019-04-05 16:44Rename some varssin1+11-9
2019-04-05 07:26Check for divzerosin1+6-1
2019-04-01 14:45Fix percentage calculationsin1+3-1
2019-04-01 14:29Print cache hit percentagesin1+3-3
2019-03-30 16:31Move index cache statistics to icache.csin3+20-6
2019-03-30 16:18Rename some icache related functionssin3+7-7
2019-03-30 16:15Rename some defines for consistencysin3+20-20
2019-03-30 16:06Rename cache to icache (index cache)sin5+122-122
2019-03-30 16:03Rename cache_node to nodesin1+16-16
2019-03-28 12:55Add changelogsin2+6-0
2019-03-27 13:32Update READMEsin1+1-1
2019-03-26 17:50Bump to 0.9sin1+1-1
2019-03-26 17:49Fix comment in dedup.hsin1+3-3
2019-03-26 16:20Fix decl stylesin1+2-3
2019-03-26 16:14Rename struct snapshot to struct snap and related constantssin3+46-45
2019-03-24 19:36Print dedup ratiosin1+2-0
2019-03-24 12:43Update READMEsin1+4-4
2019-03-14 21:23Remove mention of SHA256sin1+1-1
2019-03-14 18:53Add missing header for ssize_tz3bra1+2-0
2019-03-10 14:12Update TODOsin1+0-1
2019-03-10 14:06Bump to 0.8sin1+1-1
2019-03-10 12:03Move var to inner scopesin1+1-1
2019-03-10 11:43Switch to blake2bsin6+754-18
2019-03-10 11:07Style fixsin1+5-5
2019-03-10 11:04Describe snapshot/blk len based on msgsize/mdsizesin2+6-8
2019-03-10 10:25Factor out snapshot hash calculation to a functionsin1+21-16
2019-03-10 10:11Update TODOsin1+1-0
2019-03-10 09:36Increase dedup throughput by a factor of 2sin1+18-6
2019-03-09 22:15Pass chunker params from callersin3+14-11
2019-03-09 21:58seek inside walk_snap()sin1+1-3
2019-03-09 21:45Remove unnecessary include in utils.csin1+0-1
2019-03-09 21:43Remove unnecessary includes in cache.csin1+0-4
2019-03-09 21:41Remove unused walk_cache()sin2+0-12
2019-03-09 17:21Update TODOsin1+1-2
2019-03-08 12:59Move compress/decompress functions to compress.csin5+64-54
2019-03-08 11:43Make buz table constsin1+1-1
2019-03-08 11:35Store params in chunker structsin1+33-21
2019-03-07 22:44Add missing header for ssize_tQuentin Rameau1+2-0
2019-03-07 21:10More __func__sin1+4-4
2019-03-07 21:07Use __func__ in error messagessin1+2-2
2019-03-07 18:28Fix typo in READMEsin1+1-1
2019-03-07 18:24Rework README a bitsin1+3-4
2019-03-07 18:21Update READMEsin1+21-1
2019-03-07 18:15Use __func__ in error messagessin1+3-3
2019-03-07 17:20Rename bak to repo in READMEsin1+5-5
2019-03-07 17:17Detect short readssin1+7-2
2019-03-07 16:41Bump to 0.7sin1+1-1
2019-03-07 13:24More overflow checkssin3+11-19
2019-03-07 13:09Re-order functionsin1+21-21
2019-03-07 11:38Fix style in Makefilesin1+1-1
2019-03-07 11:35Clarify tar usage in manpagesin1+2-1
2019-03-07 11:33Rework manpagesin1+18-10
2019-03-07 10:28Use blk_desc directly and remove cache_entrysin3+19-41
2019-03-06 15:23Update TODOsin1+0-1
2019-03-06 14:50Rename load_cache to build_cachesin1+2-2
2019-03-06 09:38Remove cache message digest from snapshot headersin2+6-13
2019-03-06 09:33Remove .cache filesin5+6-125
2019-03-05 22:39Change cache consistency algorithmsin4+53-101
2019-03-05 13:52Fix mem leaksin1+2-1
2019-03-05 12:14Update TODOsin1+1-0
2019-03-05 12:02Truncate cache before reloading itsin1+2-0
2019-03-05 11:58Rephrase sentence in manpagesin1+2-2
2019-03-05 11:57Clarify -Z in manpagesin1+1-1
2019-03-05 11:25Rebuild cache if there is a mismatch between # of entries and # of blockssin1+3-1
2019-03-05 11:21Add diagnostic about cache checksin1+6-0
2019-03-05 11:17Unify conditionalssin1+3-7
2019-03-04 16:20Partially revert previous patchsin1+6-2
2019-03-04 16:12Always check and rebuild the cachesin1+46-51
2019-03-04 15:42Check cache offset/size against block descriptorsin1+6-0
2019-03-04 15:31Use macros for snapshots/store filenamesin1+1-1
2019-03-04 15:29Use an int directly instead of wrapper structsin1+23-14
2019-03-04 15:00Fix prints againsin1+1-1
2019-03-04 14:58Rework printssin1+1-6
2019-03-04 14:56Rebuild cache if it is larger than expectedsin1+19-8
2019-03-04 14:45Check cache for consistencysin1+61-6
2019-03-04 08:58Print a message when rebuilding cache in verbose modesin1+4-0
2019-03-04 08:49Bump to 0.6sin1+1-1
2019-03-03 13:29Add -Z to disable compressionsin2+13-8
2019-03-03 13:24Store store compression status in the store headersin2+13-0
2019-03-03 13:18Introduce shift/mask definitions for maj/min versionsin2+8-4
2019-03-02 16:01Wrap long linesin1+6-5
2019-03-02 15:51Add a mechanism to disable compressionsin5+49-23
2019-03-02 15:40Remove unused argument from match_pattern()sin1+2-2
2019-03-02 15:37Be explicit about fd possin1+4-0
2019-03-02 15:34Use err() instead of errx()sin1+1-1
2019-03-02 14:04Update TODOsin1+1-0
2019-03-02 13:53Use *_SIZE instead of *_LENsin3+36-36
2019-03-02 13:48Update wording in READMEsin1+3-2
2019-03-02 13:45Update TODOsin1+0-2
2019-03-02 13:19Rename winsize to sizesin1+5-5
2019-03-02 13:03Create cache file if not presentsin1+5-1
2019-03-02 12:56Break out load_cache()sin1+9-9
2019-03-02 12:30Implement repo init operationsin3+55-43
2019-03-02 11:29Change paramssin1+4-4
2019-03-02 11:28Fix buzh_update() signaturesin1+1-1
2019-03-02 01:31Style fixsin1+1-1
2019-03-02 00:46Move stats aroundsin3+44-61
2019-02-28 16:01Update TODOsin1+1-0
2019-02-28 13:24Add some comments to explain type fieldssin1+16-16
2019-02-28 13:19Do not modify type in the serialization functionsin2+13-10
2019-02-28 13:11Remove some debug codesin2+7-21
2019-02-28 13:01Rework typessin3+178-79
2019-02-27 15:03Increment verbose var each time -v is setsin1+1-1
2019-02-27 15:01Make verbose variable available to all translation unitssin2+5-1
2019-02-27 11:59Make alloc_chunker() prototype consistent with other funcssin3+5-5
2019-02-27 10:25Position fd after snaphdr before walking snapshot entriessin1+4-0
2019-02-27 09:59Fold rebuild_cache inside load_cachesin1+12-16
2019-02-27 09:42Some more overflow checkssin1+8-2
2019-02-26 16:09README: add a note about LZ4 dependencyQuentin Rameau1+4-0
2019-02-26 11:42Update TODOsin1+1-0
2019-02-26 11:21No need to explicitly position fdsin1+0-1
2019-02-26 11:19No need to set fd pos to 0, it is already at 0sin1+0-1
2019-02-26 11:16Break out snaphdr loadingsin1+23-18
2019-02-26 11:10Implement helpers for overflow detectionsin3+20-7
2019-02-26 11:07Use calloc() consistentlysin2+5-7
2019-02-26 11:02Detect overflow before reallocsin1+10-2
2019-02-26 10:46Serialize/deserialize typesDimitris Papastamos5+275-29
2019-02-26 09:48When matching a pattern check if bottom bits of hash are 0sin2+2-9
2019-02-25 23:56Increase avg block size to 512ksin1+1-1
2019-02-25 15:36Make match_pattern() inline as wellsin1+7-7
2019-02-25 15:23Move buzhash code to chunker.csin4+67-73
2019-02-25 15:02Pull out cache dirty assignmentsin1+1-1
2019-02-25 15:00Bump to 0.5sin1+1-1
2019-02-25 14:54Re-order funcssin2+26-26
2019-02-25 14:05Merge types.h with dedup.hsin3+45-46
2019-02-25 14:03Rename cache->entries to cache->nodessin1+7-7
2019-02-25 14:00Wrap cache global state into a cache context structuresin3+42-22
2019-02-25 11:46Print error when trying to extract an unknown snapshot idsin1+5-0
2019-02-25 09:51Use local variablesin1+12-9
2019-02-24 23:39Capitalize stat outputsin1+7-7
2019-02-22 23:24Move rbtree cache to cache.csin5+210-162
2019-02-22 19:42Newline between system includes and libcsin1+1-0
2019-02-22 19:32Rework get_chunk_size() to return the size rather than the offsetsin1+6-7
2019-02-22 15:34Simplify fill_chunker()sin1+3-10
2019-02-22 15:26Replace .index with .snapshots in manpage and READMEsin3+9-9
2019-02-22 15:09Bump to 0.4sin1+1-1
2019-02-22 14:00Precalculate discriminatorsin1+5-5
2019-02-22 13:21Update commentsin1+2-3
2019-02-22 13:15Tweak paramssin3+39-19
2019-02-22 11:20Simplify hash a bitsin1+6-9
2019-02-21 23:12Tweak paramssin1+3-3
2019-02-21 21:10Avoid a potential min blk size of 0sin1+1-1
2019-02-21 21:09Wrap linesin2+3-2
2019-02-21 21:07Staticise some symbolssin1+44-44
2019-02-21 21:04Put some funcs in utils.csin4+76-63
2019-02-21 18:24Don't keep all snapshots in memory during walksin1+7-4
2019-02-21 14:57Ensure chunker is refilled up to capacitysin1+10-5
2019-02-21 14:22If there's no more input to consume return a null chunksin1+5-2
2019-02-21 13:52Fix get_chunk()sin1+4-1
2019-02-21 13:48Rework chunker interfacesin3+35-29
2019-02-21 13:08Prevent underflow in buzh_init()z3bra1+3-0
2019-02-21 11:01Align call to SHA256_Finalsin1+1-2
2019-02-21 10:58Add config.hsin3+15-5
2019-02-21 10:54Simplify dedup() functionsin1+74-48
2019-02-21 10:24Implement chunker interfacesin5+212-128
2019-02-21 08:54Add pack/unpack functionssin5+196-4
2019-02-20 15:38No need for a local varsin1+2-3
2019-02-20 15:34Bump to 0.3sin1+1-1
2019-02-20 14:37Count cache hit/miss for the current run onlyz3bra1+7-9
2019-02-20 14:06Rename stuffsin1+161-166
2019-02-20 13:23Calculate SHA256 sum of the uncompressed streamz3bra1+1-1
2019-02-20 12:53Unbreak block descriptor configurationsin1+12-10
2019-02-19 14:59Fixup print_md prototypesin1+5-5
2019-02-19 12:58Don't print any stats if the store is emptysin1+3-0
2019-02-19 10:17Rework statssin1+37-34
2019-02-19 09:56Fix typesin1+1-1
2019-02-19 09:23Add error wrapper for lseeksin1+18-7
2019-02-19 09:09Check comp/decomp() return codesin1+12-2
2019-02-19 08:35Fix makefilesin1+1-1
2019-02-18 19:37Lock the index/store/cache file descriptorssin2+6-1
2019-02-18 19:30Update stats printsin1+2-3
2019-02-18 19:24Encode file format version in the bottom 16 bits of flagssin2+18-2
2019-02-18 18:41Fix README examplez3bra1+1-1
2019-02-18 17:57Update READMEsin1+4-4
2019-02-18 17:52Fixup copyrightsin1+1-1
2019-02-18 17:42Bump to 0.2sin1+1-1
2019-02-18 17:00Update statssin1+13-16
2019-02-18 16:13Tweak paramssin1+3-3
2019-02-18 16:02Optimize chunking by always refilling bufferz3bra1+38-38
2019-02-18 13:33Don't flush cache if it hasn't been modifiedsin1+6-0
2019-02-18 13:22Fix statssin1+1-2
2019-02-18 13:10Add some statssin1+34-3
2019-02-18 08:33Simplify checksin1+1-1
2019-02-17 22:46Remove completed items from TODOsin1+0-2
2019-02-17 22:32Makefile bikesheddingQuentin Rameau1+4-4
2019-02-17 22:20Fix build on OpenBSDsin1+1-0
2019-02-17 22:14Commentsin1+1-0
2019-02-17 22:03Use a "double" buffer for compressionsin1+22-21
2019-02-17 21:51Fix crashsin1+3-3
2019-02-17 21:28Add primitive chunk compression supportsin2+66-39
2019-02-17 18:38Fix null terminator checksin1+1-1
2019-02-17 13:42Check buffer size in chunk_blk()z3bra1+8-6
2019-02-17 12:10Allocate entry out of loop so we don't hit a bogus freesin1+1-1
2019-02-17 12:04Provide better comment for chunking decisionsz3bra1+14-7
2019-02-17 11:52Rename write_blk to append_blksin1+4-10
2019-02-17 11:41Remember store size in the index headersin1+6-1
2019-02-17 11:32Update READMEsin1+1-1
2019-02-17 11:29Update TODOsin1+1-0
2019-02-17 11:27Rename store_blk to write_blksin1+2-2
2019-02-17 11:26Move var decl to inner scopesin1+2-2
2019-02-17 11:23Add support for attaching descriptive messages to snapshotssin2+30-8
2019-02-17 10:37Update READMEsin1+1-2
2019-02-17 10:34Update TODOsin2+1-1
2019-02-17 10:10Pass a block descriptor to store_blk()sin1+4-4
2019-02-17 10:08Rework lookupsin1+11-14
2019-02-17 09:54Print some stats about blk size in verbose outputsin1+20-7
2019-02-17 00:47TODO updatessin1+0-1
2019-02-17 00:44Style fixessin1+8-8
2019-02-17 00:14Tweakssin1+5-4
2019-02-16 23:58Experiment with BLKSIZ/WINSIZsin1+2-2
2019-02-16 23:49Hook in rolling hashsin1+41-28
2019-02-15 16:54Preparation for variable length dedup supportsin7+331-557
2018-03-31 09:04Rename sz to sizesin1+16-16
2018-03-29 14:51Manpage updatesin1+1-2
2018-03-29 14:30Use uint8_t instead of unsigned charsin1+11-11
2018-03-22 10:42Update READMEsin1+0-5
2018-03-22 10:31Drop dependency on OpenSSLsin4+308-22
2018-03-22 10:25Update TODOsin1+1-0
2018-03-22 00:22Change block size to 4kBsin1+1-1
2018-03-21 23:18Make xread/xwrite more robustsin2+30-13
2018-03-21 23:14Use consistent stylesin1+11-11
2018-03-21 19:40Add manpagesin2+39-1
2018-03-21 18:00Fix typesin1+1-1
2018-03-21 17:59Fix format stringsin1+5-5
2018-03-21 17:55show when chdir failed for -r root optionHiltjo Posthuma1+2-1
2018-03-21 17:47Show number of blocks stored in -lv outputsin1+2-0
2018-03-21 17:40Forbid 0 sized filessin1+5-3
2018-03-21 17:38Update TODOsin1+1-0
2018-03-21 17:33Use fstat to get the size of the filesin1+11-3
2018-03-21 17:25Rework arg parsing againsin1+17-15
2018-03-21 17:18Update TODOsin1+1-0
2018-03-21 16:22Use __func__sin1+1-1
2018-03-21 16:17Add commentsin1+1-0
2018-03-21 16:10Print error for unknown hashsin1+2-0
2018-03-21 16:08Add root dir optionsin2+19-11
2018-03-21 16:03Plug some leakssin1+37-12
2018-03-21 15:24Fix typos in READMEsin1+6-6
2018-03-21 15:20Add READMEsin2+33-1
2018-03-21 14:54Mark cache_data as packedsin1+1-1
2018-03-21 14:50Re-order some functionssin1+81-81
2018-03-21 14:42Dump list output to stdout not stderrsin1+4-1
2018-03-21 14:33Rework argument parsingsin1+16-10
2018-03-21 14:24Add TODOsin1+2-0
2018-03-21 14:11Adjust permissions depending on actionsin1+4-1
2018-03-21 14:04Parse input/output file from command line as wellsin1+14-5
2018-03-21 13:58Small stylistic changessin1+12-15
2018-03-21 13:52Fix verbose messagessin1+6-4
2018-03-21 13:45Rework cache codesin1+64-35
2018-03-21 13:21Fix bugsin1+9-5
2018-03-21 12:18Fix signed/unsigned issuesin1+3-3
2018-03-21 11:57Add caching supportsin3+1144-29
2018-03-21 11:12Ensure block pointer in the index file is within limitssin1+4-2
2018-03-21 11:10Implement nblks() that returns the number of blocks in the store filesin1+7-5
2018-03-21 10:26Remove unused varsin1+0-4
2018-03-21 10:25Add -Wallsin1+1-1
2018-03-21 10:25Add notesin1+2-0
2018-03-21 10:21Implement check functionsin1+29-7
2018-03-21 09:48Check for EOF on inputsin1+14-6
2018-03-21 09:44Missed onesin1+2-1
2018-03-21 09:44Wrapper to check for read/write failuressin1+33-13
2018-03-20 18:42sync arg.hHiltjo Posthuma1+11-26
2018-03-20 18:41Advance file pointer past the entry blockssin1+1-0
2018-03-20 18:39Implement list commandsin1+15-1
2018-03-20 18:19Fix uninitialized memorysin1+1-1
2018-03-20 18:15Put some reserved fields in struct ent for better alignmentsin1+1-0
2018-03-20 18:03Minor refactoringsin1+13-7
2018-03-20 17:58Dump blocks in verbose modesin1+2-0
2018-03-20 17:57Fix whitespacesin1+1-1
2018-03-20 17:57Change index/store filenamesin1+6-4
2018-03-20 17:56Add -g to CFLAGSsin1+1-0
2018-03-20 16:45Add term() and free entsin1+12-0
2018-03-20 16:40Add Makefilesin1+40-0
2018-03-20 16:02Initial commitsin3+398-0