One challenge in genealogy research is working together with friends and family members and keeping everyone up-to-date with the latest research results. If everyone in your collaboration group has GEDitCOM II, this tutorial gives one excellent solution for such collaborations. In brief, the method is to use existing tools for software development collborations but to replace the software code by genealogy files and multimedia objects. One of the most popular tools for developers is Subversion (or
svn) and GEDitCOM II was written to cooperate with all
svn tools. The tasks for collaborating using
svn) is installed by default in MacOS 10.5 or newer and ready for use. This tutorial gives command-line tools for all
svn tasks, which are all entered using the Terminal app. For those not comfortable with command-line tools, all these tasks can be done instead by purchasing a visual front end for
svn tasks. One excellent front end, or Subversion client, is called Versions. If you do use command-line tools, you can read all you need to know in the free on-line Subversion book. The most common commands are described in this tutorial.
The first task is to set up a repository for your data. The best choice here is a cloud-computing server that is accessible by all those collaborating on the project. If you have your own server, you may be able to set one up yourself. Otherwise, the best option is to create an account on a server designed for Subversion projects. One excellent web site is Beanstalk. They provide secure storage, automatic backup, and have a package for anyone's needs. You can get started with a free account, which is limited to 100 MB of storage. You can expand to more features as needed.
Whether you use Beanstalk or some other service, the first step is to create an empty repository. This task will usually be done by the tools in the service you select. In Beanstalk, you will get an account name, such as
MyAccount, a password for that account, and you can create a repository with another name, such as
MyTree. The repository will have its own
svn tasks, such as:
The default Subversion repository will have three folders in this
URL with the following names:
MyTree/branches MyTree/tags MyTree/trunk
branches folder is used by software developers to try adding new features to applications; it may not be that useful in genealogy. The
tags folder is used to store stable versions of your project for easy recall later. The
trunk folder is where you store your main project and all your genealogy data.
The following steps are needed to prepare your GEDitCOM II data for upload to the new repository:
Your genealogy data is now ready for importing into your repository. The steps are:
svn import -m "Initial Import" InitialGeneo http://MyTree.svn.beanstalkapp.com/MyTree/trunk \ --username MyAccount
The basic process for working on an
svn project are to check out a working copy of the project, make changes as you work on the research, and then commit those changes back to the repository. If someone else make changes, you can receive those changes by updating your working copy. This section explains how to check out a working copy.
The import in the previous section, uploads your files to the repository, but does not convert you initial copy into a working copy. To get a working copy, check one out as follows:
svn checkout http://MyTree.svn.beanstalkapp.com/MyTree/trunk LocalTree --username MyAccount
LocalTreefolder and start working on your research
The only thing optional in the check out command line is the "LocalTree" name just before your username. This entry will be the name of the folder created in the current folder to hold all the genealogy files and will be your working copy folder and can be any name you want (it need not match the repository name).
As you make changes and add multimedia objects, you will want to save the new data in the repository. This step is done by committing your changes. The steps are:
svn commit -m "describe the changes"
If you add multimedia objects to your data, you need to add the file and then commit it. To add a file, use the command:
svn add Path/To/MultimediaObject
Path/To/MultimediaObject is a relative path from your current directory in the Terminal app to the file that needs to be added. The add command will mark a file for adding, but will not add it your the repository until your next commit, as done by the commit mnethod described above.
If you add several multimedia objects, you may forget which ones need to be added to the repository. This problem is solved with the following command in the main folder of the working copy:
Any files found in the working copy, but not found in the repository will be listed with a "?". These files are the ones that need to be added. (Note: you can ignore the "thumbs" directory within the
gedpkg file; that directory contains multimedia thumbnails and it does not need to be in the repository because GEDitCOM II can recreate them whenever needed.)
Whenever one person commits changes to the repository, all others with working copies can update their copy for the new data as follows: