From: Jakub Narebski <jnareb@gmail.com>
To: Wolfgang Rohdewald <wolfgang@rohdewald.de>
Cc: Junio C Hamano <gitster@pobox.com>, git@vger.kernel.org
Subject: Re: git blame --follow
Date: Thu, 17 Mar 2011 02:59:22 -0700 (PDT) [thread overview]
Message-ID: <m3tyf25arl.fsf@localhost.localdomain> (raw)
In-Reply-To: <201103151926.58449.wolfgang@rohdewald.de>
Wolfgang Rohdewald <wolfgang@rohdewald.de> writes:
> But with my repository (which I cannot share),
> this does not happen. git blame attributes everything to
> the renaming commit. If I checkout the commit before, git
> blame shows everything correctly.
"git blame" manpage says:
-M|<num>|
Detect moved or copied lines within a file. [...]
[...]
<num> is optional [...]
-C|<num>|
In addition to -M, detect lines moved or copied from other files
that were modified in the same commit.
Sidenote: I wonder why we use '-M|<num>|' and not '-M[<num>]' here.
So you probably want to run "git blame -C -C <file>", not "git blame <file>".
Note that it is the same option name to turn on rename detection as is
used for for "git diff".
Note that "git gui blame" shows _two_ commits for each line: one is
result of "git blame" (and it would show commit that did code
movement, or renamed file), the other is result of "git blame -C -C -w",
which would show commit that changed line, disregarding whitespace-only
change (like e.g. reindent caused by extracting code into separate
function).
I wonder if it would be possible to generate result of "git blame"
and of "git blame -C -C -w" in a single run (with --porcelain or
--incremental)...
[...]
> And - for directories below the renamed one git log --follow
> cannot cross this barrier either but if the "follow" logic
> is different I suppose this is not related
The implementation of "git log --follow <file>" is a bolted-on hack,
and it doesn't work in all cases; for example it doesn't cross
boundaries of subtree merge, IIRC. Try "git log --follow gitweb/gitweb.perl"
in git repository itself...
HTH
--
Jakub Narebski
Poland
ShadeHawk on #git
next prev parent reply other threads:[~2011-03-17 9:59 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-03-15 15:44 git blame --follow Wolfgang Rohdewald
2011-03-15 17:30 ` Junio C Hamano
2011-03-15 18:26 ` Wolfgang Rohdewald
2011-03-17 9:59 ` Jakub Narebski [this message]
2011-03-17 10:16 ` Wolfgang Rohdewald
2011-03-17 16:47 ` Jakub Narebski
-- strict thread matches above, loose matches on Subject: below --
2012-09-06 7:02 norbert.nemec
2012-09-06 9:58 ` Jeff King
2012-09-06 10:12 ` norbert.nemec
2012-09-06 15:13 ` Jeff King
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=m3tyf25arl.fsf@localhost.localdomain \
--to=jnareb@gmail.com \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
--cc=wolfgang@rohdewald.de \
/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).