Merge branch 'mk/combine-diff-context-horizon-fix'
"git diff -c -p" was not showing a deleted line from a hunk when another hunk immediately begins where the earlier one ends. * mk/combine-diff-context-horizon-fix: combine-diff.c: Fix output when changes are exactly 3 lines apartmaint
						commit
						edc7f0abcb
					
				|  | @ -518,8 +518,11 @@ static int give_context(struct sline *sline, unsigned long cnt, int num_parent) | ||||||
| 		unsigned long k; | 		unsigned long k; | ||||||
|  |  | ||||||
| 		/* Paint a few lines before the first interesting line. */ | 		/* Paint a few lines before the first interesting line. */ | ||||||
| 		while (j < i) | 		while (j < i) { | ||||||
| 			sline[j++].flag |= mark | no_pre_delete; | 			if (!(sline[j].flag & mark)) | ||||||
|  | 				sline[j].flag |= no_pre_delete; | ||||||
|  | 			sline[j++].flag |= mark; | ||||||
|  | 		} | ||||||
|  |  | ||||||
| 	again: | 	again: | ||||||
| 		/* we know up to i is to be included.  where does the | 		/* we know up to i is to be included.  where does the | ||||||
|  |  | ||||||
|  | @ -353,4 +353,52 @@ test_expect_failure 'combine diff coalesce three parents' ' | ||||||
| 	compare_diff_patch expected actual | 	compare_diff_patch expected actual | ||||||
| ' | ' | ||||||
|  |  | ||||||
|  | # Test for a bug reported at | ||||||
|  | # http://thread.gmane.org/gmane.comp.version-control.git/224410 | ||||||
|  | # where a delete lines were missing from combined diff output when they | ||||||
|  | # occurred exactly before the context lines of a later change. | ||||||
|  | test_expect_success 'combine diff missing delete bug' ' | ||||||
|  | 	git commit -m initial --allow-empty && | ||||||
|  | 	cat <<-\EOF >test && | ||||||
|  | 	1 | ||||||
|  | 	2 | ||||||
|  | 	3 | ||||||
|  | 	4 | ||||||
|  | 	EOF | ||||||
|  | 	git add test && | ||||||
|  | 	git commit -a -m side1 && | ||||||
|  | 	git checkout -B side1 && | ||||||
|  | 	git checkout HEAD^ && | ||||||
|  | 	cat <<-\EOF >test && | ||||||
|  | 	0 | ||||||
|  | 	1 | ||||||
|  | 	2 | ||||||
|  | 	3 | ||||||
|  | 	4modified | ||||||
|  | 	EOF | ||||||
|  | 	git add test && | ||||||
|  | 	git commit -m side2 && | ||||||
|  | 	git branch -f side2 && | ||||||
|  | 	test_must_fail git merge --no-commit side1 && | ||||||
|  | 	cat <<-\EOF >test && | ||||||
|  | 	1 | ||||||
|  | 	2 | ||||||
|  | 	3 | ||||||
|  | 	4modified | ||||||
|  | 	EOF | ||||||
|  | 	git add test && | ||||||
|  | 	git commit -a -m merge && | ||||||
|  | 	git diff-tree -c -p HEAD >actual.tmp && | ||||||
|  | 	sed -e "1,/^@@@/d" < actual.tmp >actual && | ||||||
|  | 	tr -d Q <<-\EOF >expected && | ||||||
|  | 	- 0 | ||||||
|  | 	  1 | ||||||
|  | 	  2 | ||||||
|  | 	  3 | ||||||
|  | 	 -4 | ||||||
|  | 	 +4modified | ||||||
|  | 	EOF | ||||||
|  | 	compare_diff_patch expected actual | ||||||
|  | ' | ||||||
|  |  | ||||||
| test_done | test_done | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue
	
	 Junio C Hamano
						Junio C Hamano