# HG changeset patch # User Benoit Boissinot # Date 1224355148 -7200 # Node ID 06ca033801906a8d0132e387d2fa8c05050f83dc # Parent cb6395fc16a9478eddab62c051d640ee7336d1ed# Parent e9a2525d883479d70d3873a881ef77dccaefc378 merge with crew diff -r e9a2525d8834 -r 06ca03380190 mercurial/localrepo.py --- a/mercurial/localrepo.py Sat Oct 18 18:24:37 2008 +0200 +++ b/mercurial/localrepo.py Sat Oct 18 20:39:08 2008 +0200 @@ -1808,8 +1808,7 @@ for fname in extranodes: if isinstance(fname, int): continue - add_extra_nodes(fname, - msng_filenode_set.setdefault(fname, {})) + msng_filenode_set.setdefault(fname, {}) changedfiles[fname] = 1 # Go through all our files in order sorted by name. for fname in util.sort(changedfiles): @@ -1820,6 +1819,7 @@ # missing. if fname in msng_filenode_set: prune_filenodes(fname, filerevlog) + add_extra_nodes(fname, msng_filenode_set[fname]) msng_filenode_lst = msng_filenode_set[fname].keys() else: msng_filenode_lst = [] diff -r e9a2525d8834 -r 06ca03380190 mercurial/parsers.c --- a/mercurial/parsers.c Sat Oct 18 18:24:37 2008 +0200 +++ b/mercurial/parsers.c Sat Oct 18 20:39:08 2008 +0200 @@ -235,13 +235,6 @@ return ret; } - -static inline uint64_t ntohll(uint64_t x) -{ - return (((uint64_t)ntohl((uint32_t)x)) << 32) | - (uint64_t)ntohl((uint32_t)(x >> 32)); -} - const char nullid[20]; const int nullrev = -1; @@ -267,9 +260,14 @@ const char *end = data + size; while (data < end) { - offset_flags = ntohll(*((uint64_t *) data)); - if (n == 0) /* mask out version number for the first entry */ - offset_flags &= 0xFFFF; + offset_flags = ntohl(*((uint32_t *) (data + 4))); + if (n == 0) /* mask out version number for the first entry */ + offset_flags &= 0xFFFF; + else { + uint32_t offset_high = ntohl(*((uint32_t *) data)); + offset_flags |= ((uint64_t) offset_high) << 32; + } + comp_len = ntohl(*((uint32_t *) (data + 8))); uncomp_len = ntohl(*((uint32_t *) (data + 12)));