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

Re: [PATCH v2 11/11] rebase: dereference tags

From
Junio C Hamano <gitster@pobox.com>
Date
Sep 14, 2021, 16:29 UTC
Message-ID
<xmqqbl4v3yun.fsf@gitster.g>
In-Reply-To
<8c78eac4-676b-7bd1-0282-d52eb20f87ce@gmail.com>
Phillip Wood <phillip.wood123@gmail.com> writes:
Show 12 quoted lines
>>> Did we auto-peel in scripted version of "git rebase" and is this a
>>> regression when the command was rewritten in C?
>> As far as I can tell we have never peeled tags here
>
> That's a bit misleading. We have never peeled a tag given as <branch>
> when we parse it. In the scripted version we just passed the tag oid 
> along to rev-list, checkout and reset and they peeled it. So I think
> this is actually a regression in the builtin rebase. I'll update the 
> commit message to reflect that unless we feel that allowing a tag for
> <branch> is a mistake and we should be erroring out to avoid the 
> possible confusion of the tag not being rebased, only the commits it
> points to.

OK, so this is a regression fix. That makes the change much simpler to sell. I'd expect that the description would be along the lines of something like this, perhaps.

    A rebase started with 'git rebase <A> <B>' is conceptually to
    first checkout <B> and run 'git rebase <A>' starting from that
    state.  'git rebase --abort' in the middle of such a rebase
    should take us back to the state we checked out <B>.
    This used to work, even when <B> is a tag that points at a
    commit, until Git X.Y.Z when the command was reimplemented in C.
    The command now complains that the tag object itself cannot be
    checked out, which may be technically correct but is not what
    the user asked to do.
    Fix this old regression by doing ....
Thanks for digging (and fixing, of course).
Previous: Phillip WoodNext: Elijah Newren
Message 38 of 55 in “rebase: dereference tags”
  1. 00/11 rebase: dereference tagsPhillip Wood via GitGitGadget, Sep 8, 2021
  2. 01/11 t3407: run tests in $TEST_DIRECTORYPhillip Wood via GitGitGadget, Sep 8, 2021
  3. Ævar Arnfjörð BjarmasonSep 8, 2021
  4. 02/11 t3407: use test_commitPhillip Wood via GitGitGadget, Sep 8, 2021
  5. Ævar Arnfjörð BjarmasonSep 8, 2021
  6. 03/11 t3407: use test_cmp_revPhillip Wood via GitGitGadget, Sep 8, 2021
  7. Ævar Arnfjörð BjarmasonSep 8, 2021
  8. Phillip WoodSep 8, 2021
  9. 04/11 t3407: rename a variablePhillip Wood via GitGitGadget, Sep 8, 2021
  10. 06/11 t3407: strengthen rebase --abort testsPhillip Wood via GitGitGadget, Sep 8, 2021
  11. Ævar Arnfjörð BjarmasonSep 8, 2021
  12. 05/11 t3407: use test_path_is_missingPhillip Wood via GitGitGadget, Sep 8, 2021
  13. 07/11 t3407: rework rebase --quit testsPhillip Wood via GitGitGadget, Sep 8, 2021
  14. 08/11 rebase: remove redundant strbufPhillip Wood via GitGitGadget, Sep 8, 2021
  15. Johannes SchindelinSep 9, 2021
  16. 09/11 rebase: use our standard error return valuePhillip Wood via GitGitGadget, Sep 8, 2021
  17. 11/11 rebase: dereference tagsPhillip Wood via GitGitGadget, Sep 8, 2021
  18. Ævar Arnfjörð BjarmasonSep 8, 2021
  19. 10/11 rebase: use lookup_commit_reference_by_name()Phillip Wood via GitGitGadget, Sep 8, 2021
  20. 00/11 rebase: dereference tagsPhillip Wood via GitGitGadget, Sep 13, 2021
  21. 01/11 t3407: run tests in $TEST_DIRECTORYPhillip Wood via GitGitGadget, Sep 13, 2021
  22. 02/11 t3407: use test_commitPhillip Wood via GitGitGadget, Sep 13, 2021
  23. 03/11 t3407: use test_cmp_revPhillip Wood via GitGitGadget, Sep 13, 2021
  24. 04/11 t3407: rename a variablePhillip Wood via GitGitGadget, Sep 13, 2021
  25. 05/11 t3407: use test_path_is_missingPhillip Wood via GitGitGadget, Sep 13, 2021
  26. 06/11 t3407: strengthen rebase --abort testsPhillip Wood via GitGitGadget, Sep 13, 2021
  27. 07/11 t3407: rework rebase --quit testsPhillip Wood via GitGitGadget, Sep 13, 2021
  28. 08/11 rebase: remove redundant strbufPhillip Wood via GitGitGadget, Sep 13, 2021
  29. René ScharfeSep 13, 2021
  30. Junio C HamanoSep 13, 2021
  31. Phillip WoodSep 14, 2021
  32. Phillip WoodSep 14, 2021
  33. 09/11 rebase: use our standard error return valuePhillip Wood via GitGitGadget, Sep 13, 2021
  34. 11/11 rebase: dereference tagsPhillip Wood via GitGitGadget, Sep 13, 2021
  35. Junio C HamanoSep 13, 2021
  36. Phillip WoodSep 14, 2021
  37. Phillip WoodSep 14, 2021
  38. Junio C HamanoSep 14, 2021
  39. Elijah NewrenSep 14, 2021
  40. Sergey OrganovSep 14, 2021
  41. Phillip WoodSep 14, 2021
  42. 10/11 rebase: use lookup_commit_reference_by_name()Phillip Wood via GitGitGadget, Sep 13, 2021
  43. Elijah NewrenSep 14, 2021
  44. 00/10 rebase: dereference tagsPhillip Wood via GitGitGadget, Sep 21, 2021
  45. 01/10 t3407: run tests in $TEST_DIRECTORYPhillip Wood via GitGitGadget, Sep 21, 2021
  46. 02/10 t3407: use test_commitPhillip Wood via GitGitGadget, Sep 21, 2021
  47. 03/10 t3407: use test_cmp_revPhillip Wood via GitGitGadget, Sep 21, 2021
  48. 04/10 t3407: rename a variablePhillip Wood via GitGitGadget, Sep 21, 2021
  49. 05/10 t3407: use test_path_is_missingPhillip Wood via GitGitGadget, Sep 21, 2021
  50. 06/10 t3407: strengthen rebase --abort testsPhillip Wood via GitGitGadget, Sep 21, 2021
  51. 07/10 t3407: rework rebase --quit testsPhillip Wood via GitGitGadget, Sep 21, 2021
  52. 08/10 rebase: use our standard error return valuePhillip Wood via GitGitGadget, Sep 21, 2021
  53. 09/10 rebase: use lookup_commit_reference_by_name()Phillip Wood via GitGitGadget, Sep 21, 2021
  54. 10/10 rebase: dereference tagsPhillip Wood via GitGitGadget, Sep 21, 2021
  55. Elijah NewrenSep 24, 2021

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.