1
0
mirror of https://git.yoctoproject.org/poky synced 2026-06-02 13:29:49 +00:00

bitbake: fetch2/git: Use os.rename instead of mv

os.rename will overwrite the destination file if present so we can use this
instead of the process call overhead.

(Bitbake rev: 7be6d18cd74291371f5327dcab2412f508c70189)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit b3cccaa6a896c41d8c9be5eebc327f726542d16b)
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Richard Purdie
2021-10-25 22:15:49 +08:00
parent f5fd1c2fd3
commit bb4a95c819
+4 -4
View File
@@ -418,14 +418,14 @@ class Git(FetchMethod):
# Create as a temp file and move atomically into position to avoid races # Create as a temp file and move atomically into position to avoid races
@contextmanager @contextmanager
def create_atomic(filename, d): def create_atomic(filename):
fd, tfile = tempfile.mkstemp(dir=os.path.dirname(filename)) fd, tfile = tempfile.mkstemp(dir=os.path.dirname(filename))
try: try:
yield tfile yield tfile
umask = os.umask(0o666) umask = os.umask(0o666)
os.umask(umask) os.umask(umask)
os.chmod(tfile, (0o666 & ~umask)) os.chmod(tfile, (0o666 & ~umask))
runfetchcmd("mv %s %s" % (tfile, filename), d) os.rename(tfile, filename)
finally: finally:
os.close(fd) os.close(fd)
@@ -439,7 +439,7 @@ class Git(FetchMethod):
self.clone_shallow_local(ud, shallowclone, d) self.clone_shallow_local(ud, shallowclone, d)
logger.info("Creating tarball of git repository") logger.info("Creating tarball of git repository")
with create_atomic(ud.fullshallow, d) as tfile: with create_atomic(ud.fullshallow) as tfile:
runfetchcmd("tar -czf %s ." % tfile, d, workdir=shallowclone) runfetchcmd("tar -czf %s ." % tfile, d, workdir=shallowclone)
runfetchcmd("touch %s.done" % ud.fullshallow, d) runfetchcmd("touch %s.done" % ud.fullshallow, d)
finally: finally:
@@ -449,7 +449,7 @@ class Git(FetchMethod):
os.unlink(ud.fullmirror) os.unlink(ud.fullmirror)
logger.info("Creating tarball of git repository") logger.info("Creating tarball of git repository")
with create_atomic(ud.fullmirror, d) as tfile: with create_atomic(ud.fullmirror) as tfile:
runfetchcmd("tar -czf %s ." % tfile, d, workdir=ud.clonedir) runfetchcmd("tar -czf %s ." % tfile, d, workdir=ud.clonedir)
runfetchcmd("touch %s.done" % ud.fullmirror, d) runfetchcmd("touch %s.done" % ud.fullmirror, d)