support assisting the decision about where an uncommitted change should be committed
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Loom |
Confirmed
|
Wishlist
|
Unassigned |
Bug Description
See also bug #227339
When switching threads, conflicts between uncommitted changes and the new base can arise.
These WT conflicts are sufficiently disruptive to warrant a --force requirement, and can result in a mildly destructive situation, as valuable changes in the WT mingle with the conflict and must be manually resolved before the user can even switch back to the thread he came from.
Example:
Thread A is an base-level thread, thread B is work built on top of that.
User is in thread A after cleaning up some changes, and they forgot to switch to their other thread.
They make some changes in the same location as thread B, not realizing that the text is not their current tip.
They realize that they aren't using their latest, and use "bzr switch B".
At this point it tries to roll forward, and causes conflicts because of overlapping changes, even though there weren't any changes in thread A that needed to be merged into thread B.
The last point is what makes this different from bug #227339
description: | updated |
description: | updated |
description: | updated |
description: | updated |
Another example which is somewhat less "trivial".
A user has been struck with inspiration and gone on a bug fixing spree, and now needs a way to separate out their changes into a more logical set of patches.
At this point they have a fairly involved set of changes in the WT which are being split up while switching between threads.
While in the process of deciding what changes go where, they sometimes do a test switch, to see if this change would fit best in that thread.
If that ends up in a conflict,
A) they probably don't want it in that thread after all, and
B) they can't switch to another thread because they now have conflicts that have to be resolved.
having a way to avoid the switch if it would conflict allows them to poke around a bit to find where things fit best, without going through a time-consuming conflict resolution process before they get to jump again.