Skip to content
Snippets Groups Projects
user avatar
Georges Racinet authored
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)
dca77bae
History
Name Last commit Last update