-
Notifications
You must be signed in to change notification settings - Fork 0
Overwrite Modes
Every task has an overwrite mode (set via the radio buttons above the TRANSFER button):
| Mode | Behavior |
|---|---|
| Replace (default) | Always sends the file, overwriting whatever's at the destination. No existence/modified-time check is done — this is the fastest mode. |
| Replace if newer | Sends the file only if it doesn't exist yet at the destination, or the source is newer than what's there. Skips the file otherwise. |
| Don't replace | Sends the file only if it doesn't already exist at the destination. If it exists, it's always skipped (regardless of which one is newer). |
Skipped files don't show up in the transfer queue at all — they're decided before the queue is built, so the queue only ever shows files that are actually being sent.
-
Local destinations: a plain filesystem check (
File.Exists/ last-write-time comparison) — effectively instant, no network involved. -
FTP/FTPS and SFTP destinations: the app needs to ask the server. As of v3.3.2, it does
this efficiently:
- For each destination that needs checking (i.e. mode is Replace if newer or Don't replace), the app opens one connection and lists every distinct remote subfolder that the task's files will land in (usually just one folder, unless Keep folder name or several destination subfolders are in play).
- That listing (file names + modified times) is cached in memory.
- Every file's exists/modified-time question is then answered from that in-memory cache — with zero extra network round-trips per file.
- Only once all of that is settled does the actual upload phase begin.
Before v3.3.2, each file's check opened its own fresh connection (and on FTP servers where the
MDTM command doesn't actually work despite being advertised — see
FTP, FTPS and SFTP — a broken time-check could cost two connections per
file). For a task with many files in Replace if newer mode, that added up to a very visible
delay before anything started uploading, compared to other FTP clients that don't reconnect per
file. If you're on an older build and a transfer feels like it's "scanning everything first"
before sending, updating to v3.3.2 or later fixes exactly that.
- Use Replace for anything where you always want the latest version pushed, no questions asked (e.g. a build output you rebuild every time) — it's also the fastest mode since it skips the existence check entirely.
- Use Replace if newer for one-way sync scenarios where you don't want to re-send files that haven't changed.
- Use Don't replace to seed a destination once without ever touching files that are already there, even if your local copy changed since.
1-Click Transfer — MIT licensed · Website · Support on Ko-fi