git@vger.kernel.org mailing list mirror (one of many)
 help / color / mirror / code / Atom feed
* Re: The original file that was split in 2 other files, is there a way in git to see what went where?
       [not found] <CAMAMitCV3xvaSr00H574Pww=r_c3=0NqT1Ge13kc=gWJqDJ3Ug@mail.gmail.com>
@ 2018-01-23  3:22 ` Aleksey Bykov
  2018-01-23 16:32   ` Jonathan Tan
  2018-01-23 16:55   ` Jeff King
  0 siblings, 2 replies; 4+ messages in thread
From: Aleksey Bykov @ 2018-01-23  3:22 UTC (permalink / raw)
  To: git

Hello,

My problem:

I am a code reviewer, I have a situation in GIT:

- before: a.txt

Then a developer decided to split the content of a.txt into 2 files
and add a few changes all in one commit:

- after: b.txt + few changes and c.txt + few changes

Is there an easy way to see:

1. what came to b from a?
2 .what came to c from a?
3. all extra changes apart from just moving stuff?

A specific command would help a lot.

A certain policy/workflow that prevents from problem like this (when
there is no way to visually diff the changes) would also help.

https://stackoverflow.com/questions/48350398/the-original-file-that-was-split-in-2-other-files-is-there-a-way-in-git-to-see


Thanks,
Aleksey Bykov

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: The original file that was split in 2 other files, is there a way in git to see what went where?
  2018-01-23  3:22 ` The original file that was split in 2 other files, is there a way in git to see what went where? Aleksey Bykov
@ 2018-01-23 16:32   ` Jonathan Tan
  2018-01-23 16:55   ` Jeff King
  1 sibling, 0 replies; 4+ messages in thread
From: Jonathan Tan @ 2018-01-23 16:32 UTC (permalink / raw)
  To: Aleksey Bykov; +Cc: Git mailing list

On Mon, Jan 22, 2018 at 7:22 PM, Aleksey Bykov <aleksey.bykov@gmail.com> wrote:
> Is there an easy way to see:
>
> 1. what came to b from a?
> 2 .what came to c from a?
> 3. all extra changes apart from just moving stuff?

One way to do this is to use "--color-moved" - it will tell you what
in b.txt and c.txt was moved and what wasn't (although it won't tell
you from where). This was introduced recently, I think in 2.15.

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: The original file that was split in 2 other files, is there a way in git to see what went where?
  2018-01-23  3:22 ` The original file that was split in 2 other files, is there a way in git to see what went where? Aleksey Bykov
  2018-01-23 16:32   ` Jonathan Tan
@ 2018-01-23 16:55   ` Jeff King
  2018-01-23 18:37     ` Junio C Hamano
  1 sibling, 1 reply; 4+ messages in thread
From: Jeff King @ 2018-01-23 16:55 UTC (permalink / raw)
  To: Aleksey Bykov; +Cc: git

On Mon, Jan 22, 2018 at 10:22:21PM -0500, Aleksey Bykov wrote:

> I am a code reviewer, I have a situation in GIT:
> 
> - before: a.txt
> 
> Then a developer decided to split the content of a.txt into 2 files
> and add a few changes all in one commit:
> 
> - after: b.txt + few changes and c.txt + few changes
> 
> Is there an easy way to see:
> 
> 1. what came to b from a?
> 2 .what came to c from a?
> 3. all extra changes apart from just moving stuff?

Jonathan suggested the new "--color-moved", which I second as a good way
of seeing what was moved, and which lines were changed.

For seeing which line came from where, you might try "git blame -C",
which will cross file boundaries looking for the source of lines.

For instance, here's a case in git where some code was moved:

  git blame -C ae563542bf10fa8c33abd2a354e4b28aca4264d7 revision.c

You can see which lines are new to the file, and which ones were moved
from elsewhere.

If you want to simplify the "noise" of seeing the actual origin of each
line, you can ask blame not to go further back. Like:

  commit=ae563542bf10fa8c33abd2a354e4b28aca4264d7
  git blame -b -C $commit^..$commit revision.c

That will leave the commit id blank for every line that wasn't touched
as part of the commit (or if you had a whole series of commits, replace
"$commit^" with the parent of the series).

And finally, if you're going to do a lot with "git blame", I'd look into
the "tig" tool as a prettier interface. You should be able to do "tig
blame -C ..." in the same way.

-Peff

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: The original file that was split in 2 other files, is there a way in git to see what went where?
  2018-01-23 16:55   ` Jeff King
@ 2018-01-23 18:37     ` Junio C Hamano
  0 siblings, 0 replies; 4+ messages in thread
From: Junio C Hamano @ 2018-01-23 18:37 UTC (permalink / raw)
  To: Jeff King; +Cc: Aleksey Bykov, git

Jeff King <peff@peff.net> writes:

> On Mon, Jan 22, 2018 at 10:22:21PM -0500, Aleksey Bykov wrote:
>
>> I am a code reviewer, I have a situation in GIT:
>> 
>> - before: a.txt
>> 
>> Then a developer decided to split the content of a.txt into 2 files
>> and add a few changes all in one commit:
>> 
>> - after: b.txt + few changes and c.txt + few changes
>> ...
> For seeing which line came from where, you might try "git blame -C",
> which will cross file boundaries looking for the source of lines.
> ...
> And finally, if you're going to do a lot with "git blame", I'd look into
> the "tig" tool as a prettier interface. You should be able to do "tig
> blame -C ..." in the same way.

All excellent guides.  "blame" is good at explaining where things
came from, but not as good at explaining, starting from an old
state, where things went.  "blame --reverse" does a decent job
within the constraints its output format has, but not quite ideal.


^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2018-01-23 18:37 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
     [not found] <CAMAMitCV3xvaSr00H574Pww=r_c3=0NqT1Ge13kc=gWJqDJ3Ug@mail.gmail.com>
2018-01-23  3:22 ` The original file that was split in 2 other files, is there a way in git to see what went where? Aleksey Bykov
2018-01-23 16:32   ` Jonathan Tan
2018-01-23 16:55   ` Jeff King
2018-01-23 18:37     ` Junio C Hamano

Code repositories for project(s) associated with this public inbox

	https://80x24.org/mirrors/git.git

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 read-only IMAP folder(s) and NNTP newsgroup(s).