emacs-bug-tracker
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[debbugs-tracker] bug#28520: closed (26.0.50; Dired recursive copy of di


From: GNU bug Tracking System
Subject: [debbugs-tracker] bug#28520: closed (26.0.50; Dired recursive copy of directory fails)
Date: Wed, 20 Sep 2017 19:00:03 +0000

Your message dated Wed, 20 Sep 2017 11:59:37 -0700
with message-id <address@hidden>
and subject line Re: bug#28483: 26.0.50; copy-directory does not create 
directories
has caused the debbugs.gnu.org bug report #28520,
regarding 26.0.50; Dired recursive copy of directory fails
to be marked as done.

(If you believe you have received this mail in error, please contact
address@hidden)


-- 
28520: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=28520
GNU Bug Tracking System
Contact address@hidden with problems
--- Begin Message --- Subject: 26.0.50; Dired recursive copy of directory fails Date: Tue, 19 Sep 2017 23:34:43 +0100
Copying a directory recursively, with dired ("C"), fails.

To reproduce:

mkdir test_dired_copy/a1/b -p
cd test_dired_copy
emacs -Q --eval '(dired ".")'

In dired, execute `dired-do-copy' (kbd "C") on the `a1' directory,
select `a2' (within the same parent directory) as the destination, and
answer `yes' to (`Recursive copies of ...?').

*Dired log* contains (in my specific case):


Copy ‘/home/adam/test_dired_copy/a1’ to ‘/home/adam/test_dired_copy/a2’ failed:
(file-already-exists File exists /home/adam/test_dired_copy/a2)

Copy failed for 1 of 1 file


The result is that the directory `a2' is created, but the subdirectory
`b' is not created within it. (For repeated testing, `a2' has to be
deleted each time.)



I think (though I'm not completely sure) that the problem can be
traced to copy-directory, since the following elisp fails as well:

(copy-directory "/home/adam/test_dired_copy/a1" "/home/adam/test_dired_copy/a2")

or equivalently (if already within the directory):

(copy-directory "a1" "a2")


The regression occurred in the commit range
52739ffe773eb403f58a6223b7ef64175df58dd7..e22794867d878d53675fcc91d2ef1ad2494a2ff2
(I have not had time to rebuild emacs sufficiently many times and
check which exact commit is responsible).

The bug is present in the heads of both the emacs-26
(4bef92e9e02d074de1d92e30dc5ef4dd62558c80) and master
(b1f83c10df7d1bbb16f4e13d18119ad4aa1a2137) branches.


Thank you,
Adam


In GNU Emacs 26.0.50 (build 1, x86_64-pc-linux-gnu, GTK+ Version 3.18.9)
 of 2017-09-13 built on adam
Repository revision: 4bef92e9e02d074de1d92e30dc5ef4dd62558c80
Windowing system distributor 'The X.Org Foundation', version 11.0.11804000
System Description:    Ubuntu 16.04.3 LTS

Recent messages:
For information about GNU Emacs and the GNU system, type C-h C-a.

Configured using:
 'configure --with-modules --without-pop'

Configured features:
XPM JPEG TIFF GIF PNG RSVG IMAGEMAGICK SOUND GPM DBUS GSETTINGS NOTIFY
ACL LIBSELINUX GNUTLS LIBXML2 FREETYPE M17N_FLT LIBOTF XFT ZLIB
TOOLKIT_SCROLL_BARS GTK3 X11 MODULES LIBSYSTEMD LCMS2

Important settings:
  value of $LANG: en_GB.UTF-8
  value of $XMODIFIERS: @im=ibus
  locale-coding-system: utf-8-unix

Major mode: Dired by name

Minor modes in effect:
  tooltip-mode: t
  global-eldoc-mode: t
  electric-indent-mode: t
  mouse-wheel-mode: t
  tool-bar-mode: t
  menu-bar-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  blink-cursor-mode: t
  auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t
  buffer-read-only: t
  line-number-mode: t
  transient-mark-mode: t

Load-path shadows:
None found.

Features:
(shadow sort mail-extr emacsbug message subr-x puny cl-macs seq byte-opt
gv bytecomp byte-compile cconv format-spec rfc822 mml easymenu mml-sec
password-cache epa derived epg epg-config gnus-util rmail rmail-loaddefs
mm-decode mm-bodies mm-encode mail-parse rfc2231 mailabbrev gmm-utils
mailheader sendmail rfc2047 rfc2045 ietf-drums mm-util mail-prsvr
mail-utils dired-aux cl-loaddefs cl-lib dired dired-loaddefs elec-pair
time-date mule-util tooltip eldoc electric uniquify ediff-hook vc-hooks
lisp-float-type mwheel term/x-win x-win term/common-win x-dnd tool-bar
dnd fontset image regexp-opt fringe tabulated-list replace newcomment
text-mode elisp-mode lisp-mode prog-mode register page menu-bar
rfn-eshadow isearch timer select scroll-bar mouse jit-lock font-lock
syntax facemenu font-core term/tty-colors frame cl-generic cham georgian
utf-8-lang misc-lang vietnamese tibetan thai tai-viet lao korean
japanese eucjp-ms cp51932 hebrew greek romanian slovak czech european
ethiopic indian cyrillic chinese composite charscript charprop
case-table epa-hook jka-cmpr-hook help simple abbrev obarray minibuffer
cl-preloaded nadvice loaddefs button faces cus-face macroexp files
text-properties overlay sha1 md5 base64 format env code-pages mule
custom widget hashtable-print-readable backquote dbusbind inotify lcms2
dynamic-setting system-font-setting font-render-setting move-toolbar gtk
x-toolkit x multi-tty make-network-process emacs)

Memory information:
((conses 16 100826 7691)
 (symbols 48 20537 1)
 (miscs 40 52 193)
 (strings 32 28786 1222)
 (string-bytes 1 745696)
 (vectors 16 15163)
 (vector-slots 8 497313 9957)
 (floats 8 48 124)
 (intervals 56 824 11)
 (buffers 992 15)
 (heap 1024 24906 1131))



--- End Message ---
--- Begin Message --- Subject: Re: bug#28483: 26.0.50; copy-directory does not create directories Date: Wed, 20 Sep 2017 11:59:37 -0700 User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.3.0
On 09/20/2017 04:26 AM, Eli Zaretskii wrote:
I think the problem is in this line:

          (cond
           ((eq filetype t)       ; Directory but not a symlink.
            (copy-directory file newname keep-time parents)) <<<<<<<<<<<

Instead of 'newname', there should be (file-name-as-directory newname)
there.  I think.

Thanks for diagnosing the problem and for the fix. That fix should work, and I think we can improve on it slightly by using (copy-directory file target keep-time parents t), as this makes the cond branch more parallel with the other alternatives and avoids a call to file-name-as-directory. So I installed the attached patch into the emacs-26 branch to do that, and to add a test case for this bug. This patch should also fix Bug#28520 "Dired recursive copy of directory fails", so I'll CC: that bug report and boldly close it.

PS. Sorry, Adam, for misspelling your first name in the commit message. I'll try to remember to fix that when it spills out into the ChangeLog file.

Attachment: 0001-Fix-new-copy-directory-bug-with-empty-dirs.patch
Description: Text Data


--- End Message ---

reply via email to

[Prev in Thread] Current Thread [Next in Thread]