git/list[1] front-page[2] threads[3] people[4] search[5] about
 

[PATCH 1/3] commit/status: check $GIT_DIR/MERGE_HEAD only once

From
Junio C Hamano <gitster@pobox.com>
Date
Dec 12, 2009, 09:02 UTC
Message-ID
<1260608523-15579-2-git-send-email-gitster@pobox.com>
In-Reply-To
<1260608523-15579-1-git-send-email-gitster@pobox.com>

The code checked for the MERGE_HEAD file to see if we were about to commit a merge twice in the codepath; also one of them used a variable merge_head_sha1[] which was set but was never used.

Just check it once, but do so also in "git status", too, as we will be using this for status generation in the next patch.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
---
 builtin-commit.c |   10 ++++------
 1 files changed, 4 insertions(+), 6 deletions(-)
diff --git a/builtin-commit.c b/builtin-commit.c
index b39295f..17dd462 100644
--- a/builtin-commit.c
+++ b/builtin-commit.c
@@ -36,7 +36,7 @@ static const char * const builtin_status_usage[] = {
 	NULL
 };
 
-static unsigned char head_sha1[20], merge_head_sha1[20];
+static unsigned char head_sha1[20];
 static char *use_message_buffer;
 static const char commit_editmsg[] = "COMMIT_EDITMSG";
 static struct lock_file index_lock; /* real index */
@@ -319,7 +319,7 @@ static char *prepare_index(int argc, const char **argv, const char *prefix, int
 	 */
 	commit_style = COMMIT_PARTIAL;
 
-	if (file_exists(git_path("MERGE_HEAD")))
+	if (in_merge)
 		die("cannot do a partial commit during a merge.");
 
 	memset(&partial, 0, sizeof(partial));
@@ -758,9 +758,6 @@ static int parse_and_validate_options(int argc, const char *argv[],
 	if (get_sha1("HEAD", head_sha1))
 		initial_commit = 1;
 
-	if (!get_sha1("MERGE_HEAD", merge_head_sha1))
-		in_merge = 1;
-
 	/* Sanity check options */
 	if (amend && initial_commit)
 		die("You have nothing to amend.");
@@ -951,6 +948,7 @@ int cmd_status(int argc, const char **argv, const char *prefix)
 
 	wt_status_prepare(&s);
 	git_config(git_status_config, &s);
+	in_merge = file_exists(git_path("MERGE_HEAD"));
 	argc = parse_options(argc, argv, prefix,
 			     builtin_status_options,
 			     builtin_status_usage, 0);
@@ -1057,10 +1055,10 @@ int cmd_commit(int argc, const char **argv, const char *prefix)
 
 	wt_status_prepare(&s);
 	git_config(git_commit_config, &s);
+	in_merge = file_exists(git_path("MERGE_HEAD"));
 
 	if (s.use_color == -1)
 		s.use_color = git_use_color_default;
-
 	argc = parse_and_validate_options(argc, argv, builtin_commit_usage,
 					  prefix, &s);
 	if (dry_run) {
-- 
1.6.6.rc2.5.g49666
Previous: Junio C HamanoNext: Junio C Hamano
Message 2 of 10 in “Update advice in commit/status output”
  1. 0/3 Update advice in commit/status outputJunio C Hamano, Dec 12, 2009
  2. 1/3 commit/status: check $GIT_DIR/MERGE_HEAD only onceJunio C Hamano, Dec 12, 2009
  3. 2/3 commit/status: "git add <path>" is not necessarily how to resolveJunio C Hamano, Dec 12, 2009
  4. 3/3 status/commit: do not suggest "reset HEAD <path>" while mergingJunio C Hamano, Dec 12, 2009
  5. Jeff KingDec 12, 2009
  6. Junio C HamanoDec 12, 2009
  7. Nanako ShiraishiDec 12, 2009
  8. Sverre RabbelierDec 12, 2009
  9. Junio C HamanoDec 12, 2009
  10. Jay SoffianDec 12, 2009

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.