runbot/runbot_merge/models
Xavier Morel a40b4c20da [ADD] runbot_merge: flag to disable rebase before merge
rebase-and-merge (or squash-merge if pr.commits == 1) remains default,
but there are use cases like forward ports (merge branch X into branch
X+1 so that fixes to X are available in X+1) where we really really
don't want to rebase the source.

This commits implements two alternative merge methods:

If the PR and its target are ~disjoint, perform a straight merge (same
as old default mode).

However if the head of the PR has two parents *and* one of these
parents is a commit of the target, assume this is a merge commit to
fix a conflict (common during forward ports as X+1 will have changed
independently from and incompatibly with X in some ways).

In that case, merge by copying the PR's head atop the
target (basically rebase just that commit, only updating the link to
the parent which is part of target so that it points to the head of
target instead of whatever it was previously).
2018-09-03 13:16:36 +02:00
..
__init__.py [ADD] runbot_merge: a merge bot 2018-09-03 13:16:36 +02:00
pull_requests.py [ADD] runbot_merge: flag to disable rebase before merge 2018-09-03 13:16:36 +02:00
res_partner.py [ADD] runbot_merge: a merge bot 2018-09-03 13:16:36 +02:00