@StephanLehmke Hmm, maybe we have been doing it wrong. I've just read through doc.bazaar.canonical.com/beta/en/user-guide/… and it would appear that what we ought to do is on ones local machine maintain a checkout or a branch of the launchpad project and a branch for local changes. These are then merged back and forth. When a change is merged from the local to the launchpad-copy then it can be pushed back up to launchpad.
The point is that bzr push is the opposite of bzr pull, not of bzr merge. What we really want to do is run bzr merge <Stephen's modifications> on the launchpad repository. Since we can't run commands on it directly, what we do is have a pristine copy of it locally and merge on that, then push the merges back to launchpad.
@StephanLehmke Yes, I think so. Hang on a sec ...
To work on the TeX-SX launchpad project: (First time only) ~$ bzr branch lp:tex-sx tex-sx-launchpad ~$ bzr branch tex-sx-launchpad tex-sx-local Now code away happily on `tex-sx-local` To pull changes from launchpad: ~$ cd tex-sx-launchpad; bzr pull ~$ cd tex-sx-local; bzr merge (Must be fully committed first) To push changes to launchpad ~$ cd tex-sx-launchpad ~$ bzr pull ~$ bzr merge ../tex-sx-local ~$ bzr commit -m 'Merging changes from ...' ~$ bzr push :parent (It should remember the two locations after the first time)