From: Johannes Schindelin <Johannes.Schindelin@gmx.de>
To: Sverre Rabbelier <alturin@gmail.com>
Cc: Git Mailinglist <git@vger.kernel.org>,
David Symonds <dsymonds@gmail.com>
Subject: Re: [GitStats] Bling bling or some statistics on the git.git repository
Date: Sat, 12 Jul 2008 00:33:37 +0100 (BST) [thread overview]
Message-ID: <alpine.DEB.1.00.0807120028280.8950@racer> (raw)
In-Reply-To: <bd6139dc0807111550w1f4a9e5fl636df73572bd27de@mail.gmail.com>
Hi,
On Sat, 12 Jul 2008, Sverre Rabbelier wrote:
> On Sat, Jul 12, 2008 at 12:07 AM, Johannes Schindelin
> <Johannes.Schindelin@gmx.de> wrote:
> >> On Fri, Jul 11, 2008 at 11:22 PM, Johannes Schindelin Yeah, I wish
> >> 'git log -C -C -M --numstat --sacrifice-chicken --pretty=format:%ae
> >> --' would take care of that... That is, a git-blame like mechanism
> >> that would detect such moves on a per-commit basis and report them
> >> would be very useful to me.
> >
> > Well, the chicken (or better, a goat) should be sacrificed by you...
> > The option I would call "--code-moves".
>
> If you suggest I write up a patch to 'git log' I am afraid that would
> require quite a bit more skill && knowledge of 'git log' than I have
> (which is about Null :P).
If you were suspecting that I would write the patch once the semantics are
finalized, you would be absolutely correct.
> > But the semantics of that need to be sorted out in a shell script
> > first; maybe like I outlined (if that was not coherent, please say
> > so).
>
> Python is one big shell script :P, so if you meant that it should be
> part of GitStats (instead of part of 'git log', which I commented on
> above), python would be just fine :). The concept was clear enough
> though, I think I understand what you mean.
Fair enough. As long as you use a language that is easy to prototype
quickly and dirtily in. Such as Python.
> >> Very much so, but the former I figure can be easily done with 'git
> >> log -C -C -M' I discovered (I need to parse it's output though, and
> >> also determine what to do with moves statistics wise. Should changes
> >> made due to moves just be ignored?)
> >
> > That is not very interesting, as we often move so small parts (think
> > "one function") that -C -C -M does not trigger.
>
> Right, why aim for the stuff when there's much more interesting fun out
> there? If there was a --code-moves I agree with you that it would be a
> lot more interesting to have than going with the current approach and
> throwing in '-C -C -M'.
Let's go for it, then!
> >> That sounds interesting, I won't need to actually do that though, I
> >> already have a diff parser that gives me the lines added VS lines
> >> deleted on a hunk-by-hunk basis. If it is a true move (e.g., code
> >> removed in file X and added in file Y) it should be trivial to detect
> >> that.
> >>
> >> Something along the lines of:
> >> for hunk in added:
> >> if hunk in deleted:
> >> print("Over here!!")
> >
> > I think that is not enough, as a code move can mean that part of a
> > function was refactored into a function. The consequence is often a
> > reindent, and possibly rewrapping.
>
> Mhhh, such would be beyond the scope of implementing manually indeed,
> and should be left to the likes of a diff tool instead in order to
> prevent reinventing the wheel :).
That is why I was suggesting using the diff tool with munged input to find
out what works best.
When that is done, I'll turn it into C.
> > BTW I realized something else: your
> > http://alturin.googlepages.com/full_activity.txt lists only
> > "gitk-git/po/es.po" under git-git/po/. And it has as many added as
> > deleted lines.
>
> Correct, that's because that is what 'git log' tells me.
I suspect that one big "git log" will not tell you enough. You probably
need to make your tool aware (at least a little) about merges, just as you
probably made it aware about parent/child relationships (to track the
changes along renames)...
Ciao,
Dscho
next prev parent reply other threads:[~2008-07-11 23:34 UTC|newest]
Thread overview: 21+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <bd6139dc0807090621n308b0159n92d946c165d3a5dd@mail.gmail.com>
2008-07-11 21:04 ` [GitStats] Bling bling or some statistics on the git.git repository Sverre Rabbelier
2008-07-11 21:22 ` Johannes Schindelin
2008-07-11 21:39 ` Johannes Schindelin
2008-07-11 21:55 ` Johannes Schindelin
2008-07-11 22:05 ` Sverre Rabbelier
2008-07-11 22:10 ` Johannes Schindelin
2008-07-11 21:55 ` Sverre Rabbelier
2008-07-11 22:11 ` Johannes Schindelin
2008-07-11 22:14 ` Sverre Rabbelier
2008-07-11 23:02 ` Johannes Schindelin
2008-07-11 23:28 ` [PATCH] Add pretty format %aN which gives the author name, respecting .mailmap Johannes Schindelin
2008-07-11 23:30 ` Sverre Rabbelier
2008-07-11 23:42 ` Johannes Schindelin
2008-07-12 8:44 ` Sverre Rabbelier
2008-07-11 21:52 ` [GitStats] Bling bling or some statistics on the git.git repository Sverre Rabbelier
2008-07-11 22:07 ` Johannes Schindelin
2008-07-11 22:50 ` Sverre Rabbelier
2008-07-11 23:33 ` Johannes Schindelin [this message]
2008-07-12 7:39 ` Sverre Rabbelier
2008-07-12 22:36 ` Sverre Rabbelier
2008-07-13 0:29 ` Johannes Schindelin
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=alpine.DEB.1.00.0807120028280.8950@racer \
--to=johannes.schindelin@gmx.de \
--cc=alturin@gmail.com \
--cc=dsymonds@gmail.com \
--cc=git@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox