Re: Blaming differences

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

 



Phil Hord <phil.hord@xxxxxxxxx> writes:

> I want something like a product of diff and blame.  I want to see some
> kind of "blame" output for each line of "diff -U0".
>
> I tried something like this:
>    git blame $changed_files
>
> Is there such a command already?

Perhaps the WIP 'log -L' feature can help:

  http://thread.gmane.org/gmane.comp.version-control.git/199385

> I'd also like to do something of the inverse operation:  I want to
> find commits within a range whose changes are NOT in some other
> commit.   So, say I have these four commits
>    A---B---C---D
>
> Where D was created by 'git revert B'.
> I'd like to find out somehow that this is equivalent to
>    A--C
>
> So that if I remove B and D completely, the with just A and C will get
> me to the same end result.
>
> Something like 'git list-contributors HEAD' which would show me A and
> C, since these are the only commits that appear in any 'git blame
> $any_file'.

I wonder if these are really equivalent.  The first one is perhaps not
feasible: If it can only detect exact reverts, that's not incredibly
helpful; the commit message will probably tell you that it's a revert
anyway.  I suspect that distinguishing conflicted reverts from true
changes is AI-complete.  You're free to go and try, though :-)

The second one, "find all commits which appear in blame output", is
different: it would only list commits which have surviving lines.  For
example,

  $ git blame --incremental commit.h | grep -E -o '^[0-9a-f]{40}' | sort -u | wc -l
  77
  $ git rev-list --no-merges HEAD -- commit.h | wc -l
  110

tells me that there are 33 commits changing commit.h without any
surviving lines.  However there were no reverts:

  $ git log --grep=Revert -- commit.h

comes up empty.

-- 
Thomas Rast
trast@{inf,student}.ethz.ch
--
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]