create shelve from changeset
You should add a way to shelve a already checked-in changeset. This way a checkin on the wrong branch could be shelved, deleted and then applied to the correct branch.
Göran Wallgren commented
This is an excellent idea, useful not only for correcting mistakes. Only being able to shelve pending changes is limiting, you might want to shelve a change but forget to do it before Checkin. Even worse, you may plan to press Shelve (by expanding the Checkin button) but by accident or "A Momentary Lapse of Reason" you press the Checkin button instead. Then you can't shelve...
This could serve as a lightweight implementation of this request:
One potential problem here (when used to correct a mistaken Checkin) is the fact that when you shelve a changeset, the shelve has a dependency on the changeset it's based upon. This currently makes it impossible to delete that changeset, even if there are no other dependencies. Would it be possible to (optionally?) break this shelve-dependency and have the shelve behave like a pure "patch diff"?
Why don't you just cherry-pick from the cset?? Ok, to be able to delete it, correct?