# git log and merge commits

4 messages from 2007-05-14 to 2007-05-14. Participants: Geert Uytterhoeven, Jakub Narebski, Linus Torvalds.
Thread: https://gitlist.dev/t/8153

## Geert Uytterhoeven, 2007-05-14 16:13

Subject: git log and merge commits
Message-ID: <Pine.LNX.4.62.0705141803590.11269@pademelon.sonytel.be>
URL: https://gitlist.dev/e/Pine.LNX.4.62.0705141803590.11269%40pademelon.sonytel.be

```
	Hi,

I noticed `git log -p' doesn't show the changes introduced by merge commits.
This is true for plain `git log -p' and for `git log -p <filename>'.

Using `git show <commit-id>' does show the changes.

As I noticed the problem originally in a non-public repository, it was a bit
difficult to report. But I've just found an example in linux.git, too:

`git show 5cd47155155a32e5b944ac9fc3f3dc578e429aa0' shows the merge commit.
But `git log -p include/asm-arm/arch-ixp4xx/io.h' doesn't show it.

It happens in git 1.4.4.4 (what I'm using regularly), but also in 1.5.1.4.

Gr{oetje,eeting}s,

						Geert

--
Geert Uytterhoeven -- Sony Network and Software Technology Center Europe (NSCE)
Geert.Uytterhoeven@sonycom.com ------- The Corporate Village, Da Vincilaan 7-D1
Voice +32-2-7008453 Fax +32-2-7008622 ---------------- B-1935 Zaventem, Belgium

```

## Jakub Narebski, 2007-05-14 16:56

Subject: Re: git log and merge commits
Message-ID: <f2a42g$ein$2@sea.gmane.org>
URL: https://gitlist.dev/e/f2a42g%24ein%242%40sea.gmane.org
In-Reply-To: <Pine.LNX.4.62.0705141803590.11269@pademelon.sonytel.be>

```
[Cc: Geert Uytterhoeven <Geert.Uytterhoeven@sonycom.com>,
     git@vger.kernel.org]

Geert Uytterhoeven wrote:

> I noticed `git log -p' doesn't show the changes introduced by merge commits.
> This is true for plain `git log -p' and for `git log -p <filename>'.

Have you tried `git log -p --cc'?

-- 
Jakub Narebski
Warsaw, Poland
ShadeHawk on #git

```

## Linus Torvalds, 2007-05-14 17:51

Subject: Re: git log and merge commits
Message-ID: <alpine.LFD.0.98.0705141045180.6739@woody.linux-foundation.org>
URL: https://gitlist.dev/e/alpine.LFD.0.98.0705141045180.6739%40woody.linux-foundation.org
In-Reply-To: <Pine.LNX.4.62.0705141803590.11269@pademelon.sonytel.be>

```


On Mon, 14 May 2007, Geert Uytterhoeven wrote:
> 
> I noticed `git log -p' doesn't show the changes introduced by merge commits.
> This is true for plain `git log -p' and for `git log -p <filename>'.

The default diff output format is silent about merges, because merges can 
be shown multiple different ways, and you have to tell git which format 
you want.

"git show" defaults to using "--cc", which is usually what you want. But 
it can be a fairly expensive operation, so "git log" defaults to not 
showing the merges at all.

The alternative format is just plain "-c", which shows a combined merge 
(ie it effectively shows the diff from *both* parents for any file with 
content merging). It gets really really large, really easily, which is why 
"--cc" is often more interesting (since it shows what looks like just the 
potential conflicts!)

		Linus

```

## Geert Uytterhoeven, 2007-05-14 18:01

Subject: Re: git log and merge commits
Message-ID: <Pine.LNX.4.62.0705141959110.23495@pademelon.sonytel.be>
URL: https://gitlist.dev/e/Pine.LNX.4.62.0705141959110.23495%40pademelon.sonytel.be
In-Reply-To: <alpine.LFD.0.98.0705141045180.6739@woody.linux-foundation.org>

```
On Mon, 14 May 2007, Linus Torvalds wrote:
> On Mon, 14 May 2007, Geert Uytterhoeven wrote:
> > I noticed `git log -p' doesn't show the changes introduced by merge commits.
> > This is true for plain `git log -p' and for `git log -p <filename>'.
> 
> The default diff output format is silent about merges, because merges can 
> be shown multiple different ways, and you have to tell git which format 
> you want.

IC.

> "git show" defaults to using "--cc", which is usually what you want. But 
> it can be a fairly expensive operation, so "git log" defaults to not 
> showing the merges at all.
> 
> The alternative format is just plain "-c", which shows a combined merge 
> (ie it effectively shows the diff from *both* parents for any file with 
> content merging). It gets really really large, really easily, which is why 
> "--cc" is often more interesting (since it shows what looks like just the 
> potential conflicts!)

Yes, --cc (as pointed out by Jakub, too), and -c both show the merge change.

In my case a file was modified by a merge, but semantically that change didn't
belong to the merge. I saw during `git pull' that the file got modified, but I
couldn't find the actual change with `git log -p'...

Thanks!

Gr{oetje,eeting}s,

						Geert

--
Geert Uytterhoeven -- Sony Network and Software Technology Center Europe (NSCE)
Geert.Uytterhoeven@sonycom.com ------- The Corporate Village, Da Vincilaan 7-D1
Voice +32-2-7008453 Fax +32-2-7008622 ---------------- B-1935 Zaventem, Belgium

```
