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

Re: [GitStats] Bling bling or some statistics on the git.git repository

From
Johannes Schindelin <johannes.schindelin@gmx.de>
Date
Jul 11, 2008, 21:22 UTC
Message-ID
<alpine.DEB.1.00.0807112215050.8950@racer>
In-Reply-To
<bd6139dc0807111404y1d3dd48ao6d2903da4cd1aa56@mail.gmail.com>
Hi,
On Fri, 11 Jul 2008, Sverre Rabbelier wrote:
> I temporarily modified the code to output %04d instead of %4d so that I 
> could do the following:
>
>	 $ stats.py author -a > full_activity_sortable.txt
You might be delighted to read up on the "-n" switch to sort(1).
> A few highlights from the sorted file:
> 
> $ cat full_activity_sortable.txt | sort | tail -n 20
More intuitive would have been "sort -r | head -n 20", I guess.
> 0170:  2721+  1060- = refs.c

I guess that 170 is the total number of commit touching that file, the "+" and "-" numbers the changes respectively?

I think quite a lot of our changes do code moves; this should be accounted for differently.

Show 25 quoted lines
> 0172:  4369+  2004- = builtin-pack-objects.c
> 0177:   345+   233- = GIT-VERSION-GEN
> 0178:  2855+  2121- = commit.c
> 0178:  4779+  2227- = fast-import.c
> 0179:  2677+  1400- = read-cache.c
> 0185:  5661+  2056- = builtin-apply.c
> 0186:  3269+  1255- = revision.c
> 0213:  1884+   460- = Documentation/config.txt
> 0232:  2257+  1621- = Documentation/git.txt
> 0236:  3990+  1991- = contrib/fast-import/git-p4
> 0281:  2753+  2220- = git.c
> 0333: 10259+  7150- = git-gui.sh
> 0338: 11337+  6187- = git-svn.perl
> 0338:  5755+  3159- = sha1_file.c
> 0397: 10230+  9599- = diff.c
> 0412: 23248+ 20257- = gitk
> 0432: 10580+  4502- = gitweb/gitweb.perl
> 0490:  1412+   619- = cache.h
> 0977:  4703+  2705- = Makefile
> 
> $ cat Makefile | wc -l
> 1482
> 
> For some reason you people can't seem to make up your mind about a
> file that's not even 1500 lines in size ;).
Heh.  We might need to change it once or twice, in the future.
> A note is in order here, this data was mined with "git log --num-stat"
> so things like moving files and copying files are not accounted for.

In my opinion it would be even more interesting to see code moves (i.e. not whole files). For example, we moved some stuff from builtins into the library. The real change here is not in the lines added and deleted.

> I thought about using git-blame to gather this info before, but it is 
> not the right tool for the job. If anyone else has any idea's on what 
> would be better please let me know and I'll happily dig into it :).

I think that you need to analyze the diff directly. One possible (quick 'n dirty) way would be to cut out long consecutive "+" parts of the hunks, replace the "-" by "+", and use "git diff --no-index" to do the hard part of searching for that code in the "-" part of the original diff.

If that turns out to be useful, we can still think about a proper API using xdiff.

Just an idea, Dscho

Previous: Sverre RabbelierNext: Johannes Schindelin
Message 2 of 21 in “[GitStats] Bling bling or some statistics on the git.git repository”
  1. Sverre RabbelierJul 11, 2008
  2. Johannes SchindelinJul 11, 2008
  3. Johannes SchindelinJul 11, 2008
  4. Johannes SchindelinJul 11, 2008
  5. Sverre RabbelierJul 11, 2008
  6. Johannes SchindelinJul 11, 2008
  7. Sverre RabbelierJul 11, 2008
  8. Johannes SchindelinJul 11, 2008
  9. Sverre RabbelierJul 11, 2008
  10. Johannes SchindelinJul 11, 2008
  11. Add pretty format %aN which gives the author name, respecting .mailmapJohannes Schindelin, Jul 11, 2008
  12. Sverre RabbelierJul 11, 2008
  13. Johannes SchindelinJul 11, 2008
  14. Sverre RabbelierJul 12, 2008
  15. Sverre RabbelierJul 11, 2008
  16. Johannes SchindelinJul 11, 2008
  17. Sverre RabbelierJul 11, 2008
  18. Johannes SchindelinJul 11, 2008
  19. Sverre RabbelierJul 12, 2008
  20. Sverre RabbelierJul 12, 2008
  21. Johannes SchindelinJul 13, 2008

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.