[Unison-hackers] Proposed mode for unison: "Salvage"
Ryan Newton
newton at mit.edu
Tue Jan 5 12:08:59 EST 2010
> This would take some hacking - in particular, I'm not sure I see how
> the user interface should work (especially the graphical one).
Perhaps there was something I've missed... but I was thinking that no
significant UI change is needed. Rather, the effect is mainly on the
scan phase (apologies if I've forgotten the correct unison terminology
-- update detection phase?).
The effect of (1) and (2) on the user-visible interface should be only
to apply a filter over the usual "<-" entries that are presented.
That is, the changes presented would be a subset of the changes
presented if running without -salvage (namely, files duplicated in
other locations are suppressed, and changes from new->old are
suppressed).
I was hoping this could be implemented by leaving the whole "backend"
the same and literally filtering the changset.
If anyone else feels they need this functionality let me know. I
could hack on it
but would love to partner with someone who knows the code better.
-Ryan
On Tue, Jan 5, 2010 at 11:49 AM, Benjamin Pierce <bcpierce at cis.upenn.edu> wrote:
> This would take some hacking - in particular, I'm not sure I see how
> the user interface should work (especially the graphical one). But I
> agree that unison would be a decent base for building such a tool.
>
> - Benjamin
>
> On Jan 5, 2010, at 9:54 AM, Ryan Newton <newton at mit.edu> wrote:
>
>> The biggest complaint I hear from friends and family about unison is
>> the ease of duplicating files. This happens most often when running
>> unison without saved archives (e.g. because things get moved around,
>> mixed up, moved to new machines, etc).
>>
>> A typical scenario that is difficult to handle with unison is that you
>> come across an old copy of folder X that *might* contain something
>> that you forgot to extract or move into your current, primary copy.
>> But of course you don't know what's there and checking is manually
>> hard. Further, performing a simple unison is the WRONG answer,
>> because the organization may have changed substantially, making it
>> very hard to tell if supposedly new files in the old copy are really
>> new or have just been moved (duplication danger).
>>
>> In this case it would be very useful to run unison in mode where:
>>
>> (1) only copies from old->new are considered. The goal is not two
>> identical archives, but to retrieve things from the old copy.
>> (2) only files which do not exist ANYWHERE in the new archive are
>> considered, the new archive is just a flat set of files for the
>> purpose of this check.
>>
>> Secondary questions include where to put the new files (presumably the
>> same path as in the old archive) and what to do with
>> conflicts/collisions resulting from, for example, modified files
>> (presumably they're treated in the normal unison way).
>>
>> The interface could perhaps be a "-salvage X" flag, where X is one of
>> the roots (just like -force).
>>
>> Best,
>> -Ryan
>>
>> P.S. I actually wrote a separate tool at some point (in ocaml) that
>> could accomplish the above which I could provide to the curious. Its
>> goal was to replace all the files in a folder X, that exist in a
>> folder Y, with symlinks into folder Y. One could run this on the old
>> archive and then use "find" to see all the files that were not turned
>> to symlinks. However, I think leveraging unison for this purpose
>> would be much more desirable.
>> _______________________________________________
>> Unison-hackers mailing list
>> Unison-hackers at lists.seas.upenn.edu
>> http://lists.seas.upenn.edu/mailman/listinfo/unison-hackers
> _______________________________________________
> Unison-hackers mailing list
> Unison-hackers at lists.seas.upenn.edu
> http://lists.seas.upenn.edu/mailman/listinfo/unison-hackers
>
More information about the Unison-hackers
mailing list