summaryrefslogtreecommitdiff
path: root/fast-import.c
diff options
context:
space:
mode:
authorJonathan Nieder <jrnieder@gmail.com>2010-10-20 15:25:58 -0500
committerJunio C Hamano <gitster@pobox.com>2010-10-20 14:35:58 -0700
commitb21241253bf1216bd31d24d27446895ea17b1a08 (patch)
tree7d27fb77583fc7abadfa620ba6db686a0e742783 /fast-import.c
parent971728c853f8fcdfcecd768c74010965c383c431 (diff)
downloadgit-b21241253bf1216bd31d24d27446895ea17b1a08.tar.gz
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>
Diffstat (limited to 'fast-import.c')
-rw-r--r--fast-import.c5
1 files changed, 1 insertions, 4 deletions
diff --git a/fast-import.c b/fast-import.c
index cb947c10d7..d881630b01 100644
--- a/fast-import.c
+++ b/fast-import.c
@@ -2070,16 +2070,13 @@ static uintmax_t do_change_note_fanout(
char *fullpath, unsigned int fullpath_len,
unsigned char fanout)
{
- struct tree_content *t;
+ struct tree_content *t = root->tree;
struct tree_entry *e, leaf;
unsigned int i, tmp_hex_sha1_len, tmp_fullpath_len;
uintmax_t num_notes = 0;
unsigned char sha1[20];
char realpath[60];
- if (!root->tree);
- load_tree(root);
- t = root->tree;
for (i = 0; t && i < t->entry_count; i++) {
e = t->entries[i];
tmp_hex_sha1_len = hex_sha1_len + e->name->str_len;