Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Add support for git update -i --update-refs (Interactive rebase editor, Git 2.38) #2387

Labels
area-rebase-editorIssues or features related to the Interactive Rebase Editor
Milestone
@a4lg

Description

Git 2.38 added the --update-refs option to git rebase.

For instance, assume following repository:

 [feat1] [feat2] [feat3,HEAD]
F11 <- F12 <- F21 <- F22 <- F31 <- F32
 |
 v
C01 <- C02 <- C03
 [main]

and we are on the feat3 branch.

If we run regular git rebase main command, the result will be:

 [feat1] [feat2]
F11 <- F12 <- F21 <- F22 <- F31 <- F32
 |
 v
C01 <- C02 <- C03
 [main]
 ^
 |
 F11'<- F12'<- F21'<- F22'<- F31'<- F32'
 [feat3,HEAD]

On the other hand, if we run new git rebase --update-refs main command (new in Git 2.38), the result will be:

 [feat1] [feat2] [feat3,HEAD]
 F11'<- F12'<- F21'<- F22'<- F31'<- F32'
 |
 v
C01 <- C02 <- C03
 [main]

As you notice, not just feat3 branch, intermediate references feat1 and feat2 are updated.

If we run the command git rebase -i --update-refs main, the default git-rebase-todo will look like this:

pick 8032d32f9d20 F11
pick 8a722d15209f F12
update-ref refs/heads/feat1
pick 632047524e9d F21
pick 16ed45fce9aa F22
update-ref refs/heads/feat2
pick 4c831d0f2851 F31
pick 0273bfae21d8 F32

Note that, git-rebase-todo file will have some update-ref lines by default, not just picks (when git rebase -i --update-refs is run and a reference to update is found).
It would be nice if we can safely manage update-ref lines (not to break intermediate references/checkpoints).

Some of my thoughts follow:

  • Tier 1 (Interactive Rebase Editor)
    • Able to display update-ref entries on the interactive rebase editor (just like other lines like pick? or with a special appearance?)
    • Able to indirectly reorder update-ref entries (through reordering other lines)
  • Tier 2 (Interactive Rebase Editor)
    • Able to drop update-ref entries if necessary
    • Able to directly reorder update-ref entries
  • Tier 3 (Support with other UI elements / actions)

Metadata

Metadata

Assignees

No one assigned

    Labels

    area-rebase-editorIssues or features related to the Interactive Rebase Editor

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions

      AltStyle によって変換されたページ (->オリジナル) /