How can I create a GEDCOM diff of all people in one GEDCOM but not the other.?

I have just got wikitree up to date with one branch of my ancestry tree much that I originally imported into wikitree a year previously, this entailed uploading a GEDOM of 1200 people and checking each one against suggested matches, updating info and then adding the 150 or so people that were not in wikitree.

Now I will continue working in Ancestry.com trying to find more people. At some point I will then do another gedcom export but I don't want to recheck the 1200 people I have already checked as this will take a lot of time for little gain.

I intend to compare the original gedcom file with the new gedcom file to find all the people in file 2 that were not in file 1 and then create a new file just comprising those people that I can then upload into wikitree.

I realize Gedcom files are textual files but just using a regular file diff will not create a gedcom file that I can use, so is there a way to construct a valid 3rd gedcom file.

The Gedcom is actually created by Family Tree Maker after syncing from Ancestry and it does seem to preserve an id when exporting the same person to a different Gedcom so it seems it would be quite easy to check ids and create the required Gedcom.

Is there a tool available that can do such a thing?

I am looking for a tool that will create a new Gedcom tree containing users in tree 2 but not in tree 1. I'm not looking for a GUI tool that lets me navigate two trees and compare their data, which is what Which tools are available for GEDCOM comparison? is about.

  • 3
    Possible duplicate of Which tools are available for GEDCOM comparison?
    – Rory Alsop
    Commented Oct 1, 2017 at 21:23
  • Please look the article by the link blog.kittycooper.com/2013/12/… Unfortunately, there is no reliable way to compare the GEDCOM files because there may be more than several types of differences. What I want to say that you may create two completely different trees from the same set of persons and there is no theory just now how to correctly handle such a situations. Of course, ONLY the user must take the decision which data is suitable.
    Commented Oct 2, 2017 at 14:31
  • @RoryAlsop that is not a duplicate as far as I can see it doesn't give a solution of creating new tree Commented Oct 2, 2017 at 14:31
  • @GEORGGAAL nice link but I just want new people and both trees have id thats exists in both trees as always generating form FamilTreemaker. i,e want to compare one tree exported from FTM with another exported from FTM and construct tree showing just the ones in tree 2 but not in tree 1 based on id. I don't see a logical problem preventing that being done. Commented Oct 2, 2017 at 14:33
  • @PaulTaylor I believe that you know what you want and what you are saying. But please double check that you really can rely on so-called person UIDS. Unfortunately I am not big specialist in internals of FTM, but simple logic tells me that the situations may arise when UIDS are messed up. Regarding the GEDCOM related question, I think you could use Linux console tools like sed/grep/awk/etc. They perfectly fit all requirements for working with the plain text files. But the user need some skills to be able effectively use them. They also can be used in the Windows OS with the Cygwin project.
    Commented Oct 2, 2017 at 14:47

5 Answers 5


I just added the ability to copy over missing individuals from one gedcom file to my gedcom compare utility (https://github.com/francoisforster/gedcom-cleanup). While this doesn't create a file with just the diffs, it allows you to keep updating your main wikitree gedcom file and refresh it whole instead of adding the incremental changes.


Your task is one that I don't expect you or very many people will do very often. I don't know of any programs or genealogical utilities that will find all the people in one file that are not in another and then create a tree using the unique people.

If this is something you'll only do once or a few times, then you might as well do it manually. What you can do is use whatever genealogy program you have, and use it to create an listing of all the people in the original GEDCOM file. Then make a copy of the new GEDCOM file, load that into your program, and go through the list and delete the people that are in your list.

You might actually find it better doing this manually. You can inspect each person and may find a deletion may leave some people as unconnected from the rest of the tree. How will you then be able to find where to place them in Wikitree if you do that? You won't know who to attach them to. At least this manual inspection will allow you to leave the connecting people in and mark them somehow so you know they are already on Wikitree.

  • I can compare my tree with wikitree to find who to connect them to. But I'm trying to eliminate the unneccessary manual steps so I can be more productive. Looks like I will have to code the solution myself. Commented Oct 3, 2017 at 7:14

One way to automate some of what you want to do would be to use one of the many Gedcom to Excel converters to create two Excel spreadsheets. The using Excel's functions to compare the two sheets and flag up the non-duplicates. The follow that with @lkessler's suggestion of doing it manually. This will just speed up part of the manual process and should make it a little easier.

  • 1
    I think it is better to use Python interpreter with the corresponding library: github.com/todrobbins/awesome-gedcom The drawback is that one needs to know a programming at least at very basic level to achieve the objective.
    Commented Oct 3, 2017 at 8:22

I also use MacFamilyTree and Ancestry.com together (they both have different strengths) and I needed a way to find differences between them.

I have created and use a suite of tools (https://github.com/elliotchance/gedcom) for this. If your requirements are not too complicated you can use gedcomq to process and output a new GEDCOM file. Or dive into the full functionality of the library.

Disclaimer: I built this.


You could possibly use my Family Tree Analyzer program for at least part of this. If the IDs remain constant then it can read your GEDCOM and from that generate a list of individuals in CSV format so you could use Excel or a standard diff program to compare.

What it doesn't currently do though is to output back to GEDCOM.

It does do a whole lot more than just output a CSV it's an analysis tool to look deep into your GEDCOM file and determine missing data, errors, duplicates, etc and allows you to see where you have got inconsistencies in your data that are otherwise incredibly hard to spot.

It can also automate searching of your favourite family history website.

You can get it completely free at www.ftanalyzer.com

  • This method is actually working and easy to do as the Family Tree Analyzer has GUI, however it won't help with generating one final GEDCOM. Commented Nov 9, 2020 at 21:08

Your Answer

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

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