On Tue, Aug 28, 2018 at 02:31:00PM -0400, Sean Paul wrote: > From: Sean Paul <[email protected]> > > 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 <[email protected]> > Cc: Daniel Vetter <[email protected]> > Signed-off-by: Sean Paul <[email protected]>
Reviewed-by: Daniel Vetter <[email protected]> > --- > dim | 42 +++++++++++++++++++++++++++++++++++++----- > dim.rst | 8 ++++++++ > 2 files changed, 45 insertions(+), 5 deletions(-) > > diff --git a/dim b/dim > index 5040d6b046b2..3f5fdb9233f7 100755 > --- a/dim > +++ b/dim > @@ -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 > diff --git a/dim.rst b/dim.rst > index 6d7528ce497f..4137d1be6f52 100644 > --- a/dim.rst > +++ b/dim.rst > @@ -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 > -- > Sean Paul, Software Engineer, Google / Chromium OS > -- Daniel Vetter Software Engineer, Intel Corporation http://blog.ffwll.ch _______________________________________________ dim-tools mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/dim-tools
