- Removed the ability for hooks to add tasks, or modify tasks that are outside
the context of the current event. This makes hooks a local mechanism that
operates only on local changes. Modifications/additions coming in via sync
command are not processed by hooks.
- Disabled hook processing while processing hooks. This is because both ::add
and ::modify can each add or modify tasks, and there is the potential for
infinite recursion.
- Removed the \n characters from Task::composeFF4 and Task::ComposeJSON.
- Tasks in backlog.data file are now written as JSON.
- Tasks are recognized in FF4 or JSON format.
- Many files were missing an explicit cmake.h include. Some were not including
it at all. Now it's used almost everywhere.
(cherry picked from commit 82ae86979c497e6d1d0c6b2b5a55aa379ec82c98)
Hopefully found the ultimate cause of duplicated (completed) tasks.
The corresponding test case
1. does not rely on the fact that there are modifications with equal
timestamps and
2. is a LOT simpler than the other ones.
Fixed some other merge issues with the sorting order of equally timestamped
entries in undo.data (see #1104).
1. The fact that both files can begin with equal timestamps but different
modifications has not been taken into account.
2. Besides the fact that the relative order within the same data file must
be preservered as introduced before, we also need a unique order for entries
of different data files so that each machine comes to the same merge result.
This has now been achieved by taking the UUIDs into account as soon as the
timestamps are equal.
- Added an option to bypass backlog recording to TDB2::add and TDB2::modify.
This is required when handling backlog data, to prevent perpetual syncing.
Fixed the bug where the sort order of transactions with equal timestamps
was not stable, i.e. due to the lack of a total order, different merges
produced different sortings and hence messed up transactions which
have already been merged.
Added unit test.
Implemented a quick fix for the issue with a broken branch-off algorithm
which disregarded the transaction boundaries in the undo.data file.
Added unit test.
Implemented a quick fix for the issue with a broken branch-off algorithm
which disregarded the transaction boundaries in the undo.data file.