Post a reply

Options
Add an Attachment

If you do not want to add an Attachment to your Post, please leave the Fields blank.

(maximum 10 MB; please compress large files; only common media, archive, text and programming file formats are allowed)

Options

Topic review

david.rodrigues

Hi there, thanks for the quick reply!

First off, sorry for being a bit vague. I probably left out some important context that would make my goal clearer. Let me try to explain it a bit better.

I usually use WinSCP to sync a local folder to a remote FTP folder. In some cases, the FTP server has over 10,000 files. Whenever I run a sync, WinSCP needs to check all 10,000 files again, even if my goal is just to upload a single new file, for instance.

The idea is to have a persistent sync option where, during a specific session like when the app is open, WinSCP would do a full read of the remote server just once. From that point on, it would blindly trust that no changes happened on the remote side, or at most, it would only verify the specific files I am trying to sync.

Here is a more concrete example:

Imagine I have two folders, both local and remote:
./src (10,000+ files)
./tests (10 files)

Then I make a local modification by editing the file:
./tests/Example.test.ts

During the first sync after opening the app with this new option enabled, the remote server gets fully scanned, including all 10,000+ files. WinSCP would store the current state of both local and remote files purely in memory to avoid creating tracking files. The verification happens normally, just like it does today.

Then, I modify that example file again.

On the next sync, WinSCP should assume the remote file states have not changed. I can guarantee this because I am the only one with access to the FTP server, for instance. It would then only check if the state of ./tests/Example.test.ts has changed to ensure consistency, since it was the only file modified locally.

So instead of doing a one by one check of all local versus remote files, it would only check the local versus local difference before and after. If there is a change, it only verifies that specific changed file against the remote server.

This is a feature that tools like GoodSync already have, and it is honestly the only thing I miss in WinSCP. Since I have so many remote files, waiting several seconds or even minutes per sync just to update a single file really adds up. I think this would be a fantastic addition to WinSCP right now.

Thank you!
martin

Re: Persistent remote directory cache for synchronization when remote side is known to be unchanged

So you modify the local folder and you want WinSCP to restore the local folder to the previous state (the same as the remote folder). Is that correct?
david.rodrigues

Persistent remote directory cache for synchronization when remote side is known to be unchanged

Hello,

I would like to request an optional feature to improve synchronization performance for cases where the remote side is effectively immutable.

Use case:

I synchronize a local folder against a remote FTP directory containing around 10,000+ files. In my workflow, the remote files never change. Only the local side changes. However, each synchronization run still re-reads and re-analyzes the full remote directory listing, which adds significant overhead.

Requested feature:

An option to persist and reuse the last known remote directory state between sessions, so WinSCP does not need to fully rescan the remote side on every sync.

Possible forms this could take:

  • Persistent remote directory cache across sessions
  • "Assume remote side unchanged" option for synchronization
  • Manual "trust previous remote scan" mode
  • Revalidate remote state only when explicitly requested by the user

Expected benefit:

This would greatly speed up repeated synchronization jobs for large remote directories where the server content is known to be stable.

Important note:

I understand this would need to be optional, because it is not safe for general use. But for controlled workflows, it could save a lot of time and unnecessary directory listing operations.

Thank you.