fisharebest / webtrees

Online genealogy
https://webtrees.net
GNU General Public License v3.0
488 stars 301 forks source link

Accepting/rejecting linked changes makes it easy to generate gedcom errors #2407

Open DaPoHou opened 5 years ago

DaPoHou commented 5 years ago

E.g:

  1. add an individual
  2. Link the individual as a family wife. In a pending change, if I approve the second action (can be approved) and then revoke the first action, then accessing the family will result in an error and gedcom record is error. Currently on the pending changes page: 1、 The approval operation did not make a logical judgment. 2、The records displayed on the pending change page are not pre-processed. The above two reasons are easy to produce gedcom record errors.
fisharebest commented 5 years ago

There are many ways to create broken links - any change that affects more than one record.

For example

Much more complicated scenarios are possible.

GEDCOM is a data transmission format. It was not designed to be a data storage format.

However webtrees uses it for storage.

It is difficult to solve this problem and still use GEDCOM format.

The only solution I can think of is to require the user to accept the oldest change first (or reject the newest change first).

DaPoHou commented 5 years ago

Sorting by time is a method, but it cannot be completely solved. Can you avoid these mistakes by prejudging? For example, when accepting a family relationship change, first determine whether the involved individual exists. You can judge the basic elements in the gedcom record, such as individual, source, media...Other data is composed of these basic elements linked to each other.