Skip to content
Snippets Groups Projects
Commit dca77bae authored by Georges Racinet's avatar Georges Racinet
Browse files

MercurialOperations: define and implement MergeBranch

This is the counterpart of Gitaly's `OperationService.UserMergeBranch`.

We had to make a dedicated method because

- the two-phase system of Gitaly does not make sense for Mercurial:
  merging does move branches right away, as branch information is
  enclosed in the changeset. We started development by mimicking it,
  but it soon became overly complicated
- we have the `semi_linear` field, nothing alike on the Gitaly side,
  since the method always performs a merge, and ours would fast-forward
  by default.
- we have error cases that do not exist in Git (obsolescence and
  instability checks). Actually, we reuse some of Gitaly errors
  to ease the burden of treatment on the client side. The case
  of `reference_check` being a borderline, but it shouldn't matter
  much.

(bumping minimal py-heptapod version for `GitRepo.git()` helper method)
parent 833f4cc9
No related branches found
No related tags found
2 merge requests!226Merged stable branch into default,!225MercurialOperations: define and implement MergeBranch
Pipeline #76512 passed
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment