Revision fa3a0c94dc88567b513e58835e5915f87da40af9 authored by Shawn O. Pearce on 11 February 2009, 18:15:30 UTC, committed by Junio C Hamano on 11 February 2009, 18:25:24 UTC
There is some risk that re-opening a regenerated pack file with different offsets could leave stale entries within the delta base cache that could be matched up against other objects using the same "struct packed_git*" and pack offset. Throwing away the entire delta base cache in this case is safer, as we don't have to worry about a recycled "struct packed_git*" matching to the wrong base object, resulting in delta apply errors while unpacking an object. Suggested-by: Daniel Barkalow <barkalow@iabervon.org> Signed-off-by: Shawn O. Pearce <spearce@spearce.org> Signed-off-by: Junio C Hamano <gitster@pobox.com>
1 parent 3d20c63
test-match-trees.c
#include "cache.h"
#include "tree.h"
int main(int ac, char **av)
{
unsigned char hash1[20], hash2[20], shifted[20];
struct tree *one, *two;
if (get_sha1(av[1], hash1))
die("cannot parse %s as an object name", av[1]);
if (get_sha1(av[2], hash2))
die("cannot parse %s as an object name", av[2]);
one = parse_tree_indirect(hash1);
if (!one)
die("not a treeish %s", av[1]);
two = parse_tree_indirect(hash2);
if (!two)
die("not a treeish %s", av[2]);
shift_tree(one->object.sha1, two->object.sha1, shifted, -1);
printf("shifted: %s\n", sha1_to_hex(shifted));
exit(0);
}
![swh spinner](/static/img/swh-spinner.gif)
Computing file changes ...