Remove merge from sync-lib

This commit is contained in:
Andras Schmelczer 2025-07-12 11:10:26 +01:00
commit 4543180f7b
No known key found for this signature in database
GPG key ID: FC8F2C3D3D1A718C
2 changed files with 32 additions and 302 deletions

View file

@ -35,6 +35,7 @@ clap-verbosity-flag = "3.0.3"
bimap = "0.6.3"
ts-rs = { version = "10.1", features = ["uuid-impl", "chrono-impl"] }
serde_with = "3.12.0"
reconcile-text = "0.4.8"
[lints]
workspace = true

View file

@ -6,8 +6,9 @@ use axum::{
use axum_extra::TypedHeader;
use axum_typed_multipart::TypedMultipart;
use log::info;
use reconcile_text::{BuiltinTokenizer, is_binary, reconcile};
use serde::Deserialize;
use sync_lib::{is_file_type_mergable, merge};
use sync_lib::is_file_type_mergable;
use super::{
device_id_header::DeviceIdHeader, requests::UpdateDocumentVersion,
@ -117,8 +118,25 @@ pub async fn update_document(
)));
}
let merged_content = if is_file_type_mergable(&sanitized_relative_path) {
merge(&parent_document.content, &latest_version.content, &content)
let merged_content = if is_file_type_mergable(&sanitized_relative_path)
&& is_binary(&parent_document.content)
&& is_binary(&latest_version.content)
&& is_binary(&content)
{
reconcile(
&str::from_utf8(&parent_document.content)
.expect("parent must be valid UTF-8 because it's not binary"),
&str::from_utf8(&latest_version.content)
.expect("latest_version must be valid UTF-8 because it's not binary")
.into(),
&str::from_utf8(&content)
.expect("content must be valid UTF-8 because it's not binary")
.into(),
&*BuiltinTokenizer::Word,
)
.apply()
.text()
.into_bytes()
} else {
content.clone()
};