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

How to efficiently blame an entire repo?

From
Jay Soffian <jaysoffian@gmail.com>
Date
Apr 29, 2010, 23:12 UTC
Message-ID
<r2l76718491004291612qbe0834ela89f0606e5f477e2@mail.gmail.com>

Let's say you've got a repo with ~ 40K files and 35K commits. Well-packed .git is about 800MB.

You want to find out how many lines of code a particular group of individuals has contributed to HEAD.

The naive solution is to run git blame on all 40K files grep'ing for the just the authors you want.

Possibly a step up from that is first using log --name-status --author=... to find just the files which have been touched by those authors and then blaming only those files.

I guess the next step up would be parsing the diff hunks output by log -p, but then you're basically re-implementing blame I think.

Am I missing a clever solution?
j.
Next: Avery Pennarun
Message 1 of 4 in “How to efficiently blame an entire repo?”
  1. Jay SoffianApr 29, 2010
  2. Avery PennarunApr 30, 2010
  3. Jay SoffianApr 30, 2010
  4. Jeff KingApr 30, 2010

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.