projects
/
cumulus.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Improve reporting of database errors.
[cumulus.git]
/
statcache.cc
diff --git
a/statcache.cc
b/statcache.cc
index
8e48c79
..
099eb70
100644
(file)
--- a/
statcache.cc
+++ b/
statcache.cc
@@
-30,9
+30,9
@@
#include <map>
#include <string>
#include <map>
#include <string>
-#include "format.h"
#include "ref.h"
#include "statcache.h"
#include "ref.h"
#include "statcache.h"
+#include "util.h"
using std::list;
using std::map;
using std::list;
using std::map;
@@
-79,10
+79,13
@@
static int pathcmp(const char *path1, const char *path2)
return pathcmp(slash1 + 1, slash2 + 1);
}
return pathcmp(slash1 + 1, slash2 + 1);
}
-void StatCache::Open(const char *path, const char *snapshot_name)
+void StatCache::Open(const char *path, const char *snapshot_name,
+ const char *snapshot_scheme)
{
oldpath = path;
oldpath += "/statcache";
{
oldpath = path;
oldpath += "/statcache";
+ if (snapshot_scheme != NULL)
+ oldpath = oldpath + "-" + snapshot_scheme;
newpath = oldpath + "." + snapshot_name;
oldcache = new ifstream(oldpath.c_str());
newpath = oldpath + "." + snapshot_name;
oldcache = new ifstream(oldpath.c_str());
@@
-125,12
+128,13
@@
void StatCache::ReadNext()
old_checksum = "";
old_contents.clear();
old_checksum = "";
old_contents.clear();
- /* First, read in the filename.
TODO: Unescaping.
*/
+ /* First, read in the filename. */
getline(cache, old_name);
if (!cache) {
end_of_cache = true;
return;
}
getline(cache, old_name);
if (!cache) {
end_of_cache = true;
return;
}
+ old_name = uri_decode(old_name);
/* Start reading in the fields which follow the filename. */
string field = "";
/* Start reading in the fields which follow the filename. */
string field = "";
@@
-173,7
+177,7
@@
void StatCache::ReadNext()
if (fields.count("inode"))
old_inode = parse_int(fields["inode"]);
if (fields.count("size"))
if (fields.count("inode"))
old_inode = parse_int(fields["inode"]);
if (fields.count("size"))
- old_
inod
e = parse_int(fields["size"]);
+ old_
siz
e = parse_int(fields["size"]);
old_checksum = fields["checksum"];
old_checksum = fields["checksum"];