Provide shortcut to commit changes directly to a pipe (or branch)
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Bazaar |
Confirmed
|
Undecided
|
Unassigned | ||
Breezy |
Triaged
|
Wishlist
|
Unassigned | ||
bzr-pipeline |
Won't Fix
|
Medium
|
Unassigned |
Bug Description
I find that I frequently want to commit a set of changes to a different pipe than the current. Doing this currently is a five-step process:
1. commit the changes locally
2. switch to the other pipe
3. merge -i from the original pipe
4. pump
5. switch back to the original pipe
It'd be lovely to combine this to something like:
$ bzr commit --to-pipe pipe -m 'message' path/to/files
This is unfortunately far beyond my abilities.
Background/
I'm using bzr-pipeline to create patches against a commercial product. I use a 4-stage pipeline to track development. The top-level pipe is against the pristine product trunk. The second-level pipe is used to track a few hacks that were necessary to make product to work in my environment. The third-level pipe is used to capture unit tests that I've created (this organization sees no value in unit tests). All my actual development is done in a fourth-level pipe. When I add/change a unit test, I need to commit those changes to the tests pipe.
Changed in bzr-pipeline: | |
status: | New → Triaged |
importance: | Undecided → Medium |
tags: | added: check-for-breezy |
Changed in bzr: | |
status: | New → Confirmed |
Changed in brz: | |
status: | New → Triaged |
importance: | Undecided → Wishlist |
tags: |
added: commit ui removed: check-for-breezy |
I think you're leaving off a sixth step: committing in the other pipe.
I don't understand why you're committing locally. This is so that merge will work? Did you know that merge --uncommitted works with uncommitted changes stored in pipes? So I think you could do
bzr switch-pipe $OTHER
bzr merge -i $ORIGINAL --uncommitted
bzr commit
bzr pump
bzr switch-pipe $ORIGINAL
You could also use switch, instead of switch-pipe, to skip the merge step:
bzr switch $OTHER
bzr commit path/to/files
bzr pump
bzr switch/switch-pipe $ORIGINAL
I also don't understand why you're doing merge -i. Is that to select only the changes in the unit tests? Would merge pipe/path/to/files work?
Committing autogenerated changes straight to a branch isn't really the bzr way (e.g. merge does not commit), but pipeline is already violating that with the pump command, so it wouldn't be impossible to do here, either.