diff --git a/backend/sync_server/src/server/create_document.rs b/backend/sync_server/src/server/create_document.rs index 18ecffac..50b9d862 100644 --- a/backend/sync_server/src/server/create_document.rs +++ b/backend/sync_server/src/server/create_document.rs @@ -7,6 +7,7 @@ use axum_extra::{ headers::{authorization::Bearer, Authorization}, TypedHeader, }; +use log::info; use schemars::JsonSchema; use serde::Deserialize; use sync_lib::{base64_to_bytes, merge}; @@ -68,6 +69,19 @@ pub async fn create_document( .context("Failed to decode bytes as UTF-8") .map_err(client_error)?; + if merged_content == existing_version.content { + info!( + "Content of the new version is the same as the existing version. Not creating a \ + new version." + ); + transaction + .rollback() + .await + .context("Failed to rollback unecceseary transaction") + .map_err(server_error)?; + return Ok(Json(existing_version.into())); + } + StoredDocumentVersion { vault_id, vault_update_id: last_update_id + 1,