-
Notifications
You must be signed in to change notification settings - Fork 9.8k
Description
A big theme of the past year of our work on Desktop has been working to make collaboration easier. A big part of that, and something we're still iterating on, is supporting merging work from one branch to another. However, in hearing from our users and talking to folks in the wild, we know that many workflows either require or benefit from rebasing as opposed to merging. Therefore, we'd like to make this possible in Desktop.
There are two primary problem areas we want to focus on.
-
This is the problem described in Option to rebase instead of automatically merge when pulling from upstream #3422: When I pull in Desktop, I don't want it to create a merge commit because it clutters my commit history and makes it harder to quickly discern "real" commits.
-
I'm required to (or prefer to) rebase when bringing code from one branch to another branch, and Desktop does not allow me to do this. (described in Feature request: rebase #1652)
2a. Merging brings together branches in one fell swoop, and I can't tell what code was written when chronologically.
Considerations for problem 1:
- Is this an optional selection that exists in preferences? Is there some other way to choose to rebase when pulling as opposed to pulling normally?
- What happens if there's a conflict / multiple conflicts during the pull?
Considerations for problem 2:
- How do you enter the rebase experience?
- How do we show people what commits are going to be rebased so they have comfort around what's going to happen?
- How does it work when you run into a conflict / multiple conflicts throughout the rebase?
- How do you know when you're done?
Note: We're considering interactive rebasing as out of scope for this initial iteration, and may be something we look at further along.
Next steps:
- Design prototype
- Usability testing of prototype
- Take feedback to produce designs and share
- Build and release initial iteration