1. 26 5月, 2009 4 次提交
    • J
      Avoid "diff-index --cached" optimization under --find-copies-harder · a0919ced
      Junio C Hamano 提交于
      When find-copies-harder is in effect, the diff frontends are expected to
      feed all paths, not just changed paths, to the diffcore, so that copy
      sources can be picked up.  In such a case, not descending into subtrees
      using the cache-tree information is simply wrong.
      Signed-off-by: NJunio C Hamano <gitster@pobox.com>
      a0919ced
    • J
      Optimize "diff-index --cached" using cache-tree · b65982b6
      Junio C Hamano 提交于
      When running "diff-index --cached" after making a change to only a small
      portion of the index, there is no point unpacking unchanged subtrees into
      the index recursively, only to find that all entries match anyway.  Tweak
      unpack_trees() logic that is used to read in the tree object to catch the
      case where the tree entry we are looking at matches the index as a whole
      by looking at the cache-tree.
      
      As an exercise, after modifying a few paths in the kernel tree, here are
      a few numbers on my Athlon 64X2 3800+:
      
          (without patch, hot cache)
          $ /usr/bin/time git diff --cached --raw
          :100644 100644 b57e1f5... e69de29... M  Makefile
          :100644 000000 8c86b72... 0000000... D  arch/x86/Makefile
          :000000 100644 0000000... e69de29... A  arche
          0.07user 0.02system 0:00.09elapsed 102%CPU (0avgtext+0avgdata 0maxresident)k
          0inputs+0outputs (0major+9407minor)pagefaults 0swaps
      
          (with patch, hot cache)
          $ /usr/bin/time ../git.git/git-diff --cached --raw
          :100644 100644 b57e1f5... e69de29... M  Makefile
          :100644 000000 8c86b72... 0000000... D  arch/x86/Makefile
          :000000 100644 0000000... e69de29... A  arche
          0.02user 0.00system 0:00.02elapsed 103%CPU (0avgtext+0avgdata 0maxresident)k
          0inputs+0outputs (0major+2446minor)pagefaults 0swaps
      
      Cold cache numbers are very impressive, but it does not matter very much
      in practice:
      
          (without patch, cold cache)
          $ su root sh -c 'echo 3 >/proc/sys/vm/drop_caches'
          $ /usr/bin/time git diff --cached --raw
          :100644 100644 b57e1f5... e69de29... M  Makefile
          :100644 000000 8c86b72... 0000000... D  arch/x86/Makefile
          :000000 100644 0000000... e69de29... A  arche
          0.06user 0.17system 0:10.26elapsed 2%CPU (0avgtext+0avgdata 0maxresident)k
          247032inputs+0outputs (1172major+8237minor)pagefaults 0swaps
      
          (with patch, cold cache)
          $ su root sh -c 'echo 3 >/proc/sys/vm/drop_caches'
          $ /usr/bin/time ../git.git/git-diff --cached --raw
          :100644 100644 b57e1f5... e69de29... M  Makefile
          :100644 000000 8c86b72... 0000000... D  arch/x86/Makefile
          :000000 100644 0000000... e69de29... A  arche
          0.02user 0.01system 0:01.01elapsed 3%CPU (0avgtext+0avgdata 0maxresident)k
          18440inputs+0outputs (79major+2369minor)pagefaults 0swaps
      
      This of course helps "git status" as well.
      
          (without patch, hot cache)
          $ /usr/bin/time ../git.git/git-status >/dev/null
          0.17user 0.18system 0:00.35elapsed 100%CPU (0avgtext+0avgdata 0maxresident)k
          0inputs+5336outputs (0major+10970minor)pagefaults 0swaps
      
          (with patch, hot cache)
          $ /usr/bin/time ../git.git/git-status >/dev/null
          0.10user 0.16system 0:00.27elapsed 99%CPU (0avgtext+0avgdata 0maxresident)k
          0inputs+5336outputs (0major+3921minor)pagefaults 0swaps
      Signed-off-by: NJunio C Hamano <gitster@pobox.com>
      b65982b6
    • J
      t4007: modernize the style · aceae2ef
      Junio C Hamano 提交于
      This is one of the oldest scripts; update it to match more modern style.
      Notably, we should:
      
       - Put the test title on the same line as the "test_expect_success", and
         end the line with a single-quote to begin the body of the test which is
         one multi-line string; and
      
       - Run as many commands inside test_expect_success, not outside, to catch
         unexpected breakages.
      Signed-off-by: NJunio C Hamano <gitster@pobox.com>
      aceae2ef
    • J
      cache-tree.c::cache_tree_find(): simplify internal API · b87fc964
      Junio C Hamano 提交于
      Earlier cache_tree_find() needs to be called with a valid cache_tree,
      but repeated look-up may find an invalid or missing cache_tree in between.
      Help simplify the callers by returning NULL to mean "nothing appropriate
      found" when the input is NULL.
      Signed-off-by: NJunio C Hamano <gitster@pobox.com>
      b87fc964
  2. 21 5月, 2009 1 次提交
    • J
      write-tree --ignore-cache-tree · d11b8d34
      Junio C Hamano 提交于
      This allows you to discard the cache-tree information before writing the
      tree out of the index (i.e. it always recomputes the tree object names for
      all the subtrees).
      
      This is only useful as a debug option, so I did not bother documenting it.
      Signed-off-by: NJunio C Hamano <gitster@pobox.com>
      d11b8d34
  3. 20 5月, 2009 2 次提交
  4. 19 5月, 2009 5 次提交
  5. 18 5月, 2009 6 次提交
  6. 17 5月, 2009 16 次提交
  7. 16 5月, 2009 1 次提交
  8. 14 5月, 2009 5 次提交