git/list[1] front-page[2] threads[3] people[4] search[5] about
 

[patch 03/11] stg diff / files: don't update directory cache unless needed

From
PGPaolo 'Blaisorblade' Giarrusso <blaisorblade@yahoo.it>
Date
Sep 16, 2005, 19:35 UTC
Message-ID
<20050916193515.18681.83716.stgit@zion.home.lan>
In-Reply-To
<20050916193511.18681.24189.stgit@zion.home.lan>

Do git-update-cache only when diffing with the working tree, not otherwise. Spending something like 1min for a stg files is bad - yes, my laptop was really busy and the Linux tree was probably cache-cold, but that's just not needed.

Also, in diffstat we currently do it both by hand and by calling git.diff. And in files there's no need at all for that - even the comments says that "files" has only to do with committed changes.

Signed-off-by: Paolo 'Blaisorblade' Giarrusso <blaisorblade@yahoo.it>
---
 stgit/git.py |    4 +---
 1 files changed, 1 insertions(+), 3 deletions(-)
diff --git a/stgit/git.py b/stgit/git.py
--- a/stgit/git.py
+++ b/stgit/git.py
@@ -376,11 +376,11 @@ def status(files = [], modified = False,
 def diff(files = [], rev1 = 'HEAD', rev2 = None, out_fd = None):
     """Show the diff between rev1 and rev2
     """
-    os.system('git-update-cache --refresh > /dev/null')
 
     if rev2:
         diff_str = _output(['git-diff-tree', '-p', rev1, rev2] + files)
     else:
+        os.system('git-update-cache --refresh > /dev/null')
         diff_str = _output(['git-diff-cache', '-p', rev1] + files)
 
     if out_fd:
@@ -392,7 +392,6 @@ def diffstat(files = [], rev1 = 'HEAD', 
     """Return the diffstat between rev1 and rev2
     """
 
-    os.system('git-update-cache --refresh > /dev/null')
     p=popen2.Popen3('git-apply --stat')
     diff(files, rev1, rev2, p.tochild)
     p.tochild.close()
@@ -404,7 +403,6 @@ def diffstat(files = [], rev1 = 'HEAD', 
 def files(rev1, rev2):
     """Return the files modified between rev1 and rev2
     """
-    os.system('git-update-cache --refresh > /dev/null')
 
     str = ''
     for line in _output_lines('git-diff-tree -r %s %s' % (rev1, rev2)):
Previous: Catalin MarinasNext: Paolo 'Blaisorblade' Giarrusso
Message 4 of 12 in “Fix typo: comitter->committer”
  1. 01/11 Fix typo: comitter->committerPaolo 'Blaisorblade' Giarrusso, Sep 16, 2005
  2. 02/11 Make "empty patch" checking optional in "series" command.Paolo 'Blaisorblade' Giarrusso, Sep 16, 2005
  3. Catalin MarinasSep 17, 2005
  4. 03/11 stg diff / files: don't update directory cache unless neededPaolo 'Blaisorblade' Giarrusso, Sep 16, 2005
  5. 04/11 Fix "mail" command when description contains "From" linesPaolo 'Blaisorblade' Giarrusso, Sep 16, 2005
  6. 05/11 Make "stg files" output match "quilt files" onePaolo 'Blaisorblade' Giarrusso, Sep 16, 2005
  7. 06/11 Avoid allowing --undo if it doesn't change anythingPaolo 'Blaisorblade' Giarrusso, Sep 16, 2005
  8. 07/11 Implement fast-forward when only tree (but not commits) matchPaolo 'Blaisorblade' Giarrusso, Sep 16, 2005
  9. 08/11 Fix "stg clean" when stack is emptyPaolo 'Blaisorblade' Giarrusso, Sep 16, 2005
  10. 09/11 Allow mailing a given patch listPaolo 'Blaisorblade' Giarrusso, Sep 16, 2005
  11. 10/11 Fix "stg mail" address parsing for hyphenPaolo 'Blaisorblade' Giarrusso, Sep 16, 2005
  12. 11/11 Detect description in quilt patchesPaolo 'Blaisorblade' Giarrusso, Sep 16, 2005

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.