enhance: commit the content in logseq when detecting any disk changes

pull/2775/head
Tienson Qin 2021-09-06 08:46:30 +08:00
parent 2fdc601c15
commit bfe6a5d6cb
3 changed files with 12 additions and 21 deletions

View File

@ -54,7 +54,12 @@
(not (string/blank? content))
(not= (string/trim content)
(string/trim (or (db/get-file repo path) ""))))
(p/let [result (ipc/ipc "gitCommitAll" "")
(p/let [db-content (or (db/get-file repo path) "")
;; save the previous content in Logseq first and commit it to avoid
;; any data-loss.
_ (file-handler/alter-file repo path db-content {:re-render-root? false
:reset? false})
result (ipc/ipc "gitCommitAll" "")
_ (file-handler/alter-file repo path content {:re-render-root? true
:from-disk? true})]
(set-missing-block-ids! content)

View File

@ -17,21 +17,13 @@
[db-before db-after db-id]
(let [r (safe-pull db-after '[*] db-id)]
(if (= keys-of-deleted-entity (count r))
(let [r (safe-pull db-before '[*] db-id)]
(when (= keys-of-deleted-entity (count r))
;; TODO: What can cause this happen?
(js/console.error {:db-id db-id
:entity r})
(log/error :outliner-pipeline/cannot-find-entity {:db-id db-id
:entity r}))
r)
;; block has been deleted
(safe-pull db-before '[*] db-id)
r)))
(defn get-blocks-and-pages
[{:keys [db-before db-after tx-data] :as _tx-report}]
(let [properties (filter (fn [datom]
(= :block/properties (:a datom))) tx-data)
updated-db-ids (-> (mapv first tx-data) (set))
(let [updated-db-ids (-> (mapv first tx-data) (set))
result (reduce
(fn [acc x]
(let [block-entity
@ -48,7 +40,7 @@
{:blocks #{}
:pages #{}}
updated-db-ids)]
(assoc result :properties properties)))
result))
(defn get-blocks
[{:keys [db-before db-after tx-data] :as _tx-report}]

View File

@ -10,14 +10,8 @@
[page]
(file/sync-to-file page))
;; (defn updated-properties-hook
;; [properties]
;; (metadata-handler/update-properties! properties))
(defn invoke-hooks
[tx-report]
(let [{:keys [blocks pages properties]} (ds-report/get-blocks-and-pages tx-report)]
(let [{:keys [blocks pages]} (ds-report/get-blocks-and-pages tx-report)]
(doseq [p (seq pages)] (updated-page-hook p))
(doseq [b (seq blocks)] (updated-block-hook b))
;; (when (seq properties) (updated-properties-hook properties))
))
(doseq [b (seq blocks)] (updated-block-hook b))))