mirror of
https://github.com/narrrl/proton-drive-linux.git
synced 2026-11-03 16:41:26 +01:00
refactor(fuse,core): keep queued-op preconditions in the database
Phase 1 of docs/MILESTONE-3.0.0.md, without a change in behaviour. - Own sealed revisions live only in the own_sealed_rev table. The in-memory map in front of it is gone, so revision_conflict gives the same answer before and after a restart. - A queued rename records the node's original name next to its original parent, and keeps both across renames that replace the row. The drain logs when Drive has the node neither where the rename found it nor where it takes it. The SDK's NodeUpdated event carries no revision id, so echoes of our own changes stay recognised by the self-change timer.
This commit is contained in:
1 parent
bf73a395e5
commit
1c262eb601
4 files changed
+54
-40
No files matched your search
@@ -45,6 +45,12 @@ pub const OP_RENAME: &str = "rename";
|
||||
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
|
||||
pub struct RenameMeta {
|
||||
pub original_parent_uid: String,
|
||||
/// The node's name on Drive when the first of its queued renames was made,
|
||||
/// kept across the renames that replace the row, like the parent. With it
|
||||
/// the drain knows where the node should still be when the op lands.
|
||||
/// `None` on a row queued before this field existed.
|
||||
#[serde(default)]
|
||||
pub original_name: Option<String>,
|
||||
}
|
||||
|
||||
/// The `kind` of a [`PendingOp`] that trashes a node the server knows about
|
||||
|
||||
Reference in new issue
Block a user