[Unison-hackers] Extending the "rename" detection
Nathan Thern
nthern at gmail.com
Wed Dec 5 15:44:10 EST 2012
Hello -
Longtime unison user. I have known for some time that renaming a file on
one replica will result in a simple "copy-and-delete" operation at the
target mirror replica when the two replicas are sync'd.
Recently, I encountered a situation where several directories which
contained large files were renamed on a replica. It happens to be a kind
of "dropbox" folder for my family to put media content for me to
download while I am traveling. I unison sync the folder rather than
rsync it because I delete the content on my end as I consume it. My wife
recently "helpfully" re-organized some of the directories in that folder
and I found my unison process re-downloading big content that I actually
already had because the directories had been "renamed". As unison saw
it, some directories had been deleted and others added.
So, I thought, "This could be a good addition to unison. Add a
capability to compare newly deleted files to newly added files and
detect that they are actually renames or moves across directories." I
figured it would probably best be added as a new command-line option.
I downloaded the source and started looking at it. I do not know ocaml,
but was immediately impressed with the expressive power I could see.
Unfortunately, I soon got lost in the code.
Any hints on where to get started in the source to implement this? I'm
currently working on learning ocaml, but I also want to get rolling on
this project as soon as I can.
regards,
NT
More information about the Unison-hackers
mailing list