One caller of deref_tag() was not careful enough to make sure what deref_tag() returned was not NULL (i.e. we found a tag object that points at an object we do not have). Fix it, and warn about refs that point at such an incomplete tag where needed. Signed-off-by: Junio C Hamano <email@example.com>
Again I left the v2.6.11-tree tag behind. My bad. This commit makes sure that we do not barf when pushing a ref that is a non-commitish tag. You can update a remote ref under the following conditions: * You can always use --force. * Creating a brand new ref is OK. * If the remote ref is exactly the same as what you are pushing, it is OK (nothing is pushed). * You can replace a commitish with another commitish which is a descendant of it, if you can verify the ancestry between them; this and the above means you have to have what you are replacing. * Otherwise you cannot update; you need to use --force. Signed-off-by: Junio C Hamano <firstname.lastname@example.org>
Make 'sha1' parameters const where possible Signed-off-by: Jason McMullan <email@example.com> Signed-off-by: Linus Torvalds <firstname.lastname@example.org>
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 <email@example.com> Signed-off-by: Linus Torvalds <firstname.lastname@example.org>
Make sure the Makefile knows about the object header dependencies, and add declarations for tag lookup/parsing.
This adds preliminary support for tags in the library. It doesn't even store the signature, however, let alone provide any way of checking it. Signed-Off-By: Daniel Barkalow <email@example.com> Signed-off-by: Linus Torvalds <firstname.lastname@example.org>