diff options
author | Pádraig Brady <P@draigBrady.com> | 2023-04-03 18:12:33 +0100 |
---|---|---|
committer | Pádraig Brady <P@draigBrady.com> | 2023-04-04 12:00:11 +0100 |
commit | 5891d28edebe229f1a6057275e281b10c1f2247b (patch) | |
tree | 290134b343e7066d1d157c7c033dc0663c3674fb | |
parent | 17c31a73f13ad320746e5b7e81a5883d7295d278 (diff) | |
download | coreutils-5891d28edebe229f1a6057275e281b10c1f2247b.tar.gz |
cp: fix --backup with subdirectories
* gnulib: Reference the latest gnulib including the
fix to the backupfile module in commit 94496522.
* tests/cp/backup-dir.sh: Add a test to ensure
we rename appropriately when backing up through subdirs.
* NEWS: Mention the bug fix.
Fixes https://bugs.gnu.org/62607
-rw-r--r-- | NEWS | 7 | ||||
m--------- | gnulib | 0 | ||||
-rwxr-xr-x | tests/cp/backup-dir.sh | 8 |
3 files changed, 13 insertions, 2 deletions
@@ -4,12 +4,17 @@ GNU coreutils NEWS -*- outline -*- ** Bug fixes - cp --relink=auto (the default), mv, and install + cp --reflink=auto (the default), mv, and install will again fall back to a standard copy in more cases. Previously copies could fail with permission errors on more restricted systems like android or containers etc. [bug introduced in coreutils-9.2] + cp --recursive --backup will again operate correctly. + Previousy it may have issued "File exists" errors when + it failed to appropriately rename files being replaced. + [bug introduced in coreutils-9.2] + date --file and dircolors will now diagnose a failure to read a file. Previously they would have silently ignored the failure. [This bug was present in "the beginning".] diff --git a/gnulib b/gnulib -Subproject f17d397771164c1b0f77fea8fb0abdc99cf4a3e +Subproject 94496522f25f19673acb759409d4cdcc6038dae diff --git a/tests/cp/backup-dir.sh b/tests/cp/backup-dir.sh index 6573d58e0..5c17498cf 100755 --- a/tests/cp/backup-dir.sh +++ b/tests/cp/backup-dir.sh @@ -1,5 +1,5 @@ #!/bin/sh -# Ensure that cp -b doesn't back up directories. +# Ensure that cp -b handles directories appropriately # Copyright (C) 2006-2023 Free Software Foundation, Inc. @@ -29,4 +29,10 @@ cp -ab x y || fail=1 test -d y/x || fail=1 test -d y/x~ && fail=1 +# Bug 62607. +# This would fail to backup using rename, and thus fail to replace the file +mkdir -p {src,dst}/foo || framework_failure_ +touch {src,dst}/foo/bar || framework_failure_ +cp --recursive --backup src/* dst || fail=1 + Exit $fail |