post 4.3 - git dialogs

Dirk Hohndel dirk at hohndel.org
Fri Nov 21 09:30:17 PST 2014


I've been looking into this and Tomaz asked me something about Dropbox and
Google Drive and so I figured I might as well document this in email so
people can comment.

Once thing I want to add after 4.3 is a user friendly way to interact with
storage that isn't just a local XML file. We already have some integration
of git storage but that's actually a bit of a pain right now. This isn't
well structured, mostly a summary of the things that I know, so bear with
me...

a) opening / saving a local XML file.
   straight forward, works with today's file dialogs

b) opening / saving an XML file via Dropbox
   that should be just as transparent, as Dropbox usually integrates just
   as a local folder

c) opening / saving via Google Drive or other cloud filsystems
   this might need a special UI, something that tells Subsurface "this is
   how you get to my storage". I actually need to look more into those
   services (we need to include OwnCloud for example). Some are like
   Dropbox, I think, and show up as local directories. Others seem to have
   more web style APIs. Is there anyone here who's familliar with these?

d) opening / saving to local git
   saving is actually easy, with a little manual work; create a directory
   and run "git init" in that directory (Linus: is there a reason we don't
   do this from Subsurface if there is no git repo in a directory?), and
   then point the file save dialog at /path/to/dir[branch] with a branch
   name of your choice and it will write the data into that branch of the
   repository
   loading is kinda hard right now. We use QFileDialog::getOpenFileName to
   get the file to load from the user and that dialog only returns
   existing files, so our syntax for entering the file name fails.
   This would be nice to fix before 4.3 - I'm sure we could replace this
   with a dialog that allows our syntax. All it then needs to do is figure
   out if the file that was returned exists or if this is git syntax and
   if neither, gracefully fail.

e) opening / saving remote git
   this is an area I'm very interested in. I want to have a way to
   trivially use something like github or bitbucket or something where
   people can create private git repositories and access them from
   anywhere... and do so with a really simple UI. The UI should also allow
   you to just give it the necessary information to use any custom git
   server for those people who want to run their own (and yeah, that UI
   can be a lot more sparse as this is just for a few crazy people, not
   for average divers).
   And then we "simply" present this in an Apple Time Machine like fashion
   - as something where you can access the latest version or older
   versions. And ideally you can do truly trivial merges. So let's say you
   saved to the repo from your home machine, you take your laptop that has
   an older version of the data, download dives to the laptop and then try
   to save to the repo. The way we designed the git layout you should
   almost never have conflicts and merges should just do the right
   thing... this needs obviously some experimentation, but that would be
   something I'd really like to see.

As promised, rather raw ideas, but maybe it's a start.

The one item inside d) could and should be addressed prior to 4.3. Any
volunteers?

/D


More information about the subsurface mailing list