allow empty commit without revision

This commit is contained in:
Aiden McClelland
2021-09-01 16:14:18 -06:00
committed by Aiden McClelland
parent c3e28cb683
commit 932a5741e6

View File

@@ -27,16 +27,23 @@ pub struct Transaction<Parent: DbHandle> {
pub(crate) sub: Receiver<Arc<Revision>>, pub(crate) sub: Receiver<Arc<Revision>>,
} }
impl Transaction<&mut PatchDbHandle> { impl Transaction<&mut PatchDbHandle> {
pub async fn commit(mut self, expire_id: Option<String>) -> Result<Arc<Revision>, Error> { pub async fn commit(
let store_lock = self.parent.store(); mut self,
let store = store_lock.write().await; expire_id: Option<String>,
self.rebase()?; ) -> Result<Option<Arc<Revision>>, Error> {
let rev = self if (self.updates.0).0.is_empty() && expire_id.is_none() {
.parent Ok(None)
.db } else {
.apply(self.updates, expire_id, Some(store)) let store_lock = self.parent.store();
.await?; let store = store_lock.write().await;
Ok(rev) self.rebase()?;
let rev = self
.parent
.db
.apply(self.updates, expire_id, Some(store))
.await?;
Ok(Some(rev))
}
} }
pub async fn abort(mut self) -> Result<DiffPatch, Error> { pub async fn abort(mut self) -> Result<DiffPatch, Error> {
let store_lock = self.parent.store(); let store_lock = self.parent.store();