summaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2015-08-01Release debian/changelogobnam-1.13Lars Wirzenius1-2/+2
2015-08-01Add note to NEWS that green-albatross is scaryLars Wirzenius1-0/+5
2015-08-01Update version numbers for 1.13Lars Wirzenius3-3/+3
2015-08-01Add debian/changelog entry to close 793792Lars Wirzenius1-0/+8
2015-08-01Update NEWS about forget commit changesLars Wirzenius1-0/+6
2015-08-01forget: Commit changes after each generationLars Wirzenius1-10/+10
This means that if the forget operation is aborted, the next run will not have to re-do the work for all generations that were already processed. Suggested-by: Lukáš Poláček
2015-08-01Add empty lines to make code clearerLars Wirzenius1-0/+8
2015-08-01Redefine commit_* to NOT unlockLars Wirzenius6-33/+105
Update all callers to call unlock_foo after every commit_foo. Add tests to check that commit_* do not unlock. Fix some tests that were meaningless. Change commit_* implementations to not unlock. This allows us to commit, then continue, e.g., for forget or backup checkpoints. The checkpoints still unlock and re-lock, however, due to tests failing otherwise, indicating a problem elswewhere.
2015-08-01Update NEWS about chunk removal when forgettingLars Wirzenius1-0/+3
2015-08-01Implement remove_unused_chunks for fm6, use itLars Wirzenius3-10/+21
2015-08-01Add remove_unused_chunks methodLars Wirzenius4-0/+19
2015-08-01Clarify that flush_chunks is for new chunksLars Wirzenius1-1/+1
2015-08-01Refactor forget plugin code for clarityLars Wirzenius1-39/+43
2015-07-25Update NEWSLars Wirzenius1-0/+12
2015-07-25Drop --ignore-missing-chunks optionLars Wirzenius5-25/+14
We want robustness by default, and always.
2015-07-25Turn on forget --ignore-missing-chunk by defaultLars Wirzenius1-0/+1
2015-07-25Add --ignore-missing-chunks option to forgetLukáš Poláček5-11/+24
2015-07-25Add scenario for repo with lost chunksLars Wirzenius2-0/+102
2015-07-21Return set from GAClientList.get_client_namesLars Wirzenius2-2/+2
This makes the check whether a client exists much faster.
2015-07-21Cache list of client namesLars Wirzenius1-1/+12
2015-07-19Drop simple from setup.pyLars Wirzenius1-1/+0
2015-07-19Use Bag.get_bytes to determine when bag is fullLars Wirzenius2-3/+3
2015-07-19Add Bag.get_bytes to get length in bytesLars Wirzenius2-2/+13
2015-07-19Only use one blob store per clientLars Wirzenius1-8/+11
2015-07-19Drop the simple formatLars Wirzenius6-702/+2
It is no longer particularly useful and maintaining a format that's not usable for real data is extra work.
2015-07-19Split chunk and DIR object cache sizesLars Wirzenius4-2/+11
2015-07-19Rewrite GAChunkStore in terms of BlobStoreLars Wirzenius1-38/+35
This avoids some duplicate code.
2015-07-19Drop remove_chunkLars Wirzenius6-62/+13
FORMAT GREEN ALBATROSS puts multiple chunks in a bag. This means that removing an individual chunk can't happen without rewriting a bag, and that would be disastrous for other reasons. Thus, we drop the remove_chunk method from RepositoryInterface. Format 6 still drops chunks when "obnam forget" is run. For Green Albatross, we'll need to figure out some kind of garbage collection for "obnam forget" (or RepositoryInterface.remove_generation) to use, so that unused chunk bags actually disappear. But they weren't disappearing correctly before this change anyway.
2015-07-18Cache blobs in BlobStoreLars Wirzenius3-0/+50
2015-07-17Add mmicrobenchmark for object serialisationLars Wirzenius1-0/+57
2015-07-17Speed up repo_key_name with lookup tableLars Wirzenius1-4/+3
2015-07-17Simplify get_file_children in Green AlbatrossLars Wirzenius2-3/+27
2015-07-17Pack more DIR objects in a bagLars Wirzenius1-1/+1
2015-07-17Prettify YAML output from dump-bag, dump-objLars Wirzenius2-2/+2
2015-07-11Change Green Albatross storage to be smaller objectsLars Wirzenius8-88/+573
2015-07-11Cache lookups of get_directoryLars Wirzenius1-3/+16
2015-07-11Always add . to a directoryLars Wirzenius1-0/+1
2015-07-11Don't return . as a fileLars Wirzenius1-1/+3
2015-07-11Drop unnecessary file removalLars Wirzenius1-1/+0
Either it's a new (and empty) parent directory, or the parent directory didn't have the file, when the file was originally added.
2015-07-11Bug fixesLars Wirzenius1-1/+2
2015-07-11Change GAFileMetadata to use GATreeLars Wirzenius1-50/+148
2015-07-11Fix GADirectory to get integer key codes, store namesLars Wirzenius1-2/+4
Previously, GAClient would do the conversion, but it's much easier to do this in GADirectory instead. This way, when anyone upper in the call stack needs to compare a key, they can just compare to the integer code.
2015-07-11Do not require / is in cache when flushing GATreeLars Wirzenius1-1/+2
2015-07-11Rename metadata_id to root_object_idLars Wirzenius1-18/+19
It's just a name change, so far, not an actual change in how things are implemented. Baby steps.
2015-07-11Rename objdump and bagdumpLars Wirzenius2-0/+0
This avoids me having to retrain my fingers, which are now very used to typing "ob<TAB>l<TAB>" to complete "obnamlib".
2015-07-10Backup metadata before backing up file contentLars Wirzenius1-0/+1
This is in addition to backing it up after the file content. It's necessary to back it up afterwards so that the whole file checksum is set. Backing metadata up before the file content is necessary so that the file type is set before a checkpoint generation happens, due to changes required by Green Albatross.
2015-07-10Buffer added files until st_mode is knownLars Wirzenius2-11/+99
Green Albatross needs to know if it the added file is a directory, before it can add it.
2015-07-09Load and save file metadata for every operationLars Wirzenius1-29/+50
This is in preparation for switching to GATrees and GADirectories instead of large blobs of metadata for all files in a generation.
2015-07-09Bugfix: generation numbers must be stringsLars Wirzenius1-2/+2
2015-07-09Bugfix: only add file to GAFileMetadata if not thereLars Wirzenius1-4/+5