: - Preserve the wt.basis->wt.state changes - Transform the wt.basis to the new master basis. - Apply a merge of the old branch basis to get any 'local' changes from it into the tree. - Restore the wt.basis->wt.state changes. There isn't a single operation at the moment to do that, so we: - Merge current state -> basis tree of the master w.r.t. the old tree basis. - Do a 'normal' merge of the old branch basis if it is relevant. :param revision: The target revision to update to. Must be in the revision history. :param old_tip: If branch.update() has already been run, the value it returned (old tip of the branch or None). _marker is used otherwise. NF)r1