merge-octopus: abort if index does not match HEAD
Signed-off-by: Elijah Newren <newren@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>maint
							parent
							
								
									a6ee883b8e
								
							
						
					
					
						commit
						3ec62ad9ff
					
				|  | @ -44,6 +44,12 @@ esac | ||||||
| # MRC is the current "merge reference commit" | # MRC is the current "merge reference commit" | ||||||
| # MRT is the current "merge result tree" | # MRT is the current "merge result tree" | ||||||
|  |  | ||||||
|  | if ! git diff-index --quiet --cached HEAD -- | ||||||
|  | then | ||||||
|  |     echo "Error: Your local changes to the following files would be overwritten by merge" | ||||||
|  |     git diff-index --cached --name-only HEAD -- | sed -e 's/^/    /' | ||||||
|  |     exit 2 | ||||||
|  | fi | ||||||
| MRC=$(git rev-parse --verify -q $head) | MRC=$(git rev-parse --verify -q $head) | ||||||
| MRT=$(git write-tree) | MRT=$(git write-tree) | ||||||
| NON_FF_MERGE=0 | NON_FF_MERGE=0 | ||||||
|  |  | ||||||
|  | @ -105,7 +105,7 @@ test_expect_success 'recursive' ' | ||||||
| 	test_must_fail git merge -s recursive C^0 | 	test_must_fail git merge -s recursive C^0 | ||||||
| ' | ' | ||||||
|  |  | ||||||
| test_expect_failure 'octopus, unrelated file touched' ' | test_expect_success 'octopus, unrelated file touched' ' | ||||||
| 	git reset --hard && | 	git reset --hard && | ||||||
| 	git checkout B^0 && | 	git checkout B^0 && | ||||||
|  |  | ||||||
|  | @ -114,7 +114,7 @@ test_expect_failure 'octopus, unrelated file touched' ' | ||||||
| 	test_must_fail git merge C^0 D^0 | 	test_must_fail git merge C^0 D^0 | ||||||
| ' | ' | ||||||
|  |  | ||||||
| test_expect_failure 'octopus, related file removed' ' | test_expect_success 'octopus, related file removed' ' | ||||||
| 	git reset --hard && | 	git reset --hard && | ||||||
| 	git checkout B^0 && | 	git checkout B^0 && | ||||||
|  |  | ||||||
|  | @ -123,7 +123,7 @@ test_expect_failure 'octopus, related file removed' ' | ||||||
| 	test_must_fail git merge C^0 D^0 | 	test_must_fail git merge C^0 D^0 | ||||||
| ' | ' | ||||||
|  |  | ||||||
| test_expect_failure 'octopus, related file modified' ' | test_expect_success 'octopus, related file modified' ' | ||||||
| 	git reset --hard && | 	git reset --hard && | ||||||
| 	git checkout B^0 && | 	git checkout B^0 && | ||||||
|  |  | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue
	
	 Elijah Newren
						Elijah Newren