Subject: 26.1; Moving directory on remote host via tramp scp always performs copy
From: Stephen Nutt <[email-masked]>
To: [email-masked]
Date: Fri, 22 Jun 2018 14:33:50 -0500
List-Id: <debbugs-submit.debbugs.gnu.org>

In Emacs 26, when moving a directory within a remote host over Tramp
using the scp method (e.g. with dired-do-rename or mv in eshell), a copy
and delete are always performed, even when a much simpler mv would
suffice. The behavior is the same when running emacs with -q or with
emacs built from master. This is a regression from the behavior in 25.3.

I think I've isolated the change to the commit b500e0 where the
following was added at the beginning of `tramp-do-copy-or-rename-file'
in tramp-sh.el to explicitly call `copy-directory'.

  (if (file-directory-p filename)
      (progn
	(copy-directory filename newname keep-date t)
	(when (eq op 'rename) (delete-directory filename 'recursive)))

I think the conditional should also check if op is a rename and if the
remote of filename and newname are the same, in which case the normal
behavior of the function should proceed which should result in a mv
command.