Skip to content

Local sync does not resume partial transfer #570

@Lobstros

Description

@Lobstros

Hey,

I seem to have tripped over some odd opinions that Unison has about behaviour of remote vs local syncing!

To elaborate, I want to sync files to and from a local FUSE mount; the code behind this mount then transparently encrypts them and sends them to a cloud store. However Unison appears to unexpectedly have separate code paths for remote and ostensibly "local" syncs:

  • Resuming partial transfers works flawlessly remotely, but mostly does not work locally:
    • When the base directory does not yet exist at the target, it restarts the entire directory.
    • When the base directory already exists at the target, it recognises completed files and folders one level down, but restarts any of these that were partially transferred.
  • Hitting ctrl-c (SIGINT, I think?) on the terminal cancels the whole process when remote syncing, but when local syncing just stops the current file and moves on to the next, leaving partial files.

I think I see in the tracker others stumbling into related differences (e.g. #472), though not these two specifically.

If fixing them would be very difficult, I am satisfied it's possible to work around by making Unison SSH to my local machine (thus forcing "remote" behaviour). However the "local" path appears to contradict what's in the manual (which is maybe written from a "remote-only" perspective?), so perhaps it could be handy to have a prominent warning somewhere about it.

Metadata

Metadata

Assignees

No one assigned

    Labels

    defectunison fails to meet its specification (but doesn't crash; see also "crash")effort-mediumissue is likely resolvable with <= 20h of effortfeedbackInformation has been requested; may be closed in 30 days if not provided.impact-mediummedium importance

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions