[Intel-gfx] [maintainer-tools PATCH] dim: Add helpers to move fixes branches up.
Jani Nikula
jani.nikula at intel.com
Tue Oct 3 10:30:37 UTC 2017
On Tue, 03 Oct 2017, Daniel Vetter <daniel at ffwll.ch> wrote:
> On Mon, Oct 02, 2017 at 11:32:36AM -0700, Rodrigo Vivi wrote:
>> One of main doubts I had when starting maintaining the
>> fixes branches was when to move them, but also how, to-where,
>> and when avoid moving and stay on the current one.
>>
>> So this scripts aims to avoid doubts and mistakes on fixes
>> maintainance besides making all bases more clear and
>> standardized.
>>
>> Cc: Jani Nikula <jani.nikula at intel.com>
>> Cc: Joonas Lahtinen <joonas.lahtinen at linux.intel.com>
>> Cc: Daniel Vetter <daniel.vetter at ffwll.ch>
>> Signed-off-by: Rodrigo Vivi <rodrigo.vivi at intel.com>
>
> I think calling these rebase is not good, and doing an actual rebase is
> also not good really. Here's my thoughts on this:
>
> - I'd call the command "forward"
>
> - It should do a fast forward only, and if that fails, abort. So git merge
> --ff-only. If fast-forward isn't possible I think it should suggest to
> do a dim backmerge, but only if moving forward is really required.
>
> - There's more than drm-intel.git in dim, I think it'd be great if we can
> make this work for other repos. Currently the meaning of the 3 branches
> is hard-coded in dim_push_branch at the end where we call
> update_linux_next. I think it'd be good to extract this information into
> nightly.conf (as an array perhaps, indexed by repo name, with the three
> names, not sure how to do that best). With that you could do a generic
> dim forward(-branch) which would pick the right logic depending whether
> you're on -fixes, -next-fixes or the main feature branch.
>
> Thoughts?
I have a bunch of refactoring in the pipeline relying more and more on
the information in nightly.conf so I suggest holding off until those
have landed.
BR,
Jani.
> -Daniel
>
>> ---
>> dim | 50 ++++++++++++++++++++++++++++++++++++++++++++++++++
>> dim.rst | 13 +++++++++++++
>> 2 files changed, 63 insertions(+)
>>
>> diff --git a/dim b/dim
>> index fc16d114632f..8643bafcd2a5 100755
>> --- a/dim
>> +++ b/dim
>> @@ -918,6 +918,56 @@ function dim_apply_pull
>> return $rv
>> }
>>
>> +function rebase_branch
>> +{
>> + local branch newbase
>> +
>> + branch=${1:?$usage}
>> + shift
>> + newbase=${1:?$usage}
>> + shift
>> +
>> + assert_branch $branch
>> + assert_repo_clean
>> +
>> + $DRY git rebase $newbase "$@"
>> +}
>> +
>> +dim_alias_rf=rebase-fixes
>> +function dim_rebase_fixes
>> +{
>> + local tag commit
>> +
>> + commit=$(git rev-list --tags --max-count=1 --remotes=$DIM_DRM_INTEL)
>> + tag=$(git describe --tags $commit)
>> +
>> + if [[ $tag != *"-rc"* ]]; then
>> + echoerr "Tag $tag is not an -rc one."
>> + return 1;
>> + fi
>> +
>> + rebase_branch drm-intel-fixes $tag "$@"
>> +
>> + if [ $DRY ]; then
>> + return 0;
>> + fi
>> +
>> + if [ $(git rev-parse HEAD) != $commit ]; then
>> + git reset --hard $DIM_DRM_INTEL_REMOTE/drm-intel-fixes
>> + echoerr "ERROR: fixes didn't fully propagated yet, aborting"
>> + fi
>> +}
>> +
>> +dim_alias_rnf=rebase-next-fixes
>> +function dim_rebase_next_fixes
>> +{
>> + local dim_drm_upstream_remote
>> +
>> + dim_drm_upstream_remote=$(url_to_remote $drm_upstream_git)
>> +
>> + rebase_branch drm-intel-next-fixes $dim_drm_upstream_remote/drm-next "$@"
>> +}
>> +
>> function dim_backmerge
>> {
>> local branch upstream patch_file
>> diff --git a/dim.rst b/dim.rst
>> index 65e652e8bc75..a53ef8aa67e2 100644
>> --- a/dim.rst
>> +++ b/dim.rst
>> @@ -376,6 +376,19 @@ apply-pull *branch*
>> -------------------
>> Reads a pull request mail from stdin and merges it into the given *branch*.
>>
>> +rebase-fixes
>> +------------
>> +Rebases drm-intel-fixes to latest Linus tag.
>> +This command is to be used following a Linus "-rc" tag, in order to move
>> +drm-intel-fixes branch up.
>> +It fails if tag is not an -rc tag.
>> +It fails if your current fixes didn't fully propagated yet.
>> +
>> +rebase-fixes-next
>> +-----------------
>> +Rebases drm-intel-next queued into drm-next.
>> +This command is to be used after drm-next is closed for new features.
>> +
>> backmerge *branch* *upstream*
>> -----------------------------
>>
>> --
>> 2.13.5
>>
--
Jani Nikula, Intel Open Source Technology Center
More information about the Intel-gfx
mailing list