1. 09 7月, 2006 1 次提交
  2. 18 6月, 2006 1 次提交
    • L
      Shrink "struct object" a bit · 885a86ab
      Linus Torvalds 提交于
      This shrinks "struct object" by a small amount, by getting rid of the
      "struct type *" pointer and replacing it with a 3-bit bitfield instead.
      
      In addition, we merge the bitfields and the "flags" field, which
      incidentally should also remove a useless 4-byte padding from the object
      when in 64-bit mode.
      
      Now, our "struct object" is still too damn large, but it's now less
      obviously bloated, and of the remaining fields, only the "util" (which is
      not used by most things) is clearly something that should be eventually
      discarded.
      
      This shrinks the "git-rev-list --all" memory use by about 2.5% on the
      kernel archive (and, perhaps more importantly, on the larger mozilla
      archive). That may not sound like much, but I suspect it's more on a
      64-bit platform.
      
      There are other remaining inefficiencies (the parent lists, for example,
      probably have horrible malloc overhead), but this was pretty obvious.
      
      Most of the patch is just changing the comparison of the "type" pointer
      from one of the constant string pointers to the appropriate new TYPE_xxx
      small integer constant.
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      Signed-off-by: NJunio C Hamano <junkio@cox.net>
      885a86ab
  3. 22 12月, 2005 2 次提交
  4. 09 12月, 2005 1 次提交
  5. 06 12月, 2005 2 次提交
  6. 05 12月, 2005 3 次提交
  7. 17 11月, 2005 1 次提交
  8. 16 11月, 2005 1 次提交
    • S
      Rework object refs tracking to reduce memory usage · 4a4e6fd7
      Sergey Vlasov 提交于
      Store pointers to referenced objects in a variable sized array instead
      of linked list.  This cuts down memory usage of utilities which use
      object references; e.g., git-fsck-objects --full on the git.git
      repository consumes about 2 MB of memory tracked by Massif instead of
      7 MB before the change.  Object refs are still the biggest consumer of
      memory (57%), but the malloc overhead for a single block instead of a
      linked list is substantially smaller.
      Signed-off-by: NSergey Vlasov <vsu@altlinux.ru>
      Signed-off-by: NJunio C Hamano <junkio@cox.net>
      4a4e6fd7
  9. 03 11月, 2005 1 次提交
    • J
      Be careful when dereferencing tags. · 9534f40b
      Junio C Hamano 提交于
      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: NJunio C Hamano <junkio@cox.net>
      9534f40b
  10. 16 10月, 2005 1 次提交
    • J
      Show peeled onion from upload-pack and server-info. · f6b42a81
      Junio C Hamano 提交于
      This updates git-ls-remote to show SHA1 names of objects that are
      referred by tags, in the "ref^{}" notation.
      
      This would make git-findtags (without -t flag) almost trivial.
      
          git-peek-remote . |
          sed -ne "s:^$target	"'refs/tags/\(.*\)^{}$:\1:p'
      
      Also Pasky could do:
      
          git-ls-remote --tags $remote |
          sed -ne 's:\(	refs/tags/.*\)^{}$:\1:p'
      
      to find out what object each of the remote tags refers to, and
      if he has one locally, run "git-fetch $remote tag $tagname" to
      automatically catch up with the upstream tags.
      Signed-off-by: NJunio C Hamano <junkio@cox.net>
      f6b42a81
  11. 09 10月, 2005 1 次提交
  12. 16 9月, 2005 2 次提交
  13. 30 8月, 2005 1 次提交
    • J
      Revert "Replace zero-length array decls with []." · 2c04662d
      Junio C Hamano 提交于
      This reverts 6c5f9baa commit, whose
      change breaks gcc-2.95.
      
      Not that I ignore portability to compilers that are properly C99, but
      keeping compilation with GCC working is more important, at least for
      now.  We would probably end up declaring with "name[1]" and teach the
      allocator to subtract one if we really aimed for portability, but that
      is left for later rounds.
      Signed-off-by: NJunio C Hamano <junkio@cox.net>
      2c04662d
  14. 24 8月, 2005 1 次提交
  15. 02 8月, 2005 1 次提交
  16. 29 7月, 2005 1 次提交
  17. 24 7月, 2005 1 次提交
    • J
      [PATCH] Add update-server-info. · 8f3f9b09
      Junio C Hamano 提交于
      The git-update-server-info command prepares informational files
      to help clients discover the contents of a repository, and pull
      from it via a dumb transport protocols.  Currently, the
      following files are produced.
      
       - The $repo/info/refs file lists the name of heads and tags
         available in the $repo/refs/ directory, along with their
         SHA1.  This can be used by git-ls-remote command running on
         the client side.
      
       - The $repo/info/rev-cache file describes the commit ancestry
         reachable from references in the $repo/refs/ directory.  This
         file is in an append-only binary format to make the server
         side friendly to rsync mirroring scheme, and can be read by
         git-show-rev-cache command.
      
       - The $repo/objects/info/pack file lists the name of the packs
         available, the interdependencies among them, and the head
         commits and tags contained in them.  Along with the other two
         files, this is designed to help clients to make smart pull
         decisions.
      
      The git-receive-pack command is changed to invoke it at the end,
      so just after a push to a public repository finishes via "git
      push", the server info is automatically updated.
      
      In addition, building of the rev-cache file can be done by a
      standalone git-build-rev-cache command separately.
      Signed-off-by: NJunio C Hamano <junkio@cox.net>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      8f3f9b09