Collaborating with Family Members using GEDitCOM II

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 are:

Subversion (or 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.

Create a Repository for Your Genealogy Data

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 URL for svn tasks, such as:

	http://MyTree.svn.beanstalkapp.com/MyTree/

The default Subversion repository will have three folders in this URL with the following names:

	MyTree/branches
	MyTree/tags
	MyTree/trunk

The 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.

Import Initial Genealogy Files into the Repository

The following steps are needed to prepare your GEDitCOM II data for upload to the new repository:

  1. Create a new folder for your GEDitCOM II file.
  2. Make sure all multimedia objects are stored in that same folder or within any subfolder in that folder. If needed, you can open the "Multimedia Options" panel (in the "Tree" menu) and use the "Consolidate Multimedia Objects" section in the "Options" tab. See the GEDitCOM II help for details on this tool.
  3. Delete all thumbnail images (because they are not needed in the repository and only make it larger). To delete them, click the "Delete All" button in the "Multimedia Thumbnails" section of the "Options" tab of the "Multimedia Options" panel.
  4. Save the file
  5. Quit GEDitCOM II

Your genealogy data is now ready for importing into your repository. The steps are:

  1. Start the Terminal app
  2. Navigate to the folder containing the genealogy folder created above - here that the folder's name is assumed to be InitialGeneo.
  3. Use the svn command:
    	svn import -m "Initial Import" InitialGeneo http://MyTree.svn.beanstalkapp.com/MyTree/trunk \
    	     --username MyAccount
  4. You will be asked to supply a password and then the entire contents of the InitialGeneo folder will be imported into your repository. It is now ready for use.

Check Out Working Copies of Your Genealogy Data

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:

  1. Start the Terminal app
  2. Navigate to the folder you want to contain your working copy
  3. Use the svn command:
        svn checkout http://MyTree.svn.beanstalkapp.com/MyTree/trunk LocalTree --username MyAccount
  4. You will be asked for a password and all files will be downloaded into a new folder called LocalTree
  5. Open the GEDitCOM II file in the LocalTree folder 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).

Make Changes and Commit Results

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:

  1. Start the Terminal app
  2. Navigate to your working copy folder
  3. Use the svn command:
        svn commit -m "describe the changes"
  4. The quoted text is required, but can be any short text to describe the recent changes.
  5. The above command will commit all changes. You can commit changes to individual files by adding the file name(s) to the commit command if desired.

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

where 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:

    svn status

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.)

Update Results when Someone Else Changes the Data

Whenever one person commits changes to the repository, all others with working copies can update their copy for the new data as follows:

  1. Start the Terminal app
  2. Navigate to your working copy folder
  3. Use the svn command:
        svn update
  4. The above command will update all changes. You can update changes to individual files by adding the file name(s) to the update command if desired.