X-Git-Url: http://git.vrable.net/?a=blobdiff_plain;f=scandir.cc;h=f8f6127cb62be40d9ba88b401f88f688cd1b0018;hb=da87780779a2f165503d019ee0b59d10e5d31ec8;hp=0dfdbdba58518dd7e7f91ec9cd375a8c86110731;hpb=c7c7041c1b79ffb27647d74a6a345dfcfbf9f190;p=cumulus.git diff --git a/scandir.cc b/scandir.cc index 0dfdbdb..f8f6127 100644 --- a/scandir.cc +++ b/scandir.cc @@ -148,8 +148,10 @@ int64_t dumpfile(int fd, dictionary &file_info) db->StoreObject(ref, block_csum, bytes); delete o; } + object_list.push_back(ref.to_string()); segment_list.insert(ref.get_segment()); + db->UseObject(ref); size += bytes; } @@ -355,10 +357,6 @@ int main(int argc, char *argv[]) tss = new TarSegmentStore(backup_dest); - string database_path = backup_dest + "/localdb.sqlite"; - db = new LocalDb; - db->Open(database_path.c_str()); - /* Write a backup descriptor file, which says which segments are needed and * where to start to restore this snapshot. The filename is based on the * current time. */ @@ -371,6 +369,13 @@ int main(int argc, char *argv[]) string desc_filename = backup_dest + "/" + desc_buf + ".lbs"; std::ofstream descriptor(desc_filename.c_str()); + /* Open the local database which tracks all objects that are stored + * remotely, for efficient incrementals. Provide it with the name of this + * snapshot. */ + string database_path = backup_dest + "/localdb.sqlite"; + db = new LocalDb; + db->Open(database_path.c_str(), desc_buf); + try { scanfile("."); } catch (IOException e) {