On Jun 22, 8:58 pm, duncan smith <buzz...@urubu.freeserve.co.uk> wrote: > Hello, > I have an application that would benefit from collaborative > working. Over time users construct a "data environment" which is a > number of files in JSON format contained in a few directories (in the > future I'll probably place these in a zip so the environment is > contained within a single file). At the moment there is one individual > constructing the data environment, and me occasionally applying > corrections after being e-mailed the files. But in the future there > might be several individuals in various locations. > > As a minimum requirement I need to embed some sort of version control, > so that changes committed by one individual will be seen in the local > environments of the others. Some of the work involves editing graphs > which have restrictions on their structure. In this case it would be > useful for edits to be committed / seen in real time. The users will not > be particularly technical, so the version control will have to happen > relatively quietly in the background. > > My immediate thoughts are to (somehow) embed Mercurial or Subversion. It > would certainly be useful to be able to revert to a previous version of > the data environment if an individual does something silly. But I'm not > actually convinced that this is the whole solution for collaborative > working. Any advice regarding the embedding of a version control system > or alternative approaches would be appreciated. I haven't tried anything > like this before. The desktop application is written in Python (2.6) > with a wxPython (2.8) GUI. Given the nature of the application / data > the machines involved might be locally networked but without web access > (if this makes a difference). TIA. > > Duncan
If you are looking at mercurial and subversion you may want to look at git also. >From http://en.wikipedia.org/wiki/Git_%28software%29#Implementation (quoting Linus Torvalds) --------------------------- In many ways you can just see git as a filesystem — it's content- addressable, and it has a notion of versioning, but I really really designed it coming at the problem from the viewpoint of a filesystem person (hey, kernels is what I do), and I actually have absolutely zero interest in creating a traditional SCM system. More details https://git.wiki.kernel.org/index.php/Git#Design ------------------------- Of course its good to say upfront that git is mostly C+shell ie its not python There is gitpython http://packages.python.org/GitPython/0.1/tutorial.html but I know nothing about it -- http://mail.python.org/mailman/listinfo/python-list