rclone/cmd
nielash fd95511091 bisync: generate listings concurrently with march -- fixes #7332
Before this change, bisync needed to build a full listing for Path1, then a
full listing for Path2, then compare them -- and each of those tasks needed to
finish before the next one could start. In addition to being slow and
inefficient, it also caused real problems if a file changed between the time
bisync checked it on Path1 and the time it checked the corresponding file on
Path2.

This change solves these problems by listing both paths concurrently, using
the same March infrastructure that check and sync use to traverse two
directories in lock-step, optimized by Go's robust concurrency support.
Listings should now be much faster, and any given path is now checked
nearly-instantaneously on both sides, minimizing room for error.

Further discussion:
https://forum.rclone.org/t/bisync-bugs-and-feature-requests/37636#:~:text=4.%20Listings%20should%20alternate%20between%20paths%20to%20minimize%20errors
2024-01-20 14:50:08 -05:00
..
about docs: group the global flags and make them appear on command and flags pages 2023-08-02 12:53:09 +01:00
all nfsmount: New mount command to provide mount mechanism on macOS without FUSE 2023-10-06 14:08:20 +01:00
authorize docs: group the global flags and make them appear on command and flags pages 2023-08-02 12:53:09 +01:00
backend docs: group the global flags and make them appear on command and flags pages 2023-08-02 12:53:09 +01:00
bisync bisync: generate listings concurrently with march -- fixes #7332 2024-01-20 14:50:08 -05:00
cachestats docs: add minimum versions to the command pages 2022-12-03 18:58:55 +01:00
cat docs: group the global flags and make them appear on command and flags pages 2023-08-02 12:53:09 +01:00
check docs: group the global flags and make them appear on command and flags pages 2023-08-02 12:53:09 +01:00
checksum operations: add operations/check to the rc API 2023-10-04 17:52:57 +01:00
cleanup docs: group the global flags and make them appear on command and flags pages 2023-08-02 12:53:09 +01:00
cmount mount: disable mount for freebsd 2023-10-29 15:46:41 +00:00
config docs: group the global flags and make them appear on command and flags pages 2023-08-02 12:53:09 +01:00
copy docs: group the global flags and make them appear on command and flags pages 2023-08-02 12:53:09 +01:00
copyto docs: group the global flags and make them appear on command and flags pages 2023-08-02 12:53:09 +01:00
copyurl docs: group the global flags and make them appear on command and flags pages 2023-08-02 12:53:09 +01:00
cryptcheck docs: group the global flags and make them appear on command and flags pages 2023-08-02 12:53:09 +01:00
cryptdecode docs: group the global flags and make them appear on command and flags pages 2023-08-02 12:53:09 +01:00
dedupe docs: group the global flags and make them appear on command and flags pages 2023-08-02 12:53:09 +01:00
delete docs: group the global flags and make them appear on command and flags pages 2023-08-02 12:53:09 +01:00
deletefile docs: group the global flags and make them appear on command and flags pages 2023-08-02 12:53:09 +01:00
genautocomplete Add rclone completion powershell - basic implementation only 2023-08-02 12:53:09 +01:00
gendocs docs: group the global flags and make them appear on command and flags pages 2023-08-02 12:53:09 +01:00
hashsum docs: show hashsum arguments as optional in usage string 2023-11-03 23:31:00 +01:00
link docs: group the global flags and make them appear on command and flags pages 2023-08-02 12:53:09 +01:00
listremotes backend: add description field for all backends 2024-01-03 10:57:59 +00:00
ls docs: group the global flags and make them appear on command and flags pages 2023-08-02 12:53:09 +01:00
lsd docs: group the global flags and make them appear on command and flags pages 2023-08-02 12:53:09 +01:00
lsf lsf: add --time-format flag 2024-01-20 14:50:08 -05:00
lsjson lsjson: make sure we set the global metadata flag too 2023-09-21 16:15:38 +01:00
lsl docs: group the global flags and make them appear on command and flags pages 2023-08-02 12:53:09 +01:00
md5sum docs: group the global flags and make them appear on command and flags pages 2023-08-02 12:53:09 +01:00
mkdir docs: group the global flags and make them appear on command and flags pages 2023-08-02 12:53:09 +01:00
mount mount: disable mount for freebsd 2023-10-29 15:46:41 +00:00
mount2 nfsmount: New mount command to provide mount mechanism on macOS without FUSE 2023-10-06 14:08:20 +01:00
mountlib systemd: Fix detection and switch to the coreos package everywhere 2023-12-02 14:17:15 +00:00
move docs: group the global flags and make them appear on command and flags pages 2023-08-02 12:53:09 +01:00
moveto docs: group the global flags and make them appear on command and flags pages 2023-08-02 12:53:09 +01:00
ncdu ncdu: fix crash when re-entering changed directory after rescan 2023-10-24 14:26:57 +01:00
nfsmount nfsmount: compile for all unix oses, add --sudo and fix error/option handling 2023-12-05 10:44:53 +00:00
obscure docs: add minimum versions to the command pages 2022-12-03 18:58:55 +01:00
purge docs: group the global flags and make them appear on command and flags pages 2023-08-02 12:53:09 +01:00
rc rc: always report an error as JSON 2023-09-20 21:57:40 +01:00
rcat docs: group the global flags and make them appear on command and flags pages 2023-08-02 12:53:09 +01:00
rcd cmd: refactor and use sysdnotify in more commands 2023-09-04 16:32:04 +01:00
reveal docs: add minimum versions to the command pages 2022-12-03 18:58:55 +01:00
rmdir docs: group the global flags and make them appear on command and flags pages 2023-08-02 12:53:09 +01:00
rmdirs rmdirs: remove directories concurrently controlled by --checkers 2023-08-18 12:05:15 +01:00
selfupdate selfupdate: fix crash in tests if beta not found 2023-12-10 22:29:57 +00:00
serve serve dlna: now only supported on go1.21 or later 2024-01-15 16:22:07 +00:00
settier docs: add minimum versions to the command pages 2022-12-03 18:58:55 +01:00
sha1sum docs: group the global flags and make them appear on command and flags pages 2023-08-02 12:53:09 +01:00
size size: dont show duplicate object count when less than 1k 2023-11-14 16:44:12 +00:00
sync sync: report list of synced paths to file -- see #7282 2024-01-20 14:50:08 -05:00
test amazonclouddrive: remove Amazon Drive backend code and docs #7539 2024-01-04 17:05:54 +00:00
touch docs: group the global flags and make them appear on command and flags pages 2023-08-02 12:53:09 +01:00
tree docs: group the global flags and make them appear on command and flags pages 2023-08-02 12:53:09 +01:00
version docs: group the global flags and make them appear on command and flags pages 2023-08-02 12:53:09 +01:00
cmd.go build: remove random.Seed since random generator is seeded automatically in go1.20 2024-01-15 16:22:07 +00:00
help.go docs: fix backend doc generator to not output duplicate config names 2023-09-23 12:54:08 +01:00
progress.go cmd: Make --progress output logs in the same format as without 2023-10-11 11:36:31 +01:00
selfupdate_disabled.go build: apply gofmt from golang 1.17 2021-09-09 20:43:59 +03:00
selfupdate_enabled.go build: apply gofmt from golang 1.17 2021-09-09 20:43:59 +03:00
siginfo_bsd.go cmd: Enable SIGINFO (Ctrl-T) handler on FreeBSD, NetBSD, OpenBSD and Dragonfly BSD 2022-11-07 11:45:04 +00:00
siginfo_others.go cmd: Enable SIGINFO (Ctrl-T) handler on FreeBSD, NetBSD, OpenBSD and Dragonfly BSD 2022-11-07 11:45:04 +00:00