git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Matthieu Moy <Matthieu.Moy@imag.fr>
To: Jan Hudec <bulb@ucw.cz>
Cc: Samuel Lucas Vaz de Mello <samuellucas@datacom.ind.br>,
	git@vger.kernel.org
Subject: Re: Blamming a diff between two commits?
Date: Sun, 22 Feb 2009 19:49:16 +0100	[thread overview]
Message-ID: <vpqtz6mpas3.fsf@bauges.imag.fr> (raw)
In-Reply-To: <20090222123248.GA6504@efreet.light.src> (Jan Hudec's message of "Sun\, 22 Feb 2009 13\:32\:48 +0100")

Jan Hudec <bulb@ucw.cz> writes:

> On Tue, Feb 17, 2009 at 10:16:17 -0300, Samuel Lucas Vaz de Mello wrote:
>> Hi,
>> 
>> Is there any way to git blame (or annotate) a diff between two commits?
>> 
>> I'm looking for something that produce something like this:
>> 
>>                               /**
>> 85a02065 (samuel 2009-01-02) - * \brief      Define a participacao da porta estatica/dinamica
>> 85a02065 (samuel 2009-01-02) - * \param      unit            indice da unidade
>> e106303a (arthur 2009-01-17) - * \param	     extraparam      extra parameter
>> 85a02065 (samuel 2009-01-02) - * \param      port            indice da porta
>> 50e22e7d (fabian 2009-01-09) - * \param      deleted         param to be deleted
>> 85a02065 (samuel 2009-01-02) + * \brief      Sets port membership on a static / dynamic 
>> 85a02065 (samuel 2009-01-02) + * \param      unit            unit index
>> 85a02065 (samuel 2009-01-02) + * \param      port            port index
>> e106303a (arthur 2009-01-17) + * \param	     another         another index
>>                                * \return     0 if Ok; -1 in error
>>                                */
>> 
>> This would be useful for code reviews. I can use a diff containing all changes committed to a branch, for example, in the last 10 days to review. Doing this instead of reviewing individual commit patches save us from waste time analyzing code that has already been changed/fixed. 
>> 
>> Using a git-blame in the resulting file give me the commits for the lines added, but not for the deleted ones.
>> 
>> Any suggestion on how to do this?
>
> What about doing a diff of the blames? It should do the same thing (except
> the +/- would be at the begining of the lines). Well, not exactly, because if
> there was a change, that was reverted again, blames would change, so it would
> appear here, but that's probably rare enough to ignore (if you don't even
> want to see it rather than not).

I don't think that would do it.

Suppose I have the following history (in a one-line file) :

revision: R1 -> R2 -> R3 -> R4 -> R5 -> R6
content:  A  -> B  -> B  -> C  -> D  -> E 

If I do a blame at revision R3, I'll get

R2 B

Then, at revision R6, I'd get

R6 E

so the diff will be

- R2 B
+ R6 E

while the original poster actually wanted

- R3 B
+ R6 E

In the first case, the annotation for - lines tell where the removed
line had been introduced before, while the second case tells up to
which revision the line has been existing (or, it could show the
revision which removed it, R4 here).


-- 
Matthieu

  reply	other threads:[~2009-02-22 18:55 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-02-17 13:16 Blamming a diff between two commits? Samuel Lucas Vaz de Mello
2009-02-17 13:53 ` Johannes Schindelin
2009-02-17 14:09   ` Samuel Lucas Vaz de Mello
2009-02-17 14:27     ` Johannes Schindelin
2009-02-17 14:03 ` Matthieu Moy
2009-02-17 14:09 ` Thomas Rast
2009-02-20 20:04   ` Thomas Rast
2009-02-22 12:32 ` Jan Hudec
2009-02-22 18:49   ` Matthieu Moy [this message]
2009-02-22 19:11     ` Jan Hudec

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=vpqtz6mpas3.fsf@bauges.imag.fr \
    --to=matthieu.moy@imag.fr \
    --cc=bulb@ucw.cz \
    --cc=git@vger.kernel.org \
    --cc=samuellucas@datacom.ind.br \
    /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;
as well as URLs for NNTP newsgroup(s).