Re: blame on a deleted/renamed file

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 2009.08.05 07:16:13 -0500, Dan McGee wrote:
> Is there no easy way in git to get a blame on a file that has either
> been renamed or deleted? I'll step through my thought process, and a
> quick google and read of the manpage returned nothing obvious. Here is
> the repository in question if it matters:
> git://projects.archlinux.org/pacman.git. I located a particular commit
> I was interested using a plain git-blame:
> $ git blame scripts/makepkg.sh.in
> 
> OK, looks like lines moved around enough that we got stuck here, let's

How did it get stuck? The output I see follows the changes the whole way
back through scripts/makepkg.in, scripts/makepkg.in and scripts/makepkg.

> see what this patch did:
> $ git show e19d7da4
> 
> OK, it did a move of a bunch of lines into functions that GIT couldn't
> quite track:
> $ git annotate --follow "scripts/makepkg.in" e19d7da4~1
> fatal: cannot stat path 'scripts/makepkg.in': No such file or directory

Where does that --follow come from? I don't see that in the man page.

And scripts/makepkg.in got added in e19d7da4, so its parent didn't have
it.

> $ git annotate --follow "scripts/makepkg.sh.in" e19d7da4~1
> fatal: no such path scripts/makepkg.sh.in in e19d7da4~1

Same deal, scripts/makepkg.sh.in didn't exist in e19d7da4~1 either, it
got renamed from scripts/makepkg.in in b5f8a44be

> Help? Or do I need to think about writing some sort of patch for it?
> This is the first thing I have seen svn be able to do[1] that git
> can't. :)

Uhm, no, svn fails in the exact same way, not quite unexpected.

doener@atjola:~ $ mkdir h
doener@atjola:~ $ cd h
doener@atjola:h $ svnadmin create repo
doener@atjola:h $ svn co file://$PWD/repo wc
Checked out revision 0.
doener@atjola:h $ cd wc

doener@atjola:wc $ touch foo; svn add foo; svn commit -m init
A         foo
Adding         foo
Transmitting file data .
Committed revision 1.
doener@atjola:wc $ svn mv foo bar; svn commit -m rename
A         bar
D         foo
Adding         bar
Deleting       foo

Committed revision 2.
doener@atjola:wc $ cd ..

doener@atjola:h $ svn blame file://$PWD/repo/bar
doener@atjola:h $ svn blame file://$PWD/repo/bar@1
svn: '/bar' is not a file in revision 1

Björn
--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]