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.
This commit is contained in:
Johannes Schlatow
2012-11-22 00:11:53 +01:00
parent 69b63189f6
commit 0e28374131
5 changed files with 201 additions and 26 deletions

View File

@@ -37,6 +37,7 @@ class Taskmod {
public:
Taskmod ();
Taskmod (int resourceID);
Taskmod (const Taskmod& other);
~Taskmod ();
@@ -68,6 +69,7 @@ public:
Task& getBefore ();
long getTimestamp () const;
unsigned long getSequenceNumber () const;
int getResource () const;
std::string getTimeStr () const;
protected:
@@ -77,6 +79,7 @@ protected:
bool _bAfterSet;
bool _bBeforeSet;
unsigned long _sequenceNumber;
int _resource;
static unsigned long curSequenceNumber;
};