1. 23 9月, 2005 10 次提交
  2. 22 9月, 2005 1 次提交
    • J
      Fix documentation dependency. · b163512d
      Junio C Hamano 提交于
      Randal L. Schwartz noticed that 'make install' does not rebuild what
      is installed.  Make the 'install' rule depend on 'man'.
      
      I noticed also 'touch' of the source files were used to express include
      dependencies, which is a no-no.  Rewrite it to do dependencies properly,
      and add missing include dependencies while we are at it.
      Signed-off-by: NJunio C Hamano <junkio@cox.net>
      b163512d
  3. 21 9月, 2005 2 次提交
  4. 20 9月, 2005 5 次提交
  5. 19 9月, 2005 9 次提交
  6. 18 9月, 2005 11 次提交
  7. 17 9月, 2005 2 次提交
    • L
      [PATCH] Avoid building object ref lists when not needed · 8805ccac
      Linus Torvalds 提交于
      The object parsing code builds a generic "this object references that
      object" because doing a full connectivity check for fsck requires it.
      
      However, nothing else really needs it, and it's quite expensive for
      git-rev-list that can have tons of objects in flight.
      
      So, exactly like the commit buffer save thing, add a global flag to
      disable it, and use it in git-rev-list.
      
      Before:
      
      	$ /usr/bin/time git-rev-list --objects v2.6.12..HEAD | wc -l
      	12.28user 0.29system 0:12.57elapsed 99%CPU (0avgtext+0avgdata 0maxresident)k
      	0inputs+0outputs (0major+26718minor)pagefaults 0swaps
      	59124
      
      After this change:
      
      	$ /usr/bin/time git-rev-list --objects v2.6.12..HEAD | wc -l
      	10.33user 0.18system 0:10.54elapsed 99%CPU (0avgtext+0avgdata 0maxresident)k
      	0inputs+0outputs (0major+18509minor)pagefaults 0swaps
      	59124
      
      and note how the number of pages touched by git-rev-list for this
      particular object list has shrunk from 26,718 (104 MB) to 18,509 (72 MB).
      
      Calculating the total object difference between two git revisions is still
      clearly the most expensive git operation (both in memory and CPU time),
      but it's now less than 40% of what it used to be.
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      Signed-off-by: NJunio C Hamano <junkio@cox.net>
      8805ccac
    • L
      [PATCH] Improve git-rev-list memory usage further · b0d8923e
      Linus Torvalds 提交于
      This avoids keeping tree entries around, and free's them as it traverses
      the list. This avoids building up a huge memory footprint just for these
      small but very common allocations.
      
      Before:
      
      	$ /usr/bin/time git-rev-list --objects v2.6.12..HEAD | wc -l
      	11.65user 0.38system 0:12.65elapsed 95%CPU (0avgtext+0avgdata 0maxresident)k
      	0inputs+0outputs (0major+42934minor)pagefaults 0swaps
      	59124
      
      After:
      
      	$ /usr/bin/time git-rev-list --objects v2.6.12..HEAD | wc -l
      	12.28user 0.29system 0:12.57elapsed 99%CPU (0avgtext+0avgdata 0maxresident)k
      	0inputs+0outputs (0major+26718minor)pagefaults 0swaps
      	59124
      
      Note how the minor fault numbers - which ends up being how many pages we
      needed to map - go down from 42934 (167 MB) to 26718 (104 MB).  That is:
      
      Before:
      	42934 minor pagefaults
      
      After:
      
      	26718 minor pagefaults
      
      This is all in _addition_ to the previous fixes.  It used to be
      ~48,000 pagefaults.
      
      That's still a honking big memory footprint, but it's about half of what
      it was just a day or two ago (and this is the object list for a pretty big
      update - almost 60,000 objects. Smaller updates need less memory).
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      Signed-off-by: NJunio C Hamano <junkio@cox.net>
      b0d8923e