Skip to content
GitLab
  • Menu
Projects Groups Snippets
  • /
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in / Register
  • thg thg
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 829
    • Issues 829
    • List
    • Boards
    • Service Desk
    • Milestones
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
  • Deployments
    • Deployments
    • Environments
    • Releases
  • Packages & Registries
    • Packages & Registries
    • Container Registry
  • Monitor
    • Monitor
    • Incidents
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Repository
  • Wiki
    • Wiki
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • mercurial
  • TortoiseHg
  • thgthg
  • Issues
  • #5341
Closed
Open
Created Feb 23, 2019 by Bitbucket Importer@bitbucket_importerOwner

Rework the rebase dialog

Created originally on Bitbucket by mjacob (Manuel Jacob)

The help page for the hg rebase command lists four different ways to select changesets:

  1. Explicitly select them using "--rev".
  2. Use "--source" to select a root changeset and include all of its descendants.
  3. Use "--base" to select a changeset; rebase will find ancestors and their descendants which are not also ancestors of the destination.
  4. If you do not specify any of "--rev", "source", or "--base", rebase will use "--base ." as above.

TortoiseHG doesn’t support the first way currently. With evolve, it makes more sense because it enables to rebase a single changeset and leave its descendants orphan.

The second way is the default in TortoiseHG. Currently, there’s no way to preview the set of all changesets that will be rebased.

The third way is supported by enabling the corresponding --base checkbox. However in this case the label "Rebase changeset and descendants" isn’t accurate.

The fourth option is mainly of interest to CLI users.

I propose the following behavior:

  • as a first step, the user selects whether they want the first, second or third way of selecting changesets
  • then, the user selects the changeset(s) that will be passed to the --rev, --source or --base option
  • a preview shows the set of all changesets that will be rebased

If there’s consensus, I’ll create two pull requests for implementing the proposed behavior:

  • the first will add a dropdown for enabling the desired way of selecting changesets and a preview box
  • the second will add the possibility to rebase an explicit set of changesets (to be passed to the --rev option
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information
Assignee
Assign to
Time tracking