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

Re: Issue with global config defaults "user.useConfigOnly = true" + "pull.rebase = preserve" - "user.email"

From
Junio C Hamano <gitster@pobox.com>
Date
Jul 29, 2016, 18:37 UTC
Message-ID
<xmqq1t2cnvco.fsf@gitster.mtv.corp.google.com>
In-Reply-To
<20160729181121.GB14953@sigill.intra.peff.net>
Jeff King <peff@peff.net> writes:
> ... So I do think there may be a bug to be fixed,
> but it is simply commands being over-eager to make sure we have an
> ident when they might not need it.

36267854 (pull: fast-forward "pull --rebase=true", 2016-06-29) may be a part of a good solution for that, perhaps?

-- >8 --
From: Junio C Hamano <gitster@pobox.com>
Date: Wed, 29 Jun 2016 10:22:31 -0700
Subject: [PATCH] pull: fast-forward "pull --rebase=true"
Signed-off-by: Junio C Hamano <gitster@pobox.com>
---
 builtin/pull.c | 22 ++++++++++++++++++----
 1 file changed, 18 insertions(+), 4 deletions(-)
diff --git a/builtin/pull.c b/builtin/pull.c
index bf3fd3f..2a41d41 100644
--- a/builtin/pull.c
+++ b/builtin/pull.c
@@ -878,10 +878,24 @@ int cmd_pull(int argc, const char **argv, const char *prefix)
 		if (merge_heads.nr > 1)
 			die(_("Cannot merge multiple branches into empty head."));
 		return pull_into_void(*merge_heads.sha1, curr_head);
-	} else if (opt_rebase) {
-		if (merge_heads.nr > 1)
-			die(_("Cannot rebase onto multiple branches."));
+	}
+	if (opt_rebase && merge_heads.nr > 1)
+		die(_("Cannot rebase onto multiple branches."));
+
+	if (opt_rebase) {
+		struct commit_list *list = NULL;
+		struct commit *merge_head, *head;
+
+		head = lookup_commit_reference(orig_head);
+		commit_list_insert(head, &list);
+		merge_head = lookup_commit_reference(merge_heads.sha1[0]);
+		if (is_descendant_of(merge_head, list)) {
+			/* we can fast-forward this without invoking rebase */
+			opt_ff = "--ff-only";
+			return run_merge();
+		}
 		return run_rebase(curr_head, *merge_heads.sha1, rebase_fork_point);
-	} else
+	} else {
 		return run_merge();
+	}
 }
-- 
2.9.2-685-g483c9ea
Previous: Jeff KingNext: Jeff King
Message 7 of 18 in “Issue with global config defaults "user.useConfigOnly = true" + "pull.rebase = preserve" - "user.email"”
  1. Dakota HawkinsJul 29, 2016
  2. Junio C HamanoJul 29, 2016
  3. Jeff KingJul 29, 2016
  4. Junio C HamanoJul 29, 2016
  5. Jeff KingJul 29, 2016
  6. Jeff KingJul 29, 2016
  7. Junio C HamanoJul 29, 2016
  8. Jeff KingJul 29, 2016
  9. Junio C HamanoJul 29, 2016
  10. Jeff KingJul 29, 2016
  11. Dakota HawkinsJul 30, 2016
  12. Junio C HamanoAug 11, 2016
  13. Johannes SchindelinSep 9, 2016
  14. Junio C HamanoSep 9, 2016
  15. Junio C HamanoSep 9, 2016
  16. Dakota HawkinsSep 9, 2016
  17. Junio C HamanoJul 29, 2016
  18. Jeff KingJul 29, 2016

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.