diff options
author | Andre McCurdy <armccurdy@gmail.com> | 2018-05-07 18:02:12 -0700 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2018-05-22 13:13:19 +0100 |
commit | b68ed05be66eb045cb3fc74b201ce798766c3d1a (patch) | |
tree | bf804c511404c7f745655c08b177f99cd73320e7 | |
parent | 13cc30cd7de4841990b600e83e1249c81a5171dd (diff) | |
download | poky-b68ed05be66eb045cb3fc74b201ce798766c3d1a.tar.gz |
bitbake: fetch/git: make fewer calls to _contains_ref() from download()
Updating a local git repo clone currently results in multiple calls
to self._contains_ref(), some of which appear to be redundant and can
be eliminated by minor tweaks to the logic in download().
Also drop redundant calls to os.path.exists(ud.clonedir) before
self.need_update(), since need_update() includes its own built-in
check for the existance of ud.clonedir.
(Bitbake rev: 61b0df5523afc8f805043f3adc9c106690e6f133)
Signed-off-by: Andre McCurdy <armccurdy@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
-rw-r--r-- | bitbake/lib/bb/fetch2/git.py | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/bitbake/lib/bb/fetch2/git.py b/bitbake/lib/bb/fetch2/git.py index 3de83bed17..b733be9f38 100644 --- a/bitbake/lib/bb/fetch2/git.py +++ b/bitbake/lib/bb/fetch2/git.py | |||
@@ -322,16 +322,13 @@ class Git(FetchMethod): | |||
322 | def download(self, ud, d): | 322 | def download(self, ud, d): |
323 | """Fetch url""" | 323 | """Fetch url""" |
324 | 324 | ||
325 | no_clone = not os.path.exists(ud.clonedir) | ||
326 | need_update = no_clone or self.need_update(ud, d) | ||
327 | |||
328 | # A current clone is preferred to either tarball, a shallow tarball is | 325 | # A current clone is preferred to either tarball, a shallow tarball is |
329 | # preferred to an out of date clone, and a missing clone will use | 326 | # preferred to an out of date clone, and a missing clone will use |
330 | # either tarball. | 327 | # either tarball. |
331 | if ud.shallow and os.path.exists(ud.fullshallow) and need_update: | 328 | if ud.shallow and os.path.exists(ud.fullshallow) and self.need_update(ud, d): |
332 | ud.localpath = ud.fullshallow | 329 | ud.localpath = ud.fullshallow |
333 | return | 330 | return |
334 | elif os.path.exists(ud.fullmirror) and no_clone: | 331 | elif os.path.exists(ud.fullmirror) and not os.path.exists(ud.clonedir): |
335 | bb.utils.mkdirhier(ud.clonedir) | 332 | bb.utils.mkdirhier(ud.clonedir) |
336 | runfetchcmd("tar -xzf %s" % ud.fullmirror, d, workdir=ud.clonedir) | 333 | runfetchcmd("tar -xzf %s" % ud.fullmirror, d, workdir=ud.clonedir) |
337 | 334 | ||
@@ -353,6 +350,8 @@ class Git(FetchMethod): | |||
353 | for name in ud.names: | 350 | for name in ud.names: |
354 | if not self._contains_ref(ud, d, name, ud.clonedir): | 351 | if not self._contains_ref(ud, d, name, ud.clonedir): |
355 | needupdate = True | 352 | needupdate = True |
353 | break | ||
354 | |||
356 | if needupdate: | 355 | if needupdate: |
357 | try: | 356 | try: |
358 | runfetchcmd("%s remote rm origin" % ud.basecmd, d, workdir=ud.clonedir) | 357 | runfetchcmd("%s remote rm origin" % ud.basecmd, d, workdir=ud.clonedir) |
@@ -373,6 +372,7 @@ class Git(FetchMethod): | |||
373 | except OSError as exc: | 372 | except OSError as exc: |
374 | if exc.errno != errno.ENOENT: | 373 | if exc.errno != errno.ENOENT: |
375 | raise | 374 | raise |
375 | |||
376 | for name in ud.names: | 376 | for name in ud.names: |
377 | if not self._contains_ref(ud, d, name, ud.clonedir): | 377 | if not self._contains_ref(ud, d, name, ud.clonedir): |
378 | raise bb.fetch2.FetchError("Unable to find revision %s in branch %s even from upstream" % (ud.revisions[name], ud.branches[name])) | 378 | raise bb.fetch2.FetchError("Unable to find revision %s in branch %s even from upstream" % (ud.revisions[name], ud.branches[name])) |
@@ -472,7 +472,7 @@ class Git(FetchMethod): | |||
472 | if os.path.exists(destdir): | 472 | if os.path.exists(destdir): |
473 | bb.utils.prunedir(destdir) | 473 | bb.utils.prunedir(destdir) |
474 | 474 | ||
475 | if ud.shallow and (not os.path.exists(ud.clonedir) or self.need_update(ud, d)): | 475 | if ud.shallow and self.need_update(ud, d): |
476 | bb.utils.mkdirhier(destdir) | 476 | bb.utils.mkdirhier(destdir) |
477 | runfetchcmd("tar -xzf %s" % ud.fullshallow, d, workdir=destdir) | 477 | runfetchcmd("tar -xzf %s" % ud.fullshallow, d, workdir=destdir) |
478 | else: | 478 | else: |