[bitbake-devel] [PATCH] fetch2: Shorten long srcrevs

Bruce Ashfield bruce.ashfield at windriver.com
Sun May 19 16:02:26 UTC 2013


On 13-05-19 6:21 AM, Richard Purdie wrote:
> The long srcrevs are mainly used or the workdir construction as well as
> the package version. The long entries are hashes generated by the git fetcher
> and other scms using a similar revision mechanism.
>
> We need these to change when the package changes however collisions are
> unlikely to happen within the domains we care about. The long revisions
> have generated negative user feedback due to the use in path and file
> names.
>
> This patch therefore truncates the revisions to 10 characters maximum.
>
> This should be safe in the contexts where these revisions are used as
> the chances of spatially close collisions is very low (distant
> collisions are not a major issue in the way we use these).

I for one like the change, the split of PN/<hashes> was a nice
improvement and this will make life a little bit easier again.

10 should definitely be enough to avoid collisions, I've rarely had
to go above 7 or 8 characters in my kernel hashes, and 10 will make
collisions that much harder to find.

As Martin asked, I assume we continue to specify 40 character hashes
in our recipes, which is fine with me since it makes the recipe
completely accurate.

Cheers,

Bruce


>
> Signed-off-by: Richard Purdie <richard.purdie at linuxfoundation.org>
> ---
> CC'd various people who I believe might have feelings about this. The
> patch depends on the sortable_revisions patch I just sent out.
>
> diff --git a/bitbake/lib/bb/fetch2/__init__.py b/bitbake/lib/bb/fetch2/__init__.py
> index f8f8244..402329d 100644
> --- a/bitbake/lib/bb/fetch2/__init__.py
> +++ b/bitbake/lib/bb/fetch2/__init__.py
> @@ -617,6 +617,8 @@ def get_srcrev(d):
>
>       if len(scms) == 1 and len(urldata[scms[0]].names) == 1:
>           autoinc, rev = urldata[scms[0]].method.sortable_revision(scms[0], urldata[scms[0]], d, urldata[scms[0]].names[0])
> +        if len(rev) > 10:
> +            rev = rev[:10]
>           if autoinc:
>               return "AUTOINC+" + rev
>           return rev
> @@ -633,6 +635,8 @@ def get_srcrev(d):
>           ud = urldata[scm]
>           for name in ud.names:
>               autoinc, rev = ud.method.sortable_revision(scm, ud, d, name)
> +            if len(rev) > 10:
> +                rev = rev[:10]
>               if autoinc and not seenautoinc:
>                   rev = "AUTOINC+" + rev
>                   seenautoinc
>
>





More information about the bitbake-devel mailing list