Fix reconciliation logic

This commit is contained in:
Alex Auvolat 2020-11-20 20:12:32 +01:00
parent e9fd265ce6
commit 2dc9a48022
2 changed files with 6 additions and 5 deletions

View file

@ -75,7 +75,7 @@ impl Entry<EmptyKey, String> for Bucket {
}
fn merge(&mut self, other: &Self) {
if other.timestamp < self.timestamp {
if other.timestamp > self.timestamp {
*self = other.clone();
return;
}

View file

@ -104,6 +104,11 @@ impl Entry<EmptyKey, String> for Key {
}
fn merge(&mut self, other: &Self) {
if other.name_timestamp > self.name_timestamp {
self.name_timestamp = other.name_timestamp;
self.name = other.name.clone();
}
if other.deleted {
self.deleted = true;
}
@ -111,10 +116,6 @@ impl Entry<EmptyKey, String> for Key {
self.authorized_buckets.clear();
return;
}
if other.name_timestamp > self.name_timestamp {
self.name_timestamp = other.name_timestamp;
self.name = other.name.clone();
}
for ab in other.authorized_buckets.iter() {
match self