Subject: Re: bug#30533: 26.0.60; (copy-file) over TRAMP FTP mistakes file for directory

From: Christian Johansson <[email-masked]>
Date: Tue, 20 Feb 2018 06:04:11 +0100

Ok problem reproduced with latest trunk.

Output:

Downloading directory ’/ftp:[email-masked]:/remotepath/app.php’ to 
’/localpath/app.php’.. (synchronously)
tramp-file-name-handler: Opening directory: Not a directory, 
/ftp:[email-masked]:/remotepath/app.php

After running:

(defun ssh-deploy--download-via-tramp (path-remote path-local 
revision-folder)
   "Download PATH-REMOTE to PATH-LOCAL via TRAMP synchronously and store 
a copy in REVISION-FOLDER."
   (let ((file-or-directory (file-regular-p path-remote)))
     (if file-or-directory
         (progn
           (message "Downloading file '%s' to '%s'.. (synchronously)" 
path-remote path-local)
           (copy-file path-remote path-local t t t t)
           (ssh-deploy-store-revision path-local revision-folder)
           (message "Download of file '%s' finished. (synchronously)" 
path-local))
       (progn
         (message "Downloading directory '%s' to '%s'.. (synchronously)" 
path-remote path-local)
         (copy-directory path-remote path-local t t t)
         (message "Download of directory '%s' finished. (synchronously)"
   path-local)))))

Where variables
path-remote =
/ftp:[email-masked]:/remotepath/app.php
path-local = /localpath/app.php

In GNU Emacs 27.0.50 (build 1, x86_64-apple-darwin17.4.0, NS 
appkit-1561.20 Version 10.13.3 (Build 17D47))
  of 2018-02-19 built on Christians-MacBook-Air.local
Repository revision: 071a0a571243f9498e0e58e5fe938a7b892a22db
Windowing system distributor 'Apple', version 10.3.1561
System Description:  Mac OS X 10.13.3

Recent messages:
Generating differences between directory ’/localpath/’ and 
’/ftp:[email-masked]:/remotepath/’.. (synchronously)
Differences calculated between directory ’/localpath/’ and 
’/ftp:[email-masked]:/remotepath/’ -> 0 only in A, 1 only in B, 0 
differs. (synchronously)
funcall-interactively: Buffer is read-only: #<buffer ssh-deploy diff<3>> 
[3 times]
Downloading directory ’/ftp:[email-masked]:/remotepath/app.php’ to 
’/localpath/app.php’.. (synchronously)
tramp-file-name-handler: Opening directory: Not a directory, 
/ftp:[email-masked]:/remotepath/app.php
Reverting buffer ‘app.php’.

Configured features:
RSVG IMAGEMAGICK NOTIFY ACL GNUTLS LIBXML2 ZLIB TOOLKIT_SCROLL_BARS NS
THREADS

Important settings:
   value of $LC_CTYPE: UTF-8
   value of $LANG: en_SE.UTF-8
   locale-coding-system: utf-8-unix

Major mode: SSH-Deploy-Diff

Minor modes in effect:
   flycheck-color-mode-line-mode: t
   show-paren-mode: t
   save-place-mode: t
   helm-mode: t
   helm-autoresize-mode: t
   global-flycheck-mode: t
   flycheck-mode: t
   global-hl-todo-mode: t
   global-diff-hl-mode: t
   diff-auto-refine-mode: t
   global-auto-complete-mode: t
   dired-async-mode: t
   editorconfig-mode: t
   yas-global-mode: t
   yas-minor-mode: t
   override-global-mode: t
   ido-everywhere: t
   display-time-mode: t
   winner-mode: t
   electric-pair-mode: t
   desktop-save-mode: t
   global-semantic-mru-bookmark-mode: t
   global-semanticdb-minor-mode: t
   global-semantic-idle-completions-mode: t
   global-semantic-idle-scheduler-mode: t
   global-semantic-idle-local-symbol-highlight-mode: t
   global-semantic-idle-summary-mode: t
   global-semantic-decoration-mode: t
   global-semantic-highlight-func-mode: t
   global-semantic-stickyfunc-mode: t
   semantic-mode: t
   global-ede-mode: t
   delete-selection-mode: t
   global-whitespace-mode: t
   which-function-mode: t
   shell-dirtrack-mode: t
   cl-old-struct-compat-mode: t
   tooltip-mode: t
   global-eldoc-mode: t
   electric-indent-mode: t
   mouse-wheel-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
   column-number-mode: t
   line-number-mode: t
   transient-mark-mode: t

