As discussed in previous mails, I have now enabled the append_revisions_only option in our main Launchpad trees: lp:maria lp:maria/5.2 lp:maria/6.0 This email describes how merging must now be done to avoid getting this error when pushing: bzr: ERROR: Server sent an unexpected error: ('error', 'Operation denied because it would change the main history, which is not permitted by the append_revisions_only setting on branch "lp-139886317008592:///~maria-captains/maria/5.1".') Suppose we have a local branch "mypatch" that we want to push to lp:maria. If someone else pushed a change to lp:maria since mypatch was branched, we first need to merge. There are two ways to do the merge: 1. Merge from mypatch into lp:maria 2. Merge from lp:maria into mypatch The result in terms of file contents will be the same, but the resulting history will be different in that the primary and secondary merge parent will be switched between the two cases. The effect of the append_revisions_only option is to enforce method 1. Method 2 will now fail with the above error when trying to push the result. This means that the proper procedure for merging before pushing is now as follows: bzr branch lp:maria merge-5.1 cd merge-5.1 bzr merge ../mypatch bzr commit -m"Merged mypatch into trunk." # Compile and test bzr push lp:maria The important thing here is that the `bzr merge` command is done inside a clean clone of lp:maria, with no additional commits, and the branch with local commits to be merged is specified as the location to merge. Some additional points: - See my previous mails to maria-developers@ for more background information on this and why it is useful enough to warrant the need for the extra `bzr branch` command in the first line of the above procedure. - It is very important to use a shared repository locally when doing the extra branch to speed things up. There are other ways to speed up the procedure, including doing the extra branch from a local clean branch of lp:maria, and/or using `bzr co --lightweight` and `bzr switch`; see previous emails on this subject or ask for help. - If one has a local "mypatch" branch that was already merged in the other direction (the "wrong" direction 2), that is not a problem. Just follow the above procedure to merge it again in the right direction. It is also ok to re-do the merge in the correct direction 1 from an unmerged branch, of course. Just let me and/or the list know in case of problems or questions. - Kristian.