Review Request 114812: KVersionControlPlugin2 based Dropbox version control plugin for Dolphin
Emmanuel Pescosta
emmanuelpescosta099 at gmail.com
Tue Feb 4 15:11:25 GMT 2014
> On Feb. 3, 2014, 11:31 a.m., Phil Schaf wrote:
> > a question: does this fix this? https://bugs.kde.org/show_bug.cgi?id=264717
> >
> > i.e. work with symlinks to the dropbox directory?
>
> Emmanuel Pescosta wrote:
> > does this fix this?
> No, this problem is (nearly) unsolvable within this plugin or within Dolphin - it can be fixed with some really (!!!) ugly hacks, but this will drastically slow down this plugin.
>
> This needs adjustments in the Dropbox client itself.
>
> It would be much better if Dropbox does smth. like git or svn for example, so that you can put every folder under version control + symlinks will also work ;)
>
> Phil Schaf wrote:
> > No, this problem is (nearly) unsolvable within this plugin or within Dolphin
>
> actually, you just have to save the real dropbox path once (say /mnt/somedisk/Dropbox), and then when querying some path, check if there’s a symlink in the path’s parents to the real dropbox path or one of its parents. (e.g. if you’re in ~/Dropbox/foobar/, you check all path components from ~/Dropbox/foobar/ up, and find that ~/Dropbox is a symlink to /mnt/somedisk/Dropbox). then you append the part of the symlink to the real dropbox path (e.g. pathjoin(/mnt/Dropbox, foobar/)) and you’re done.
>
> that just requires to check each path component above the directory you’re checking the status of once with .isSymLink(). neglegible. (of course you only have to check directories, not files)
>
> seriously, the plugin is unusable without that functionality once you have /home/ on a SSD and dropbox somewhere else because don’t want it creating heaps of IO, and the functionality isn’t IO intensive or computationally expensive at all.
This is the ugly hack ;)
The idea is great in theory, but it'll introduce some other real-world problems.
> you just have to save the real dropbox path once (say /mnt/somedisk/Dropbox)
Do you really think that this is a great solution? - I don't think so, because it'll be really error-prone.
It would be great if Dropbox has a command to request the Dropbox versioned folder path.
> that just requires to check each path component above the directory you’re checking the status of once with .isSymLink().
This is ok for FileViewDropboxPlugin::itemVersion (runs in a thread), but I think this is a no-go for FileViewDropboxPlugin::actions (blocks the GUI thread).
> seriously, the plugin is unusable without that functionality once you have /home/ on a SSD and dropbox somewhere else
Yes I agree with you, but this has to be fixed on the Dropbox side to provide a clean solution for this problem.
@Frank:
What do you think?
Should we add a workaround for this problem in Dolphin?
- Emmanuel
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://git.reviewboard.kde.org/r/114812/#review48802
-----------------------------------------------------------
On Jan. 30, 2014, 1:11 p.m., Emmanuel Pescosta wrote:
>
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://git.reviewboard.kde.org/r/114812/
> -----------------------------------------------------------
>
> (Updated Jan. 30, 2014, 1:11 p.m.)
>
>
> Review request for Dolphin.
>
>
> Bugs: 298199
> http://bugs.kde.org/show_bug.cgi?id=298199
>
>
> Repository: dolphin-plugins
>
>
> Description
> -------
>
> Added a Dropbox version control plugin for Dolphin.
>
> This Dropbox plugin is based on the work of:
> Sergei Stolyarovs - https://bitbucket.org/cancel/dolphin-dropbox-plugin
> Thomas Richards - http://trichard-kde.blogspot.co.at/2010/12/introducing-dropbox-integration-for.html
>
> What I have done:
> - Ported the old source code to the newer KVersionControlPlugin2 interface
> - Use the Dropbox client to form the context menu more dynamically
> (If the Dropbox guys add a new feature to their client, Dolphin can make use of it automatically)
> - Fixed a crash (Dolphin-4.8.2 segfaults when a file with special characters is present)
> - Replaced the item version changed timer with a file system watcher -> No useless updates every 10 seconds and immediate update on real changes
> - A lot of code/coding style related changes
>
> I think that this plugin is small enough to include it into the official Dolphin-plugins collection. ;)
>
>
> Diffs
> -----
>
> dropbox/fileviewdropboxplugin.desktop PRE-CREATION
> dropbox/fileviewdropboxplugin.h PRE-CREATION
> dropbox/fileviewdropboxplugin.cpp PRE-CREATION
> dropbox/CMakeLists.txt PRE-CREATION
> CMakeLists.txt 4d87420
>
> Diff: https://git.reviewboard.kde.org/r/114812/diff/
>
>
> Testing
> -------
>
> Works fine for me.
>
>
> Thanks,
>
> Emmanuel Pescosta
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mail.kde.org/mailman/private/kfm-devel/attachments/20140204/8e06f8dd/attachment.htm>
More information about the kfm-devel
mailing list