13
$\begingroup$

I have a folder in dropbox syncing to my desktop. I tried sharing a notebook file this way, but this generates lots of errors, conflicts, and data loss:

enter image description here

I have notebooks with Dynamic and other functionalities that the Wolfram Cloud does not support. Also, I don't want to make my friends sign up and/or pay for the Wolfram cloud service.

Is there any better solution out there for co-authoring notebooks?

Related:

$\endgroup$
2
  • $\begingroup$ A [Dropbox badge] (dropbox.com/help/7672) for Mathematica would not bring @MarcoB version control, but could it eliminate some of the errors you see? $\endgroup$ Sep 4, 2015 at 18:30
  • $\begingroup$ @Christopher the Dropbox badge is interesting, but in order for it to work, Dropbox would essentially have to implement versioning for MMA notebooks... $\endgroup$
    – MarcoB
    Sep 6, 2015 at 15:38

1 Answer 1

14
$\begingroup$

I have no personal experience with versioning/sharing in Mathematica yet, but my group and I have come to the point where we have to consider these options, so I have been looking around a bit. I can't say that I have any definitive answer, but this is what I've learned from perusing this community's archive.

First of all, in order to share Mathematica contents among multiple users that may need to modify the code, you need some form of version control software. I noticed that you had previously asked another question along these lines a few years ago (How can I set up a versioning system within a notebook?), to which you provided an answer yourself.

Unfortunately, the consensus seems to be that notebooks are eminently unsuited to versioning: they contain a lot of metadata, presentation rules, information that is relevant only to the front end, etc.

A better approach seems to be to use *.m files to store the plain source code, and version those. There are a few examples of settings of Git that are compatible with *.m files from this site, linked below. This is probably what I personally will have to do (as soon as I gather the courage!). I don't know whether this is really suitable for the application you have in mind though.

In any case, I'll share a few posts from this site that I have saved up because I had found them interesting with respect to versioning / sharing / team collaborations:

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.