Design Monkey
Weblog of Hylke Bons

Releasing SparkleShare 0.2!

Tuesday, June 7th, 2011

A first stable release had been in the air for a while now, but issues kept creeping up every now and then that were holding it back. The result was too much rewriting of the code and adding of features than that is good for after a release candidate, but after about two weeks of no critical bugs being reported, and the fact that it’s succesfully syncing my Linux box and Mac, after about a year since the start of the SparkleShare project, I’d like to finally announce SparkleShare 0.2! :)

Get the Linux an Mac versions fresh off the front page. There is a Mac binary available, but for Linux there’s still only source code. Hopefully the Linux distributions will make installable packages very soon. Please read the documentation before getting started.

Changes since 0.2 RC1

  • Added support for Growl to show notifications on Mac.
  • Removed the dependancy on GitSharp.
  • File rename detection support in the event logs.
  • Fixed all crashes reported in RC1 and improved sync algorithm.
  • Redid collision detection and conflict resolving (use a copy of each version).
  • Improved about dialogs with version checking.
  • Pluggable backend (experimental Mercurial support).

Known issues

  • For now, a central notification server (an irc daemon) is needed to notify clients of changes because there is no specific server side code yet. Only update infomation “Hey, there are new changes on the server!” is send. You can override this to use your own server by adding a <announcements>my-server.com</announcements> element to the appropriate folder element in ~/.config/sparkleshare/config.xml.
  • The Mac version doesn’t have file manager integration yet.
  • Resuming from suspend is a bit buggy. Restarting SparkleShare fixes it.
  • SparkleShare won’t yet be notified of changes made to the git repository manually by using the command line tools.

Plans for the near future
I would really like to try and get more people involved to work on the Windows version (it runs, but it’s hard to get running and it doesn’t integrate well with the system) and mobile versions for Android and iPhone (these would be simple clients, able to browse your files on the server, download and upload stuff, etc.).

Now that SparkleShare’s backend is pluggable, I’d like to implement something based on SFTP or similar. While Git is very cool, it’s not always the best solution for storing huge files in. So there are problems to be solved there. Git support will definitely always stay by default though, because it’s the most awesomest DVCS ever made. The right balance needs to be found between having a history and not using too much space.

More ideas can be found on the wiki. Join the IRC channel: #sparkleshare on irc.gnome.org, if you’re interested in helping.

Finally…
…I’d like to thank all contributors and testers. Specially Alex Hudson, Bertrand Lorentz, Lapo Calamandrei, and Łukasz Jernaś. Thanks!

Now have fun and create cool stuff!


What people think...


  1.  Tuesday, June 7th, 2011 at 08:11
    jdrewsen  

    Maybe looking at BUP for big files in Git is the way to go?
    http://lwn.net/Articles/380983/

  2.  Tuesday, June 7th, 2011 at 08:16
    Jos  

    Have you considered working with the Bup project? They use the git packfile format for storage but have a clever way of splitting up large files, which works very well for backup and also for file sharing.

    Currently their focus is on backup (hence the name), but they have nice cross-platform libraries and good design documentation. The code is easy to read too.

    Backup is a very similar problem to versioned file sharing, so I think Bup and Sparkleshare would be a very good match.

    http://github.com/apenwarr/bup
    http://groups.google.com/group/bup-list

  3.  Tuesday, June 7th, 2011 at 08:50
    xavier  

    Congratulations!

    Playing with xmpp on another project, wondering if the notification can be done with it (obviously, ideal solution) without having to install a server (ie. using an external server like gmail and only implement a client on sparkleshare that consume messages sent. Might need to change the protocol (to send a request when the client goes online instead of a passive consumption only).

    Anyway, will read more about how you’ve done it and join the wiki for the discussion.

    X+

  4.  Tuesday, June 7th, 2011 at 08:53
    Eetu Huisman  

    “Now that SparkleShare’s backend is pluggable, I’d like to implement something based on SFTP or similar.”

    Wouldn’t rsync be a natural fit?

  5.  Tuesday, June 7th, 2011 at 10:13
    b  

    Hej Hylke,

    thank you for your effort with sparkleshare.

    Could you please find another solution for notifications than irc? Why not use XMPP or SSH?

    Greetings,
    b.

  6.  Tuesday, June 7th, 2011 at 12:43
    Rob  

    Hello Hylke,

    many thanks for your continued effort.

    However, as you no longer work with Intel, you don’t need to hate freedom any longer.

    When will you port it to a Free language?

    Yours sincerely,

  7.  Tuesday, June 7th, 2011 at 13:52

    Have you considered using git annex? I was very surprised to see that Sparkleshare uses git and doesn’t use git-annex for storing large files. With annex, you get the best of both worlds.
    http://git-annex.branchable.com/

    Perhaps in future releases, that could become the default backend.

  8.  Tuesday, June 7th, 2011 at 13:54

    @RobTheTroll: C# is a free language and an open standard. Mono is also free as in freedom. Please stop with the pointless FUD. That being said, I do wish it was in a language like python or C or something more open source hackers use, then I would submit some patches.

  9.  Tuesday, June 7th, 2011 at 21:00
    chrysn  

    at the backend side, i’d suggest git-annex for consideration; its main point is to allow big files in git without having to check them in, and it makes sure you can safely delete a file in a checkout without removing it from the tree, while making sure it is still present at other places. (biggest issue is probably portability — it currently depends on symlinks.)


Leave your thoughts

Due to spam I check every comment myself,
so it may take a little longer for your comment to appear.


© 2006–2012  Hylke Bons