[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kfm-devel
Subject:    Re: Review Request 114812: KVersionControlPlugin2 based Dropbox version control plugin for Dolphin
From:       "Phil Schaf" <flying-sheep () web ! de>
Date:       2014-02-03 14:33:48
Message-ID: 20140203143348.2548.8674 () probe ! kde ! org
[Download RAW message or body]

> On Feb. 3, 2014, 10: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 ;)

> 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.


- Phil


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://git.reviewboard.kde.org/r/114812/#review48802
-----------------------------------------------------------


On Jan. 30, 2014, 12: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, 12: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
> 
> 


[Attachment #3 (text/html)]

<html>
 <body>
  <div style="font-family: Verdana, Arial, Helvetica, Sans-Serif;">
   <table bgcolor="#f9f3c9" width="100%" cellpadding="8" style="border: 1px #c9c399 solid;">
    <tr>
     <td>
      This is an automatically generated e-mail. To reply, visit:
      <a href="https://git.reviewboard.kde.org/r/114812/">https://git.reviewboard.kde.org/r/114812/</a>
     </td>
    </tr>
   </table>
   <br />





<blockquote style="margin-left: 1em; border-left: 2px solid #d0d0d0; padding-left: 10px;">
 <p style="margin-top: 0;">On February 3rd, 2014, 10:31 a.m. UTC, <b>Phil Schaf</b> wrote:</p>
 <blockquote style="margin-left: 1em; border-left: 2px solid #d0d0d0; padding-left: 10px;">
  <pre style="white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: \
-o-pre-wrap; word-wrap: break-word;">a question: does this fix this? \
https://bugs.kde.org/show_bug.cgi?id=264717

i.e. work with symlinks to the dropbox directory?</pre>
 </blockquote>




 <p>On February 3rd, 2014, 12:53 p.m. UTC, <b>Emmanuel Pescosta</b> wrote:</p>
 <blockquote style="margin-left: 1em; border-left: 2px solid #d0d0d0; padding-left: 10px;">
  <pre style="white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: \
-o-pre-wrap; word-wrap: break-word;">&gt; 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 ;)</pre>  </blockquote>








</blockquote>

<pre style="white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: \
-o-pre-wrap; word-wrap: break-word;">&gt; 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.</pre> <br />










<p>- Phil</p>


<br />
<p>On January 30th, 2014, 12:11 p.m. UTC, Emmanuel Pescosta wrote:</p>








<table bgcolor="#fefadf" width="100%" cellspacing="0" cellpadding="8" style="background-image: \
url('https://git.reviewboard.kde.org/static/rb/images/review_request_box_top_bg.ab6f3b1072c9.png'); \
background-position: left top; background-repeat: repeat-x; border: 1px black solid;">  <tr>
  <td>

<div>Review request for Dolphin.</div>
<div>By Emmanuel Pescosta.</div>


<p style="color: grey;"><i>Updated Jan. 30, 2014, 12:11 p.m.</i></p>







<div style="margin-top: 1.5em;">
 <b style="color: #575012; font-size: 10pt; margin-top: 1.5em;">Bugs: </b>


 <a href="http://bugs.kde.org/show_bug.cgi?id=298199">298199</a>


</div>



<div style="margin-top: 1.5em;">
 <b style="color: #575012; font-size: 10pt;">Repository: </b>
dolphin-plugins
</div>


<h1 style="color: #575012; font-size: 10pt; margin-top: 1.5em;">Description </h1>
 <table width="100%" bgcolor="#ffffff" cellspacing="0" cellpadding="10" style="border: 1px solid \
#b8b5a0">  <tr>
  <td>
   <pre style="margin: 0; padding: 0; white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: \
-pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;">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 -&gt; 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. \
;)</pre>  </td>
 </tr>
</table>


<h1 style="color: #575012; font-size: 10pt; margin-top: 1.5em;">Testing </h1>
<table width="100%" bgcolor="#ffffff" cellspacing="0" cellpadding="10" style="border: 1px solid #b8b5a0">
 <tr>
  <td>
   <pre style="margin: 0; padding: 0; white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: \
-pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;">Works fine for me.</pre>  </td>
 </tr>
</table>


<h1 style="color: #575012; font-size: 10pt; margin-top: 1.5em;">Diffs</b> </h1>
<ul style="margin-left: 3em; padding-left: 0;">

 <li>dropbox/fileviewdropboxplugin.desktop <span style="color: grey">(PRE-CREATION)</span></li>

 <li>dropbox/fileviewdropboxplugin.h <span style="color: grey">(PRE-CREATION)</span></li>

 <li>dropbox/fileviewdropboxplugin.cpp <span style="color: grey">(PRE-CREATION)</span></li>

 <li>dropbox/CMakeLists.txt <span style="color: grey">(PRE-CREATION)</span></li>

 <li>CMakeLists.txt <span style="color: grey">(4d87420)</span></li>

</ul>

<p><a href="https://git.reviewboard.kde.org/r/114812/diff/" style="margin-left: 3em;">View Diff</a></p>







  </td>
 </tr>
</table>








  </div>
 </body>
</html>



[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic