Message ID | 20220414154207.25999-1-pkj@axis.com |
---|---|
State | Accepted, archived |
Commit | 98cad8636e9c82bc40a033bb83633ec994758eb0 |
Headers | show |
Series | fetch2/git: Simplify the validation of SHA-1 revisions | expand |
On Thu, 2022-04-14 at 17:42 +0200, Peter Kjellerstedt wrote: > Also correct two comments. > > Signed-off-by: Peter Kjellerstedt <peter.kjellerstedt@axis.com> > --- > bitbake/lib/bb/fetch2/git.py | 11 ++++++----- > 1 file changed, 6 insertions(+), 5 deletions(-) > > diff --git a/bitbake/lib/bb/fetch2/git.py b/bitbake/lib/bb/fetch2/git.py > index b3eb8248d0..90104ac383 100644 > --- a/bitbake/lib/bb/fetch2/git.py > +++ b/bitbake/lib/bb/fetch2/git.py > @@ -248,9 +248,10 @@ class Git(FetchMethod): > > ud.setup_revisions(d) > > + sha1_re = re.compile(r'^[0-9a-f]{40}$') re.compile() is expensive so in general we should cache that or do it at the module top level... Cheers, Richard
> -----Original Message----- > From: Richard Purdie <richard.purdie@linuxfoundation.org> > Sent: den 14 april 2022 18:28 > To: Peter Kjellerstedt <peter.kjellerstedt@axis.com>; bitbake- > devel@lists.openembedded.org > Subject: Re: [bitbake-devel] [PATCH] fetch2/git: Simplify the validation > of SHA-1 revisions > > On Thu, 2022-04-14 at 17:42 +0200, Peter Kjellerstedt wrote: > > Also correct two comments. > > > > Signed-off-by: Peter Kjellerstedt <peter.kjellerstedt@axis.com> > > --- > > bitbake/lib/bb/fetch2/git.py | 11 ++++++----- > > 1 file changed, 6 insertions(+), 5 deletions(-) > > > > diff --git a/bitbake/lib/bb/fetch2/git.py b/bitbake/lib/bb/fetch2/git.py > > index b3eb8248d0..90104ac383 100644 > > --- a/bitbake/lib/bb/fetch2/git.py > > +++ b/bitbake/lib/bb/fetch2/git.py > > @@ -248,9 +248,10 @@ class Git(FetchMethod): > > > > ud.setup_revisions(d) > > > > + sha1_re = re.compile(r'^[0-9a-f]{40}$') > > re.compile() is expensive so in general we should cache that or do it at > the module top level... Sure, I can move it to the module top level. I based the use of re.compile() in that class on how it was done in the _revision_key() function. Do you want me to move its slash_re as well? > Cheers, > > Richard //Peter
diff --git a/bitbake/lib/bb/fetch2/git.py b/bitbake/lib/bb/fetch2/git.py index b3eb8248d0..90104ac383 100644 --- a/bitbake/lib/bb/fetch2/git.py +++ b/bitbake/lib/bb/fetch2/git.py @@ -248,9 +248,10 @@ class Git(FetchMethod): ud.setup_revisions(d) + sha1_re = re.compile(r'^[0-9a-f]{40}$') for name in ud.names: - # Ensure anything that doesn't look like a sha256 checksum/revision is translated into one - if not ud.revisions[name] or len(ud.revisions[name]) != 40 or (False in [c in "abcdef0123456789" for c in ud.revisions[name]]): + # Ensure any revision that doesn't look like a SHA-1 is translated into one + if not sha1_re.match(ud.revisions[name] or ''): if ud.revisions[name]: ud.unresolvedrev[name] = ud.revisions[name] ud.revisions[name] = self.latest_revision(ud, d, name) @@ -259,10 +260,10 @@ class Git(FetchMethod): if gitsrcname.startswith('.'): gitsrcname = gitsrcname[1:] - # for rebaseable git repo, it is necessary to keep mirror tar ball - # per revision, so that even the revision disappears from the + # For a rebaseable git repo, it is necessary to keep a mirror tar ball + # per revision, so that even if the revision disappears from the # upstream repo in the future, the mirror will remain intact and still - # contains the revision + # contain the revision if ud.rebaseable: for name in ud.names: gitsrcname = gitsrcname + '_' + ud.revisions[name]
Also correct two comments. Signed-off-by: Peter Kjellerstedt <peter.kjellerstedt@axis.com> --- bitbake/lib/bb/fetch2/git.py | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-)