Well, what you exposed can be achieved with:
<Work on basic implementation>
bzr commit -m 'Feature A'
<Try an optimisation, which didn't work out>
bzr revert
But that doesn't allow committing the nice optimisation when it works ! So:
<Work on basic implementation>
bzr commit -m 'Feature A'
<Try an optimisation, which works out, so don't even mention the first attempt>
bzr uncommit
bzr ci -m "Feature A"
But anyway, --keep for shelve is a good idea and shouldn't be hard to implement.
Well, what you exposed can be achieved with:
<Work on basic implementation>
bzr commit -m 'Feature A'
<Try an optimisation, which didn't work out>
bzr revert
But that doesn't allow committing the nice optimisation when it works ! So:
<Work on basic implementation>
bzr commit -m 'Feature A'
<Try an optimisation, which works out, so don't even mention the first attempt>
bzr uncommit
bzr ci -m "Feature A"
But anyway, --keep for shelve is a good idea and shouldn't be hard to implement.