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

[PATCH] Fix neglect of diff_setup()/diff_setup_done() symmetry.

From
Keith Cascio <keith@cs.ucla.edu>
Date
Feb 17, 2009, 02:59 UTC
Message-ID
<1234839540-3787-1-git-send-email-keith@cs.ucla.edu>
Code that calls diff_setup(), including via init_revisions(), should later call
diff_setup_done(), possibly via setup_revisions(). Failure to do so could cause
errors, especially in the future when we add responsibilities to
diff_setup_done(). This instance causes no known errors with the present code.
But it resulted in an error with an experimental patch.
---
 builtin-checkout.c |    2 ++
 1 files changed, 2 insertions(+), 0 deletions(-)
diff --git a/builtin-checkout.c b/builtin-checkout.c
index 20b34ce..c315f63 100644
--- a/builtin-checkout.c
+++ b/builtin-checkout.c
@@ -291,14 +291,16 @@ static int checkout_paths(struct tree *source_tree, const char **pathspec,
 static void show_local_changes(struct object *head)
 {
 	struct rev_info rev;
 	/* I think we want full paths, even if we're in a subdirectory. */
 	init_revisions(&rev, NULL);
 	rev.abbrev = 0;
 	rev.diffopt.output_format |= DIFF_FORMAT_NAME_STATUS;
+	if (diff_setup_done(&rev.diffopt) < 0)
+		die("diff_setup_done failed");
 	add_pending_object(&rev, head, NULL);
 	run_diff_index(&rev, 0);
 }
 
 static void describe_detached_head(char *msg, struct commit *commit)
 {
 	struct strbuf sb = STRBUF_INIT;
-- 
1.6.1
Message 1 of 1 in “Fix neglect of diff_setup()/diff_setup_done() symmetry.”
  1. Fix neglect of diff_setup()/diff_setup_done() symmetry.Keith Cascio, Feb 17, 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.