[dim PATCH 6/7] dim: include all unmerged tags in the pull request mail

Daniel Vetter daniel at ffwll.ch
Wed Dec 12 10:06:19 UTC 2018


On Tue, Dec 11, 2018 at 01:52:59PM +0200, Jani Nikula wrote:
> On Thu, 06 Dec 2018, Daniel Vetter <daniel at ffwll.ch> wrote:
> > On Wed, Dec 05, 2018 at 05:02:58PM +0200, Jani Nikula wrote:
> >> Until now, only drm-intel-next pull requests included all previous
> >> annotated tag texts in the pull request mail. Do this for all branches
> >> in case they were previously tagged using dim tag-branch.
> >
> > So one annoying thing with this entire idea (that lazy me never fixed) is
> > that git pull throws all but the last tag away. And Dave is lazy too, so
> > he doesn't copy them in either, and then promptly forgets about those
> > features when typing his pull request mail to Linus.
> >
> > I think before we roll this out more we need some cleverness for the case
> > where there's more than 1 tag. Maybe autogenerate an -aggregate tag which
> > has everything concatenated? Ofc would still first need to ask the
> > maintainer to write the tag for the current pile of patches.
> 
> Imagine a workflow:
> 
> maintainer			upstream
> ----------			--------
> tag a
> pull request a
> tag b
> pull request b			pull a		<-- race
> 				pull b
> 
> Basically the pull request side doesn't know when the upstream pulls and
> pushes the result out, and it shouldn't matter whether upstream pulls
> both a and b, or only b.

This sounds like a problem which should be solved with "you need to talk
with your upstream more", not with scripting :-)

I think there's 2 cases where we can end up with multiple tags in one
pull:
- -next after the merge window. No race I think.
- Quick fixups for -fixes. Definitely want to slow down and chat with
  upstream in that case to make sure everyone is on the same page.
> 
> Our pull request subcommand does include all unmerged tags in the email
> at the time of writing, but it is really up to the upstream what tags
> and changes are included in each merge.
> 
> Perhaps we should tweak apply-pull subcommand instead to include all the
> annotated tags that are being merged in the merge commit?

It's git that does that when you use tags. I'm not sure breaking the git
pull flow is a good idea, especially for signed tags ... the entire point
of annotated tags is that you don't have to manually copy anything,
because the annotated tag contains it all. Hence creating a new tag with
everything.
-Daniel

> 
> BR,
> Jani.
> 
> 
> > -Daniel
> >
> >> 
> >> Signed-off-by: Jani Nikula <jani.nikula at intel.com>
> >> ---
> >>  dim | 17 +++++++++++------
> >>  1 file changed, 11 insertions(+), 6 deletions(-)
> >> 
> >> diff --git a/dim b/dim
> >> index 5081e9ac4a34..12b86cf3a382 100755
> >> --- a/dim
> >> +++ b/dim
> >> @@ -1939,7 +1939,7 @@ function dim_tag_next
> >>  # dim_pull_request branch upstream
> >>  function dim_pull_request
> >>  {
> >> -	local branch upstream remote repo req_file url_list git_url tag
> >> +	local branch upstream remote repo req_file url_list git_url tag tags
> >>  
> >>  	branch=${1:?$usage}
> >>  	upstream=${2:?$usage}
> >> @@ -1957,21 +1957,26 @@ function dim_pull_request
> >>  
> >>  	if [ "$branch" = "drm-intel-next" ]; then
> >>  		# drm-intel-next pulls have been tagged using dim update-next
> >> -		drm_intel_next_tags=$(git_unmerged_tags "$branch" "$upstream")
> >> -		prep_pull_mail $req_file $drm_intel_next_tags
> >> -		tag=$(git describe --all --exact "$branch@{upstream}")
> >> -
> >>  		repo="drm-intel"
> >>  	else
> >>  		tag=$(tag_name "$branch")
> >>  		gitk --first-parent "$branch" ^$upstream &
> >>  		tag_branch $tag $branch
> >>  		$DRY git push $remote $tag
> >> -		prep_pull_mail $req_file $tag
> >>  
> >>  		repo=$(branch_to_repo $branch)
> >>  	fi
> >>  
> >> +	tags=$(git_unmerged_tags "$branch" "$upstream")
> >> +	prep_pull_mail $req_file $tags
> >> +	if [[ -z "$tags" ]]; then
> >> +		echoerr "no unmerged tags, please use dim tag-branch"
> >> +		return 1
> >> +	fi
> >> +
> >> +	# Use the latest tag for the pull request
> >> +	tag="${tags%% *}"
> >> +
> >>  	url_list=${drm_tip_repos[$repo]}
> >>  	git_url=$(pick_protocol_url git $url_list)
> >>  
> >> -- 
> >> 2.11.0
> >> 
> >> _______________________________________________
> >> dim-tools mailing list
> >> dim-tools at lists.freedesktop.org
> >> https://lists.freedesktop.org/mailman/listinfo/dim-tools
> 
> -- 
> Jani Nikula, Intel Open Source Graphics Center

-- 
Daniel Vetter
Software Engineer, Intel Corporation
http://blog.ffwll.ch


More information about the dim-tools mailing list