Subject: Re: Subject: Re: On Plasmate's recent project list

Yuen Hoe Lim yuenhoe86 at gmail.com
Tue Jan 26 14:27:12 CET 2010


>
> What about giving the user a choice when a duplicate is found? As a user, I
> wouldn't like the software to create two copies of the same project (maybe
> different versions of it) and then me having to delete one of them. Lets
> just give a "Overwrite, Rename, Skip" option.
> What do you guys think ?
>

My vote is against, for the following reasons:

   - True duplicates (the kind we don't want to have) will only occur in one
   of two scenarios.
   a) I export all projects, then import all projects on the same PlasMate
   instance, which is a senseless thing to do. Or I import twice onto the same
   instance, again senseless.
   b) I export my projects and then go to another computer where someone
   else has imported one of my projects (from online, say). This is gonna be
   rare, and isn't really a true duplicate. You may actually want to keep both.
   The vast majority of conflicts are likely going to be the kind where you
   unintentionally name two different things with the same name.

   - Even in the rare case that true duplicates occur, the remedy is
   trivial. One button-click away.

   - Prompting with "Overwrite, Rename, Skip" is bad because, as I have
   repeatedly reiterated, folder names are invisible to the user. ie, when
   there is a folder name conflict - **the user cannot see it**! If the user
   doesn't see a conflict but PlasMate prompts and insists that there is a
   conflict, we are definitely going to confuse the user. Furthermore if he
   decides to rename but doesn't see any visible effect from the renaming
   (because folder names are not visible!), he is going to become even more
   confused. And worse - he will probably report it as a bug.


If you guys insist I guess we could use a hash check to ignore "pure" true
duplicates, so the algorithm reads something like this:

for each folder f in import archive {
    for each folder g in the target location {
       if hash(f) == hash(g) { // a "pure" duplicate
          delete f from archive;
          goto end;
       }
    }
    while f also exists in the target location {
       generate a new name for f and rename f in the archive;
    }
    end:
}
extract archive to target location;

But particularly for the third reason above, I really don't like the idea of
prompting.

----
Jason "moofang" Lim Yuen Hoe
http://yuenhoe.co.cc/
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mail.kde.org/pipermail/plasma-devel/attachments/20100126/f00165cd/attachment-0001.htm 


More information about the Plasma-devel mailing list