How do I remove outgoing changesets in Mercurial (hg)

14,250

Solution 1

Use hg strip 'roots(outgoing())'

Solution 2

The other option is to use hg strip command, which is part of the mq (mercurial queues) extension.

The mercurial philosophy is of an immutable history, so commands which manipulate that history are frowned upon, but there are times when stripping or rebasing may solve more problems than they cause.

If you use TortoiseHg then you will need to enable the MQ extension. Prior to v1.0 THG it was enabled by default, but after much discussion it was decided that it was really an 'advanced' feature that should be left off until the use has the experience to know how to enable it.

Solution 3

Either reclone from the central repo, or use clone -r to reclone only the needed changesets.

Share:
14,250

Related videos on Youtube

adambox
Author by

adambox

Updated on September 17, 2022

Comments

  • adambox
    adambox almost 2 years

    when I run hg out I have 3 outgoing changesets. I want to trash them and revert to how things are in the central repository. How?

  • Jason R. Coombs
    Jason R. Coombs over 11 years
    You can also specify a target for the outgoing changesets (if you have no default repo or you want to strip relative to another repo) using hg strip 'roots(outgoing(target-name))'.
  • Cammy Boy
    Cammy Boy over 11 years
    Thanks @JasonR.Coombs that's super useful. I was curious how change the outgoing() based on the changesets other than the default remote repo url.