fast-import: do not clear notes in do_change_note_fanout()
Commit 5edde51
(fast-import: filemodify after M 040000 <tree> ""
crashes, 2010-10-17) taught fast-import to load trees from the
object db as needed when it is time to access them.
But it went too far. In change_note_fanout(), an empty,
not-loaded tree is not meant to destroy notes, so calling
load_tree() at that point is exactly the wrong thing to do.
Kudos to Johan Herland for t9301, which caught this failure.
Reported-by: Thomas Rast <trast@student.ethz.ch>
Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
parent
971728c853
commit
b21241253b
@ -2070,16 +2070,13 @@ static uintmax_t do_change_note_fanout(
|
|||||||
char *fullpath, unsigned int fullpath_len,
|
char *fullpath, unsigned int fullpath_len,
|
||||||
unsigned char fanout)
|
unsigned char fanout)
|
||||||
{
|
{
|
||||||
struct tree_content *t;
|
struct tree_content *t = root->tree;
|
||||||
struct tree_entry *e, leaf;
|
struct tree_entry *e, leaf;
|
||||||
unsigned int i, tmp_hex_sha1_len, tmp_fullpath_len;
|
unsigned int i, tmp_hex_sha1_len, tmp_fullpath_len;
|
||||||
uintmax_t num_notes = 0;
|
uintmax_t num_notes = 0;
|
||||||
unsigned char sha1[20];
|
unsigned char sha1[20];
|
||||||
char realpath[60];
|
char realpath[60];
|
||||||
|
|
||||||
if (!root->tree);
|
|
||||||
load_tree(root);
|
|
||||||
t = root->tree;
|
|
||||||
for (i = 0; t && i < t->entry_count; i++) {
|
for (i = 0; t && i < t->entry_count; i++) {
|
||||||
e = t->entries[i];
|
e = t->entries[i];
|
||||||
tmp_hex_sha1_len = hex_sha1_len + e->name->str_len;
|
tmp_hex_sha1_len = hex_sha1_len + e->name->str_len;
|
||||||
|
Loading…
Reference in New Issue
Block a user