GNU bug report logs - #18681
The Linux cp command has bugs

Previous Next

Package: coreutils;

Reported by: "Polehn, Mike A" <mike.a.polehn <at> intel.com>

Date: Fri, 10 Oct 2014 17:30:02 UTC

Severity: normal

Done: Bob Proulx <bob <at> proulx.com>

Bug is archived. No further changes may be made.

Full log


View this message in rfc822 format

From: "Polehn, Mike A" <mike.a.polehn <at> intel.com>
To: Assaf Gordon <assafgordon <at> gmail.com>, "18681 <at> debbugs.gnu.org" <18681 <at> debbugs.gnu.org>
Subject: bug#18681: The Linux cp command has bugs
Date: Fri, 10 Oct 2014 20:00:52 +0000
Hi Assaf!

Thank you for your quick response!

There is always multiple ways to do things. The git tool has a diff tool built in that makes file comparison easy.

I have run across multiple times that copying one tree over another is desirable.

In another bug message thread, we found that the cause was cp alias to 'cp -i' for root user was the actual cause.

This still left the incorrect operation of the interactive operation when both -i and -f is used.

I think that in some cases the need of override the '-i' with '-f' maybe very desirable. So maybe having the '-f' cancel or override the '-i' operation might be a good change.

Thanks!
Mike

-----Original Message-----
From: Assaf Gordon [mailto:assafgordon <at> gmail.com] 
Sent: Friday, October 10, 2014 12:14 PM
To: Polehn, Mike A; 18681 <at> debbugs.gnu.org
Subject: Re: bug#18681: The Linux cp command has bugs

Hello Mike,

On 10/10/2014 01:25 PM, Polehn, Mike A wrote:>
> Problem need to copy a tree of 1000s of files to another directory 
> that is a git directory that has a whole bunch of additional build 
> files, so diff between the directories will not do any good.
>

This is slightly off-topic, but if you want to compare only files managed by git (ignoring other files in current directory), perhaps the following would help:

     # Download and extract the tarball
     wget -q http://dpdk.org/browse/dpdk/snapshot/dpdk-1.7.1.tar.gz
     tar -xf dpdk-1.7.1.tar.gz

     # Clone the git repo with specific branch, checkout the relevant branch
     # (or go to an existing checked-out repository directory)
     git clone git://dpdk.org/dpdk
     cd dpdk
     git checkout -b map_v1.7.1 v1.7.1

     # For each file managed by git (with 'git ls'),
     # compare it to the corresponding file in the other directory:
     git ls -0 | xargs -0 -I% diff -q % ../dpdk-1.7.1/%


Regards,
  -gordon




This bug report was last modified 10 years and 212 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.