Well, again, I am asking about why the capability isn't there but I was trying to better understand
--copy-dest since I wasn't 100% sure I understood it from the documentation. The latter (which basically uses the data already on the remote rather than sync) is the one that failed because it needs server-side copies
No config file for this one
- os/type: darwin
- os/arch: amd64
- go/version: go1.16.2
- go/linking: dynamic
- go/tags: cmount
$ rclone sync -vv A/ B/new --copy-dest=B/old
2021/04/04 20:07:47 DEBUG : Using config file from "/Users/<USER>/.config/rclone/rclone.conf"
2021/04/04 20:07:47 DEBUG : rclone: Version "v1.55.0" starting with parameters ["rclone" "sync" "-vv" "A/" "B/new" "--copy-dest=B/old"]
2021/04/04 20:07:47 DEBUG : Creating backend with remote "A/"
2021/04/04 20:07:47 DEBUG : fs cache: renaming cache item "A/" to be canonical "/Users/<USER>/tmp/A"
2021/04/04 20:07:47 DEBUG : Creating backend with remote "B/new"
2021/04/04 20:07:47 DEBUG : fs cache: renaming cache item "B/new" to be canonical "/Users/<USER>/tmp/B/new"
2021/04/04 20:07:47 DEBUG : Creating backend with remote "B/old"
2021/04/04 20:07:47 DEBUG : fs cache: renaming cache item "B/old" to be canonical "/Users/<USER>/tmp/B/old"
2021/04/04 20:07:47 ERROR : Fatal error received - not attempting retries
2021/04/04 20:07:47 INFO :
Transferred: 0 / 0 Bytes, -, 0 Bytes/s, ETA -
Errors: 1 (fatal error encountered)
Elapsed time: 0.0s
2021/04/04 20:07:47 DEBUG : 4 go routines active
2021/04/04 20:07:47 Failed to sync: can't use --copy-dest on a remote which doesn't support server side copy
Again, I understand why the sync failed. I just don't understand why server-side copy doesn't exist for local.
First of all, while this example was local-to-local, it is very common for one "remote" to be local. What if I was pulling a cloud repo and I wanted to use
--copy-dest to save bandwidth? That is equally valid as any other reason to use
--copy-dest. The fact that this was local to local was for testing.
However, while there are other tools as well, rclone is pretty good for moving files around local-to-local if you (a) want the integrity checks that come with it and (b) want a threaded speedup. Many tools do not thread a move. This is especially good for moving files on a slow spinning rust drive where there isn't anything already (that would benefit from rsync's diff transfers). But yes, it is not the primary use case for sure.
I actually think this is pretty straigh-forward. I expect a copy. Just like I would get on any other remote that supports copies. Any kind of link is (a) not really in rclone's wheelhouse since most cloud systems don't have that concept and (b) would absolutly break the "principle of least surprise".