Michael Petrusha <[EMAIL PROTECTED]> wrote: > That would mean transferring each file and calculating it's size, right?
No. I do not think you understand my suggestion. I am suggesting that lftp, as it traverses the local directory tree, saves a hash value for each local file in a file (it could be a single file in the root of the local tree, or one file per directory of the local tree). Because I am using the --ignore-time option, lftp ignores the file timestamps and uses only the file sizes to decide whether to upload a local file. This works fine, except when a local file is changed but the size does not change. Currently, lftp ignores this changed file because it has the same size as the remote file. I am suggesting that, in this situation, lftp would calculate a hash value for the local file, then compare this hash value to the hash value saved in the hash values file. If the hash values are different, then lftp would know that the local file has been modified since the last time it was run and would upload the changed local file instead of ignoring it. The advantage of this approach is that lftp does not have to access the remote files when determining which local files need to be uploaded. However, it does have some problems. For example, what happens if lftp is used to reverse mirror a local tree, then some other process is used to do the same before lftp is run again. The other process may have already uploaded the changed local files. In this case, lftp would not know because the other process did not update lftp's hash values file(s). Consequently, lftp may end up unnecessarily uploading local files that are already in sync with the remote tree. Another option is for lftp to compare the local and remote files when the --ignore-time option is enabled and both files have the same size. This should work OK for my application of publishing changed Web pages since the files that would need to be compared are small, but it may be impractical with larger files. I think this is a problem that needs to be solved with Forrest rather than lftp, so that lftp can use local file timestamps and avoid having to deal with the problem of local and remote files being the same size. Dag: The problem with using rsync is that I have only FTP access to the remote host. I can use curlftpfs to mount the tree on the FTP server as a local mount point. I tried using rsync with this curlftpfs file system, but did not have satisfactory results. I can't remember what the problem was, maybe timestamps or slowness. rsync might be a practical solution if I had access to the remote host via SSH, but I do not. :( Brolin
