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) { fn merge(&mut self, other: &Self) {
if other.timestamp < self.timestamp { if other.timestamp > self.timestamp {
*self = other.clone(); *self = other.clone();
return; return;
} }

View file

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