Load-path shadows:
/Users/christianjohansson/.emacs.d/ssh-deploy/ssh-deploy hides 
/Users/christianjohansson/.emacs.d/elpa/ssh-deploy-20180216.736/ssh-deploy
/Users/christianjohansson/.emacs.d/ssh-deploy/ssh-deploy-diff-mode hides 
/Users/christianjohansson/.emacs.d/elpa/ssh-deploy-20180216.736/ssh-deploy-diff-mode
/Users/christianjohansson/.emacs.d/elpa/less-css-mode-20160930.2153/less-css-mode 
hides /Users/christianjohansson/Documents/emacs/lisp/textmodes/less-css-mode

Features:
(shadow sort mail-extr emacsbug sendmail helm-command helm-elisp
helm-eval edebug helm-info ediff-merg ediff-wind ediff-diff ediff-mult
ediff-help ediff-init ediff-util tramp-cache conf-mode ange-ftp
tramp-ftp eww mm-url url-queue shr svg xml browse-url ac-racer racer
semantic/bovine/c semantic/decorate/include hideif semantic/bovine/c-by
semantic/lex-spp semantic/bovine/gcc semantic/dep semantic/bovine
semantic/analyze/refs ede/dired twig-mode semantic/imenu semantic/sb
semantic/db-file data-debug cedet-files semantic/wisent/javascript-jv
semantic/wisent/js-wy semantic/wisent semantic/wisent/wisent
semantic/java semantic/doc tern url-http url-auth url-gw nsm
display-line-numbers rainbow-mode color cursor-sensor js2-mode
autorevert filenotify vc-git flycheck-rust flycheck-color-mode-line
face-remap org-rmail org-mhe org-irc org-info org-gnus nnir gnus-sum
gnus-group gnus-undo gnus-start gnus-cloud nnimap nnmail mail-source tls
gnutls utf7 netrc nnoo gnus-spec gnus-int gnus-range message rmc puny
rfc822 mml mml-sec epa derived epg mm-decode mm-bodies mm-encode
mail-parse rfc2231 mailabbrev gmm-utils mailheader gnus-win gnus
nnheader gnus-util rmail rmail-loaddefs rfc2047 rfc2045 ietf-drums
mail-utils mm-util mail-prsvr org-docview doc-view jka-compr image-mode
org-bibtex bibtex org-bbdb org-w3m editorconfig-core
editorconfig-core-handle editorconfig-fnmatch org-element avl-tree
generator smartparens-org org org-macro org-footnote org-pcomplete
org-list org-faces org-entities noutline outline org-version
ob-emacs-lisp ob ob-tangle org-src ob-ref ob-lob ob-table ob-keys ob-exp
ob-comint ob-core ob-eval org-compat org-macs org-loaddefs cal-menu
calendar cal-loaddefs auto-package-update ts-comint tss log4e json-mode
json-reformat json-snatcher smartparens-javascript js smartparens-html
sgml-mode dom tide tide-lv typescript-mode smarty-mode paren saveplace
restclient helm-mode helm-files helm-buffers helm-tags helm-locate
helm-grep helm-regexp helm-utils helm-help helm-types helm helm-source
helm-multi-match helm-lib flycheck-pos-tip pos-tip flycheck subr-x
hl-todo diff-hl vc-dir ewoc vc vc-dispatcher diff-mode
exec-path-from-shell ssh-deploy ssh-deploy-diff-mode ac-html
ac-html-core ztree ztree-diff ztree-diff-model ztree-dir ztree-view
ztree-util grunt hlinum linum ac-php auto-complete-config auto-complete
ac-php-core popup phpcbf php-auto-yasnippets php-mode cc-langs etags
xref project add-log cc-mode cc-fonts cc-guess cc-menus cc-cmds
cc-styles cc-align cc-engine cc-vars cc-defs web-beautify imenu-list
reveal-in-osx-finder auto-dictionary flyspell ispell dired-async
dired-aux dired dired-loaddefs async editorconfig server ansible-doc ecb
ecb-symboldef ecb-analyse ecb-compatibility ecb-winman-support
ecb-autogen autoload radix-tree lisp-mnt ecb-tod ecb-cycle ecb-eshell
ecb-help ecb-jde ecb-method-browser hideshow ecb-semantic-wrapper
ecb-semantic ecb-file-browser ecb-speedbar ecb-layout ecb-create-layout
ecb-compilation ecb-common-browser ecb-navigate eieio-compat
ecb-mode-line ecb-face tree-buffer ecb-upgrade ecb-cedet-wrapper
semantic/db-find semantic/db-ref semantic/analyze semantic/sort
semantic/scope semantic/analyze/fcn ecb-util flymake-rust flymake-easy
flymake-proc flymake warnings rust-playground time-stamp cargo
cargo-process smartparens-rust rust-mode compile google-translate
google-translate-default-ui google-translate-core-ui
google-translate-core google-translate-tk url url-proxy url-privacy
url-expand url-methods url-history url-cookie url-domsuf url-util
mailcap lorem-ipsum company smartparens-config smartparens-text
smartparens thingatpt paredit ansible f yasnippet yaxception ht dash
know-your-http-well http-status-codes http-relations http-methods
http-headers s hydra lv cl-extra help-mode use-package up-delight
up-diminish up-ensure up-core pcase cl bind-key easy-mmode ido time
winner edmacro kmacro elec-pair desktop frameset semantic/mru-bookmark
semantic/db-mode semantic/db semantic/idle semantic/format semantic/ctxt
semantic/decorate/mode semantic/tag-ls semantic/find semantic/decorate
pulse semantic/util-modes semantic/util semantic semantic/tag
semantic/lex semantic/fw mode-local find-func ede/speedbar ede/files ede
ede/detect ede/base ede/auto ede/source eieio-base eieio-speedbar
speedbar sb-image ezimage dframe eieio-custom wid-edit cedet delsel
disp-table whitespace which-func imenu windmove tramp trampver
tramp-compat tramp-loaddefs shell pcomplete comint ansi-color ring
parse-time format-spec advice base16-circus-theme base16-theme time-date
finder-inf rx info package easymenu epg-config url-handlers url-parse
auth-source cl-seq eieio eieio-core cl-macs eieio-loaddefs
password-cache json map url-vars seq byte-opt gv bytecomp byte-compile
cconv cl-loaddefs cl-lib tooltip eldoc electric uniquify ediff-hook
vc-hooks lisp-float-type mwheel term/ns-win ns-win ucs-normalize
mule-util term/common-win 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 kqueue cocoa ns multi-tty make-network-process emacs)

Memory information:
((conses 16 934525 73980)
  (symbols 48 70113 11)
  (miscs 40 1160 1857)
  (strings 32 197950 10494)
  (string-bytes 1 6490921)
  (vectors 16 112100)
  (vector-slots 8 2419803 161810)
  (floats 8 597 408)
  (intervals 56 44366 1236)
  (buffers 992 49))

On 2018-02-19 18:50, Glenn Morris wrote:
> Christian Johansson wrote:
>
>> In GNU Emacs 26.0.60 (build 13, x86_64-apple-darwin17.3.0, NS appkit-1561.20 Version 10.13.2 (Build 17C205))
>>   of 2018-02-19 built on Christians-iMac
>> Repository revision: 020734c0e1a7ed8534df29992ffc4228d3663d89
> 26.0.60 is a rather old development version (before last October), and
> furthermore the git revision doesn't seem to correspond to anything in
> the Emacs repository.
>
>
>