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

[PATCH 3/3] checkout: tweak detached-orphan warning format

From
Jeff King <peff@peff.net>
Date
Mar 20, 2011, 09:19 UTC
Message-ID
<20110320091900.GC15948@sigill.intra.peff.net>
In-Reply-To
<20110320090111.GA15641@sigill.intra.peff.net>

When orphaning a commit on a detached HEAD, the warning currently looks like:

  Warning: you are leaving 3 commits behind, not connected to
  any of your branches:
   - commit subject 1
   - commit subject 2
   - commit subject 3
  If you want to keep them by creating a new branch, this
  may be a good time to do so with:
     git branch new_branch_name 933a615ab0bc566dcfd8c01ec8af159f770d3fe5

Instead of using the "-" list, let's provide a more traditional oneline format, with the abbreviated sha1 before each subject. Users are accustomed to seeing commits in this format, and having the sha1 of each commit can be useful if you want to cherry-pick instead of creating a new branch.

The new format looks like:
  Warning: you are leaving 3 commits behind, not connected to
  any of your branches:
    933a615 commit subject 1
    824fcde commit subject 2
    fa49b1a commit subject 3
Signed-off-by: Jeff King <peff@peff.net>
---
Other thoughts I had but didn't do were:
  - abbreviate the sha1 in the example "git branch" command; it looks
    very long to me.
  - colorize the oneline list in the usual way. This helps makes the
    subjects stand out, but it's a little weird since the rest of the
    warning is not colorized at all.
  - an advice.detachedOrphan option. I'm not sure what it should look
    like exactly (just shorten the message, remove the orphan check
    entirely, etc) so I figured we'd wait until somebody actually is
    annoyed by the verbosity of the message and see what we would want
    then.
  - when we don't detect an orphan commit, we still print the old
    "Previous HEAD was..." message. The point of that was to mention the
    tip in case it was important. Where I think important could be one
    of:
      1. you are orphaning some commits
      2. you might want to remember how to get back to some interesting
         spot in history
    We've already checked that (1) is not the case. There is perhaps
    still some value to (2), but I don't know that I've ever used it.
    And you can always pull the answer from the HEAD reflog (technically
    you can do that for (1), too, of course, but I think the warning is
    more appropriate in that instance).
    So we could perhaps get rid of that message entirely, and print
    nothing when leaving a detached HEAD that is not being orphaned.
 builtin/checkout.c |    5 ++++-
 1 files changed, 4 insertions(+), 1 deletions(-)
diff --git a/builtin/checkout.c b/builtin/checkout.c
index f88d2c8..686d0ff 100644
--- a/builtin/checkout.c
+++ b/builtin/checkout.c
@@ -619,7 +619,10 @@ static void describe_one_orphan(struct strbuf *sb, struct commit *commit)
 	struct pretty_print_context ctx = { 0 };
 
 	parse_commit(commit);
-	strbuf_addstr(sb, " - ");
+	strbuf_addstr(sb, "  ");
+	strbuf_addstr(sb,
+		find_unique_abbrev(commit->object.sha1, DEFAULT_ABBREV));
+	strbuf_addch(sb, ' ');
 	pretty_print_commit(CMIT_FMT_ONELINE, commit, sb, &ctx);
 	strbuf_addch(sb, '\n');
 }
-- 
1.7.2.5.10.g62fe7
Previous: Jonathan NiederNext: Junio C Hamano
Message 25 of 28 in “[bug] git checkout lies about number of ahead commits when switching from detached HEAD”
  1. Piotr KrukowieckiMar 19, 2011
  2. Jeff KingMar 19, 2011
  3. Jeff KingMar 19, 2011
  4. Junio C HamanoMar 20, 2011
  5. Jeff KingMar 20, 2011
  6. 1/3 checkout: add basic tests for detached-orphan warningJeff King, Mar 20, 2011
  7. 2/3 checkout: clear commit marks after detached-orphan checkJeff King, Mar 20, 2011
  8. Junio C HamanoMar 20, 2011
  9. i18n: use test_i18ncmp in t2020 (checkout --detach)Jonathan Nieder, Apr 13, 2012
  10. checkout --detached test: write supporting files before start of testsJonathan Nieder, Apr 13, 2012
  11. Jeff KingApr 13, 2012
  12. Jonathan NiederApr 13, 2012
  13. Jeff KingApr 14, 2012
  14. Jeff KingApr 13, 2012
  15. Jonathan NiederApr 13, 2012
  16. Jeff KingApr 14, 2012
  17. 0/3 Re: i18n: use test_i18ncmp in t2020 (checkout --detach)Jonathan Nieder, Apr 14, 2012
  18. 1/3 test: do not rely on US English tracking-info messagesJonathan Nieder, Apr 14, 2012
  19. 2/3 test: use test_i18ncmp for "Patch format detection failed" messageJonathan Nieder, Apr 14, 2012
  20. 3/3 test: am of empty patch should not succeedJonathan Nieder, Apr 14, 2012
  21. Jeff KingApr 14, 2012
  22. Jonathan NiederApr 14, 2012
  23. Jeff KingApr 14, 2012
  24. Jonathan NiederApr 14, 2012
  25. 3/3 checkout: tweak detached-orphan warning formatJeff King, Mar 20, 2011
  26. Junio C HamanoMar 20, 2011
  27. Jeff KingMar 21, 2011
  28. Junio C HamanoMar 21, 2011

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.