[PATCH] dim: Add dim rebase command

Daniel Vetter daniel at ffwll.ch
Tue Aug 28 15:37:08 UTC 2018


On Tue, Aug 28, 2018 at 11:03:23AM -0400, Sean Paul wrote:
> From: Sean Paul <seanpaul at chromium.org>
> 
> 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.
> 
> Cc: Boris Brezillon <boris.brezillon at bootlin.com>
> Cc: Daniel Vetter <daniel.vetter at ffwll.ch>
> Signed-off-by: Sean Paul <seanpaul at chromium.org>
> ---
>  dim     | 40 ++++++++++++++++++++++++++++++++++++----
>  dim.rst |  8 ++++++++
>  2 files changed, 44 insertions(+), 4 deletions(-)
> 
> diff --git a/dim b/dim
> index 5040d6b046b2..b7060216fbe5 100755
> --- a/dim
> +++ b/dim
> @@ -1014,12 +1014,12 @@ function dim_apply_pull
>  	return $rv
>  }
>  
> -function dim_backmerge
> +function validate_upstream_branch

Naming nitpick: _branch here is a bit confusing, since we also accept tags
(and even prefer those). Maybe 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_branch $branch $upstream
>  
>  	git merge --rerere-autoupdate --no-commit $upstream >& /dev/null || true
>  
> @@ -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_branch $branch $upstream
> +
> +	git rebase --signoff $upstream >& /dev/null || true
> +	if git diff | grep -q '\(<<<<<<<\|=======\|>>>>>>>\||||||||\)' ; then

Probably too much effort to share with the check_conflicts helper.

As-is, or with my 2 nits addressed:

Reviewed-by: Daniel Vetter <daniel.vetter at ffwll.ch>

> +		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


More information about the dim-tools mailing list