
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 either GEDitCOM II or GEDitCOMGEDitCOM II, the simplest approach is to use the built-in feature to merge records using "Universally Unique IDs" (UUIDs). To learn how to use this method:
If the above method works for you, that method is best. This tutorial gives two alternate solutions for collaborations. In brief, these methods use existing tools for software development collborations but replace the software code by genealogy files and multimedia objects. The two tools are called github and Subversion and explained in the following two sections.
A popular tool for software development is GitHub and it is easy to use for genealogy too. The following is an outline of the process. You are referred to GitHub for more details on any step.
ReadMe.md file. When done, click "Create Repository."ReadMe.md file created above when you created the repository. The contents of this file is displayed to collaborators when they view your repository on GitHub. The "md" stands for mark down files that makes it easier to create html content. You can visit getting started and basic syntax for help on editing mark down files.The above steps create a repository that only you can edit. To collaborate with others, you have to invite them as collaborators, which you can do by viewing you repository on GitHub. Collaborators can then clone the project and work along with you on the genealogy research. The basic steps are:
To see a sample GitHub repository with a GEDitCOM II file (which is compatible with GEDitCOM) you can clone a repository with the "Windsors" genealogy file that comes with GEDitCOM II as a sample file (but not with GEDitCOM). The URL for this repository is:
https://github.com/nairnj/Windors-GEDitCOM
Two methods to clone it are:
The cloned respository will have the "Windors.gedpkg" file you can open in GEDitCOM II or GEDitCOM.
Another tool for developers is Subversion (or svn) and GEDitCOM II cooperatesboth GEDitCOM II and GEDitCOM cooperate with svn tools. Subversion (or svn) used to be installed automatically in MacOS, but now has to be installed manually. Before using this tutorial, you have to install command line tools and then separately install Subversion. Because this method varies in each now MacOS, you can google the latest options for your MacOS. The rest of this tutorial assumes those installations have been done and 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 tasks for collaborating using svn are:
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.
The following steps are needed to prepare your genealogy data for upload to the new repository:
Your genealogy data are now ready for importing into your repository. The steps are:
InitialGeneo.svn command:
svn import -m "Initial Import" InitialGeneo http://MyTree.svn.beanstalkapp.com/MyTree/trunk \ --username MyAccount
The basic work flow for an svn project is 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 command:
svn checkout http://MyTree.svn.beanstalkapp.com/MyTree/trunk LocalTree --username MyAccountLocalTreeLocalTree folder in GEDitCOM II or GEDitCOM and start working on your researchThe 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 command:
svn commit -m "describe the changes"If you add multimedia objects to your data, you need to add their files and then commit. 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 a "thumbs" directory within the gedpkg file (if there); that directory contains multimedia thumbnails and it does not need to be in the repository because they are recreated 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:
svn command:
svn update