loro-dev / loro

Reimagine state management with CRDTs. Make your app collaborative effortlessly.
https://loro.dev
MIT License
3.71k stars 70 forks source link

feat: support commit message #429

Closed zxch3n closed 3 weeks ago

zxch3n commented 3 weeks ago

Support adding a commit message for each Change.

let doc = LoroDoc::new();
let text = doc.get_text("text");
text.insert(0, "hello").unwrap();
doc.commit_with(CommitOptions::new().commit_msg("edits"));
let change = doc.get_change(ID::new(doc.peer_id(), 0)).unwrap();
assert_eq!(change.message(), "edits");

// The commit message can be synced to other peers as well
let doc2 = LoroDoc::new();
doc2.import(&doc.export_snapshot()).unwrap();
let change = doc.get_change(ID::new(doc.peer_id(), 1)).unwrap();
assert_eq!(change.message(), "edits");