mirror of
https://github.com/loro-dev/loro.git
synced 2025-02-02 11:06:14 +00:00
fix: import batch snapshot (#268)
This commit is contained in:
parent
f648b353ad
commit
73d5ec5cad
2 changed files with 17 additions and 1 deletions
|
@ -664,7 +664,8 @@ pub(crate) fn decode_snapshot(doc: &LoroDoc, bytes: &[u8]) -> LoroResult<()> {
|
||||||
let changes = decode_changes(iter.changes, iter.start_counters, peer_ids, deps, ops_map)?;
|
let changes = decode_changes(iter.changes, iter.start_counters, peer_ids, deps, ops_map)?;
|
||||||
let (new_ids, pending_changes) = import_changes_to_oplog(changes, &mut oplog)?;
|
let (new_ids, pending_changes) = import_changes_to_oplog(changes, &mut oplog)?;
|
||||||
assert!(pending_changes.is_empty());
|
assert!(pending_changes.is_empty());
|
||||||
assert_eq!(&state.frontiers, oplog.frontiers());
|
// we cannot assert this because frontiers of oplog is not updated yet when batch_importing
|
||||||
|
// assert_eq!(&state.frontiers, oplog.frontiers());
|
||||||
if !oplog.pending_changes.is_empty() {
|
if !oplog.pending_changes.is_empty() {
|
||||||
drop(oplog);
|
drop(oplog);
|
||||||
drop(state);
|
drop(state);
|
||||||
|
|
|
@ -776,3 +776,18 @@ fn tree_checkout() {
|
||||||
})
|
})
|
||||||
.unwrap();
|
.unwrap();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn issue_batch_import_snapshot() {
|
||||||
|
let doc = LoroDoc::new_auto_commit();
|
||||||
|
doc.set_peer_id(123).unwrap();
|
||||||
|
let doc2 = LoroDoc::new_auto_commit();
|
||||||
|
doc2.set_peer_id(456).unwrap();
|
||||||
|
doc.get_map("map").insert("s", "hello world!").unwrap();
|
||||||
|
doc2.get_map("map").insert("s", "hello?").unwrap();
|
||||||
|
|
||||||
|
let data1 = doc.export_snapshot();
|
||||||
|
let data2 = doc2.export_snapshot();
|
||||||
|
let doc3 = LoroDoc::new();
|
||||||
|
doc3.import_batch(&[data1, data2]).unwrap();
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in a new issue