Subject: Re: git diff --cc bug

From: Johannes Sixt <[email-masked]>
Date: Mon, 16 Jun 2008 13:48:33 +0200

Johannes Sixt schrieb:
> @@@ -635,31 -865,171 +641,169 @@@ void CValuesView::EraseVa...
>  -LRESULT CValuesView::OnOptionsChanged(WPARAM, LPARAM)
>  -{
>  -	if (GetDocument()->ShowPointerValues()) {
>  -		// invalidate values in the display
>  -		CPoint pt(m_x, m_y);	// will be erased
>  -		InvalidateValues();
>  -		FindFmtStrings();
>  -		Update(pt.x, pt.y);
>  -	}
>  -	return 0;
>  -}
>  -
>   void CValuesView::OnUpdate(CView* pSender, LPARAM lHint, ...
>   {
>   	switch (lHint) {
> ++<<<<<<< HEAD:SomUI/ValuesWnd.cpp
> ++=======
> + 	case UPDATE_MONITORFRAME:
> + 		{
> (hunk truncated for exposition)
> 
> Notice that there are no context lines at the beginning of the second
> hunk. I would not have expected this, and I think it's a bug in git diff.

Attached is a tar.gz of a repository the exposes the bug when a simple
'git diff' is run. If -U2 is added, the removals at the beginning of the
hunk are not shown, as expected. If -U4 is added, more changes are shown
at the beginning of the hunk, which happen to be separated by 3 lines of
context from the part that is unexpectedly visible with -U3.

-- Hannes