[Top][All Lists]

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

Re: Tramp and recursive file operations

From: Stefan Monnier
Subject: Re: Tramp and recursive file operations
Date: Wed, 30 Sep 2009 15:56:41 -0400
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/23.1.50 (gnu/linux)

>>> OK. Looking outside dired, there is already delete-directory, good for
>>> empty directories. Maybe we add an optional parameter RECURSIVE?
>> Sounds OK, except for the fact that delete-directory is implemented in
>> C, so you'd have to code the recursion in C as well.
> I've seen that. I'll do my best ...

Maybe the best option is to rename delete-directory to
delete-directory-internal and then implement a new delete-directory in
files.el. using it.

>>> A copy-directory function does not exist. What about allowing the first
>>> parameter of copy-file to be a directory name? This would imply to copy
>>> recursively.
>> If we were starting over from scratch, that would be fine, but I'm
>> afraid that some code somewhere relies on the fact that copy-file only
>> copies files and not directories.  And of course, copy-file is also
>> implemented in C, so you'd have to code the recursion in C as well.
> So we go with copy-directory? Just DIRNAME and NEWNAME as parameters, or
> the other ones from copy-file as well?

Whenever I copy a directory, I always use "cp -a", so I'd be tempted to
say that additional args aren't needed, but that the behavior should
preserve as much as we can (symlinks, gid, mtime, you name it).

> I guess that we dont't need OK-IF-ALREADY-EXISTS, because if directory
> NEWNAME already exists, we create a subdirectory.

I'd tend to disagree here: this kind of behavior is very handy
interactively, but not when called from Lisp code, where you might
prefer an error (at which point you can then choose to call
copy-directory again to the subdirectory, or you may prefer to overlay
the copy on top of the existing tree, tho we don't have any code that
does it for us yet).


reply via email to

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