Merge branch 'jc/for-each-ref-head-segfault-fix'
Using a %(HEAD) placeholder in "for-each-ref --format=" option caused the command to segfault when on an unborn branch. * jc/for-each-ref-head-segfault-fix: for-each-ref: do not segv with %(HEAD) on an unborn branchmaint
						commit
						48e9ad5ef3
					
				|  | @ -1017,7 +1017,7 @@ static void populate_value(struct ref_array_item *ref) | ||||||
|  |  | ||||||
| 			head = resolve_ref_unsafe("HEAD", RESOLVE_REF_READING, | 			head = resolve_ref_unsafe("HEAD", RESOLVE_REF_READING, | ||||||
| 						  sha1, NULL); | 						  sha1, NULL); | ||||||
| 			if (!strcmp(ref->refname, head)) | 			if (head && !strcmp(ref->refname, head)) | ||||||
| 				v->s = "*"; | 				v->s = "*"; | ||||||
| 			else | 			else | ||||||
| 				v->s = " "; | 				v->s = " "; | ||||||
|  |  | ||||||
|  | @ -553,4 +553,14 @@ test_expect_success 'Verify sort with multiple keys' ' | ||||||
| 		refs/tags/bogo refs/tags/master > actual && | 		refs/tags/bogo refs/tags/master > actual && | ||||||
| 	test_cmp expected actual | 	test_cmp expected actual | ||||||
| ' | ' | ||||||
|  |  | ||||||
|  | test_expect_success 'do not dereference NULL upon %(HEAD) on unborn branch' ' | ||||||
|  | 	test_when_finished "git checkout master" && | ||||||
|  | 	git for-each-ref --format="%(HEAD) %(refname:short)" refs/heads/ >actual && | ||||||
|  | 	sed -e "s/^\* /  /" actual >expect && | ||||||
|  | 	git checkout --orphan HEAD && | ||||||
|  | 	git for-each-ref --format="%(HEAD) %(refname:short)" refs/heads/ >actual && | ||||||
|  | 	test_cmp expect actual | ||||||
|  | ' | ||||||
|  |  | ||||||
| test_done | test_done | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue
	
	 Junio C Hamano
						Junio C Hamano