summaryrefslogtreecommitdiff
path: root/tree.c
Commit message (Collapse)AuthorAgeFilesLines
* [PATCH] delta checkNicolas Pitre2005-05-201-0/+2
| | | | | | | | | This adds knowledge of delta objects to fsck-cache and various object parsing code. A new switch to git-fsck-cache is provided to display the maximum delta depth found in a repository. Signed-off-by: Nicolas Pitre <nico@cam.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
* [PATCH] read_tree_recursive(): Fix leaksJonas Fonseca2005-05-111-2/+5
| | | | | | | Fix two potential leaks. Signed-off-by: Jonas Fonseca <fonseca@diku.dk> Signed-off-by: Petr Baudis <pasky@ucw.cz>
* Add git-update-cache --replace option.Junio C Hamano2005-05-071-1/+1
| | | | | | | | | | | | When "path" exists as a file or a symlink in the index, an attempt to add "path/file" is refused because it results in file vs directory conflict. Similarly when "path/file1", "path/file2", etc. exist, an attempt to add "path" as a file or a symlink is refused. With git-update-cache --replace, these existing entries that conflict with the entry being added are automatically removed from the cache, with warning messages. Signed-off-by: Junio C Hamano <junkio@cox.net>
* [PATCH] don't load and decompress objects twice with parse_object()Nicolas Pitre2005-05-061-17/+27
| | | | | | | | | | | | | | | | | | | | | | | | | | It turns out that parse_object() is loading and decompressing given object to free it just before calling the specific object parsing function which does mmap and decompress the same object again. This patch introduces the ability to parse specific objects directly from a memory buffer. Without this patch, running git-fsck-cache on the kernel repositorytake: real 0m13.006s user 0m11.421s sys 0m1.218s With this patch applied: real 0m8.060s user 0m7.071s sys 0m0.710s The performance increase is significant, and this is kind of a prerequisite for sane delta object support with fsck. Signed-off-by: Nicolas Pitre <nico@cam.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
* Be more careful about tree entry modes.Linus Torvalds2005-05-051-2/+4
| | | | | | | The tree object parsing used to get the executable bit wrong, and didn't know about symlinks. Also, fsck really wants the full mode value so that it can verify the other bits for sanity, so save it all in struct tree_entry.
* [PATCH] Fix memory leaks in git-fsck-cacheSergey Vlasov2005-05-041-2/+7
| | | | | | | | This patch fixes memory leaks in parse_object() and related functions; these leaks were very noticeable when running git-fsck-cache. Signed-off-by: Sergey Vlasov <vsu@altlinux.ru> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
* Make fsck-cache do better tree checking.Linus Torvalds2005-05-021-5/+0
| | | | | | | We check the ordering of the entries, and we verify that none of the entries has a slash in it (this allows us to remove the hacky "has_full_path" member from the tree structure, since we now just test it by walking the tree entries instead).
* [PATCH] introduce xmalloc and xreallocChristopher Li2005-04-261-4/+4
| | | | | | | | Introduce xmalloc and xrealloc to die gracefully with a descriptive message when out of memory, rather than taking a SIGSEGV. Signed-off-by: Christopher Li<chrislgit@chrisli.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
* Don't add references to objects we couldn't find. Linus Torvalds2005-04-241-1/+2
| | | | That would SIGSEGV.
* Verify that the object type matches for tree/commit objects even before parsing.Linus Torvalds2005-04-241-1/+1
| | | | The type doesn't come from the parsing, the type also has to match the usage.
* Set object type at object creation time, not object parse time.Linus Torvalds2005-04-241-1/+1
| | | | Otherwise we can have objects without a type, which is not good.
* [PATCH] Parse tree objects completelyDaniel Barkalow2005-04-231-3/+17
| | | | | | | This adds the contents of trees to struct tree. Signed-Off-By: Daniel Barkalow <barkalow@iabervon.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
* Move "read_tree()" to "tree.c" to be used as a generic helper function.Linus Torvalds2005-04-221-0/+65
| | | | Next step: make "diff-cache" use it.
* [PATCH] Implementations of parsing functionsDaniel Barkalow2005-04-181-0/+67
This implements the parsing functions. Signed-Off-By: Daniel Barkalow <barkalow@iabervon.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>