On Fri, Apr 19, 2013 at 12:08 PM, Junio C Hamano <gits...@pobox.com> wrote:
> Felipe Contreras <felipe.contre...@gmail.com> writes:
>> The code finds the changes of a commit, runs 'git blame' for each chunk
>> to see which other commits are relevant, and then reports the author and
> In general, I am not all that interested in adding anything new to
> contrib/ as git.git has matured enough, but even if this will stay
> outside my tree, there are a few interesting things to note to help
> its eventual users.
Why not add it to mainline git then? This tool, or a similar one,
would certainly be useful in the git arsenal.
>> + roles = roles.map do |person, role|
>> + address = "%s <%s>" % person
>> + [person, role]
>> + end
> Is address being used elsewhere, or is this a remnant from an
> earlier debugging or something?
It's used later on; it creeped in.
>> + [id, roles]
>> + end
>> + File.open(file) do |f|
>> + f.each do |line|
>> + case line
>> + when /^From (\h+) (.+)$/
>> + from = $1
>> + when /^---\s+(\S+)/
>> + source = $1 != '/dev/null' ? $1[2..-1] : nil
> This may need to be tightened if you want to use this on a
> real-world project (git.git itself does not count ;-); you may see
> something like:
> diff --git "a/a\"b" "b/a\"b"
> (I did an insane pathname 'a"b' to get the above example, but a more
> realistic is a character outside ASCII).
Suggestions on how to do that are welcome.
>> + when /^@@\s-(\d+),(\d+)/
>> + get_blame(source, $1, $2, from)
> This may want to be a bit more careful for a hunk that adds to an
> empty file, which will give you something like
> @@ -0,0 +1 @@
> @@ -0,0 +1,200 @@
return unless source and start and offset
> Nobody sane would use -U0 when doing a format-patch, but if this
> wants to accomodate such a patch as well, it needs to ignore a hunk
> that only adds new lines.
I'm not going to worry about it now.
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majord...@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html