diff options
author | Pádraig Brady <P@draigBrady.com> | 2023-04-25 11:07:36 +0100 |
---|---|---|
committer | Pádraig Brady <P@draigBrady.com> | 2023-04-25 11:17:54 +0100 |
commit | cc078f747f3db00e70b2ae2ad2ab34e8d54316d3 (patch) | |
tree | 17b8469d7af762a1779975bcd597180bf5384c41 | |
parent | 7ea7c020e844687eec15fc4749760bb29dee541a (diff) | |
download | coreutils-cc078f747f3db00e70b2ae2ad2ab34e8d54316d3.tar.gz |
copy: reduce verbosity of -i and -u with --verbose
Since skipping of files is central to the operation of -i and -u,
and with -u one may be updating few files out of many,
reinstate the verbosity of this functionality as it was before 9.3.
* src/copy.c (copy_internal): Only output "skipped" message
with --debug. Also adjust so message never changes with --debug.
* tests/cp/cp-i.sh: Adjust accordingly.
* tests/mv/mv-n.sh: Likewise.
* tests/cp/debug.sh: Add explicit test case for message.
* NEWS: Mention the change in behavior.
-rw-r--r-- | NEWS | 6 | ||||
-rw-r--r-- | src/copy.c | 6 | ||||
-rwxr-xr-x | tests/cp/cp-i.sh | 9 | ||||
-rwxr-xr-x | tests/cp/debug.sh | 4 | ||||
-rwxr-xr-x | tests/mv/mv-n.sh | 9 |
5 files changed, 21 insertions, 13 deletions
@@ -14,6 +14,12 @@ GNU coreutils NEWS -*- outline -*- factor, numfmt, and tsort now diagnose read errors on the input. [This bug was present in "the beginning".] +** Changes in behavior + + 'cp -v' and 'mv -v' will no longer output a message for each file skipped + due to -i, or -u. Instead they only output this information with --debug. + I.e., 'cp -u -v' etc. will have the same verbosity as before coreutils-9.3. + * Noteworthy changes in release 9.3 (2023-04-18) [stable] diff --git a/src/copy.c b/src/copy.c index 13d93324f..0dd059d2e 100644 --- a/src/copy.c +++ b/src/copy.c @@ -2433,10 +2433,10 @@ copy_internal (char const *src_name, char const *dst_name, skip: if (skipped) { - if (x->verbose) - printf (_("skipped %s\n"), quoteaf (dst_name)); - else if (x->interactive == I_ALWAYS_NO) + if (x->interactive == I_ALWAYS_NO) error (0, 0, _("not replacing %s"), quoteaf (dst_name)); + else if (x->debug) + printf (_("skipped %s\n"), quoteaf (dst_name)); return_now = true; } diff --git a/tests/cp/cp-i.sh b/tests/cp/cp-i.sh index 4458b2edd..a9178a99e 100755 --- a/tests/cp/cp-i.sh +++ b/tests/cp/cp-i.sh @@ -29,13 +29,12 @@ echo n | returns_ 1 cp -iR a b 2>/dev/null || fail=1 # test miscellaneous combinations of -f -i -n parameters touch c d || framework_failure_ echo "'c' -> 'd'" > out_copy || framework_failure_ -echo "skipped 'd'" > out_skip || framework_failure_ echo "cp: not replacing 'd'" > err_skip || framework_failure_ touch out_empty || framework_failure_ # ask for overwrite, answer no echo n | returns_ 1 cp -vi c d 2>/dev/null > out1 || fail=1 -compare out1 out_skip || fail=1 +compare out1 out_empty || fail=1 # ask for overwrite, answer yes echo y | cp -vi c d 2>/dev/null > out2 || fail=1 @@ -47,7 +46,7 @@ compare out3 out_copy || fail=1 # -n wins over -i echo y | returns_ 1 cp -vin c d 2>/dev/null > out4 || fail=1 -compare out4 out_skip || fail=1 +compare out4 out_empty || fail=1 # -n wins over -i non verbose echo y | returns_ 1 cp -in c d 2>err4 > out4 || fail=1 @@ -60,11 +59,11 @@ compare out5 out_copy || fail=1 # do not ask, prevent from overwrite echo n | returns_ 1 cp -vfn c d 2>/dev/null > out6 || fail=1 -compare out6 out_skip || fail=1 +compare out6 out_empty || fail=1 # do not ask, prevent from overwrite echo n | returns_ 1 cp -vnf c d 2>/dev/null > out7 || fail=1 -compare out7 out_skip || fail=1 +compare out7 out_empty || fail=1 # options --backup and --no-clobber are mutually exclusive returns_ 1 cp -bn c d 2>/dev/null || fail=1 diff --git a/tests/cp/debug.sh b/tests/cp/debug.sh index b46adc637..242894de2 100755 --- a/tests/cp/debug.sh +++ b/tests/cp/debug.sh @@ -25,4 +25,8 @@ grep 'copy offload:.*reflink:.*sparse detection:' cp.out || fail=1 cp --debug --attributes-only file file.cp >cp.out || fail=1 returns_ 1 grep 'copy offload:.*reflink:.*sparse detection:' cp.out || fail=1 +touch file.cp || framework_failure_ +cp --debug --update=none file file.cp >cp.out || fail=1 +grep 'skipped' cp.out || fail=1 + Exit $fail diff --git a/tests/mv/mv-n.sh b/tests/mv/mv-n.sh index 45d74eb93..60547807c 100755 --- a/tests/mv/mv-n.sh +++ b/tests/mv/mv-n.sh @@ -23,14 +23,13 @@ print_ver_ mv # test miscellaneous combinations of -f -i -n parameters touch a b || framework_failure_ echo "renamed 'a' -> 'b'" > out_move -echo "skipped 'b'" > out_skip || framework_failure_ echo "mv: not replacing 'b'" > err_skip || framework_failure_ > out_empty # ask for overwrite, answer no touch a b || framework_failure_ echo n | returns_ 1 mv -vi a b 2>/dev/null > out1 || fail=1 -compare out1 out_skip || fail=1 +compare out1 out_empty || fail=1 # ask for overwrite, answer yes touch a b || framework_failure_ @@ -40,7 +39,7 @@ compare out2 out_move || fail=1 # -n wins (as the last option) touch a b || framework_failure_ echo y | returns_ 1 mv -vin a b 2>/dev/null > out3 || fail=1 -compare out3 out_skip || fail=1 +compare out3 out_empty || fail=1 # -n wins (non verbose) touch a b || framework_failure_ @@ -51,12 +50,12 @@ compare err3 err_skip || fail=1 # -n wins (as the last option) touch a b || framework_failure_ echo y | returns_ 1 mv -vfn a b 2>/dev/null > out4 || fail=1 -compare out4 out_skip || fail=1 +compare out4 out_empty || fail=1 # -n wins (as the last option) touch a b || framework_failure_ echo y | returns_ 1 mv -vifn a b 2>/dev/null > out5 || fail=1 -compare out5 out_skip || fail=1 +compare out5 out_empty || fail=1 # options --backup and --no-clobber are mutually exclusive touch a || framework_failure_ |