summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPádraig Brady <P@draigBrady.com>2023-04-03 18:12:33 +0100
committerPádraig Brady <P@draigBrady.com>2023-04-04 12:00:11 +0100
commit5891d28edebe229f1a6057275e281b10c1f2247b (patch)
tree290134b343e7066d1d157c7c033dc0663c3674fb
parent17c31a73f13ad320746e5b7e81a5883d7295d278 (diff)
downloadcoreutils-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--NEWS7
m---------gnulib0
-rwxr-xr-xtests/cp/backup-dir.sh8
3 files changed, 13 insertions, 2 deletions
diff --git a/NEWS b/NEWS
index f53adab6f..8f947faed 100644
--- a/NEWS
+++ b/NEWS
@@ -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