mirror of
git://git.yoctoproject.org/poky.git
synced 2025-07-19 12:59:02 +02:00
lib/oe/path: Fix performance issue got copyhardlinktree()
With the directory copy was added to avoid race issues, it wasn't noticed that tar was recursing the directories and copying files too. This is completely crazy when we hardlink those files in the next command. Resolve the issue by telling tar not to recurse. This gives a significant performance boost to various parts of the system (do_package for linux-yocto 256s -> 178s for example). (From OE-Core rev: 8b90ed084d59b4e07aa547255d327b25cfb2ee2b) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
parent
5e73287ad8
commit
8a07a176d7
|
@ -93,7 +93,7 @@ def copyhardlinktree(src, dst):
|
|||
if (os.stat(src).st_dev == os.stat(dst).st_dev):
|
||||
# Need to copy directories only with tar first since cp will error if two
|
||||
# writers try and create a directory at the same time
|
||||
cmd = 'cd %s; find . -type d -print | tar -cf - -C %s -p --files-from - | tar -xf - -C %s' % (src, src, dst)
|
||||
cmd = 'cd %s; find . -type d -print | tar -cf - -C %s -p --files-from - --no-recursion | tar -xf - -C %s' % (src, src, dst)
|
||||
check_output(cmd, shell=True, stderr=subprocess.STDOUT)
|
||||
if os.path.isdir(src):
|
||||
src = src + "/*"
|
||||
|
|
Loading…
Reference in New Issue
Block a user