diff options
author | Sean Paul <seanpaul@chromium.org> | 2018-08-28 14:31:00 -0400 |
---|---|---|
committer | Sean Paul <seanpaul@chromium.org> | 2018-08-28 15:22:37 -0400 |
commit | 2857b71d368a3ce7909bb64c60b986d9f656b07c (patch) | |
tree | cf36f05a49a9334838984d8b8811bd8d5c16e8eb | |
parent | 03203669f4006f64632def1216c83b09fbcec81e (diff) |
dim: Add dim rebase command
Since -fixes and -fixes-next (to a lesser extent) are rebasing trees in
drm-misc, add a dim rebase command that sanity checks the upstream and
adds SoB for the committer.
Changes in v2:
- s/validate_upstream_branch/validate_upstream_baseline/ (Daniel)
- Use check_conflicts instead of hand rolling (Daniel)
Cc: Boris Brezillon <boris.brezillon@bootlin.com>
Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Signed-off-by: Sean Paul <seanpaul@chromium.org>
Link: https://patchwork.freedesktop.org/patch/msgid/20180828183100.189905-1-sean@poorly.run
-rwxr-xr-x | dim | 42 | ||||
-rw-r--r-- | dim.rst | 8 |
2 files changed, 45 insertions, 5 deletions
@@ -1014,12 +1014,12 @@ function dim_apply_pull return $rv } -function dim_backmerge +function validate_upstream_baseline { - local branch upstream patch_file + local branch upstream - branch=${1:?$usage} - upstream=${2:?$usage} + branch=${1} + upstream=${2} cd $DIM_PREFIX/drm-tip @@ -1041,6 +1041,16 @@ function dim_backmerge assert_branch $branch assert_repo_clean +} + +function dim_backmerge +{ + local branch upstream patch_file + + branch=${1:?$usage} + upstream=${2:?$usage} + + validate_upstream_baseline $branch $upstream git merge --rerere-autoupdate --no-commit $upstream >& /dev/null || true @@ -1059,7 +1069,7 @@ function dim_backmerge HERE - if git diff | grep -q '\(<<<<<<<\|=======\|>>>>>>>\||||||||\)' ; then + if ! check_conflicts "$upstream" ; then echoerr "Conflicts found while merging $upstream into $branch." echoerr "This should only happen when git rerere gets confused" echoerr "or if there's a manual fixup patch in drm-rerere." @@ -1072,6 +1082,28 @@ function dim_backmerge git commit -s } +function dim_rebase +{ + local branch upstream patch_file + + branch=${1:?$usage} + upstream=${2:?$usage} + + validate_upstream_baseline $branch $upstream + + git rebase --signoff $upstream >& /dev/null || true + if ! check_conflicts "$upstream" ; then + echoerr "Conflicts found while rebasing $branch onto $upstream." + echoerr "Please proceed with extreme caution." + echoerr "Resolve the conflict and test it. Once the conflict " + echoerr "is resolved, commit it with: " + echoerr " git commit -a" + echoerr "And continue the rebase with: " + echoerr " git rebase --continue" + exit 1 + fi +} + function dim_add_link { local branch file message_id @@ -338,6 +338,14 @@ Backmerges *upstream* into *branch*, making a few sanity checks on the way. The using **pull-request**. Alternatively it can also be a tag, which if available should be preferred. +rebase *branch* *upstream* +----------------------------- + +Rebases *branch* onto *upstream*, making a few sanity checks on the way. The +*upstream* we rebase onto should be the same as used for sending out pull requests +using **pull-request**. Alternatively it can also be a tag, which if available +should be preferred. + update-next ----------- Pushes out the latest dinq to drm-intel-next and tags it. Also |