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

Re: [PATCH 6/7] Export rerere() and launch_editor().

From
Junio C Hamano <gitster@pobox.com>
Date
Sep 19, 2007, 23:52 UTC
Message-ID
<7vr6kunrh7.fsf@gitster.siamese.dyndns.org>
In-Reply-To
<1190074016669-git-send-email-krh@redhat.com>
Kristian Høgsberg <krh@redhat.com> writes:
Show 15 quoted lines
> +/* Export for builtin-commit. */
> +int rerere(void)
> +{
> +	struct path_list merge_rr = { NULL, 0, 0, 1 };
> +	int fd;
> +
> +	git_config(git_rerere_config);
> +	if (!is_rerere_enabled())
> +		return 0;
> +
> +	merge_rr_path = xstrdup(git_path("rr-cache/MERGE_RR"));
> +	fd = hold_lock_file_for_update(&write_lock, merge_rr_path, 1);
> +	read_rr(&merge_rr);
> +	return do_plain_rerere(&merge_rr, fd);
> +}
Is it just me who sees a suboptimal cut and paste here?
BTW, [1-5/7] look good so far.
diff --git a/builtin-rerere.c b/builtin-rerere.c
index 29d057c..2f51ae0 100644
--- a/builtin-rerere.c
+++ b/builtin-rerere.c
@@ -415,18 +415,39 @@ static int is_rerere_enabled(void)
 	return 1;
 }
 
-int cmd_rerere(int argc, const char **argv, const char *prefix)
+static int setup_rerere(struct path_list *merge_rr)
 {
-	struct path_list merge_rr = { NULL, 0, 0, 1 };
-	int i, fd = -1;
+	int fd;
 
 	git_config(git_rerere_config);
 	if (!is_rerere_enabled())
-		return 0;
+		return -1;
 
 	merge_rr_path = xstrdup(git_path("rr-cache/MERGE_RR"));
 	fd = hold_lock_file_for_update(&write_lock, merge_rr_path, 1);
-	read_rr(&merge_rr);
+	read_rr(merge_rr);
+	return fd;
+}
+
+int rerere(void)
+{
+	struct path_list merge_rr = { NULL, 0, 0, 1 };
+	int fd;
+
+	fd = setup_rerere(&merge_rr);
+	if (fd < 0)
+		return 0;
+	return do_plain_rerere(&merge_rr, fd);
+}
+
+int cmd_rerere(int argc, const char **argv, const char *prefix)
+{
+	struct path_list merge_rr = { NULL, 0, 0, 1 };
+	int i, fd;
+
+	fd = setup_rerere(&merge_rr);
+	if (fd < 0)
+		return 0;
 
 	if (argc < 2)
 		return do_plain_rerere(&merge_rr, fd);
Previous: Johannes SchindelinNext: Kristian Høgsberg
Message 15 of 18 in “Enable wt-status output to a given FILE pointer.”
  1. 1/7 Enable wt-status output to a given FILE pointer.Kristian Høgsberg, Sep 18, 2007
  2. 2/7 Enable wt-status to run against non-standard index file.Kristian Høgsberg, Sep 18, 2007
  3. 3/7 Introduce entry point for launching add--interactive.Kristian Høgsberg, Sep 18, 2007
  4. 4/7 Clean up stripspace a bit, use strbuf even more.Kristian Høgsberg, Sep 18, 2007
  5. 5/7 Add strbuf_read_file().Kristian Høgsberg, Sep 18, 2007
  6. 6/7 Export rerere() and launch_editor().Kristian Høgsberg, Sep 18, 2007
  7. 7/7 Implement git commit as a builtin command.Kristian Høgsberg, Sep 18, 2007
  8. Johannes SchindelinSep 18, 2007
  9. Kristian HøgsbergSep 18, 2007
  10. Junio C HamanoSep 20, 2007
  11. Kristian HøgsbergSep 21, 2007
  12. Junio C HamanoSep 21, 2007
  13. Kristian HøgsbergSep 24, 2007
  14. Johannes SchindelinSep 18, 2007
  15. Junio C HamanoSep 19, 2007
  16. Kristian HøgsbergSep 21, 2007
  17. Johannes SchindelinSep 18, 2007
  18. Kristian HøgsbergSep 18, 2007

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.