mirror of https://github.com/logseq/logseq
enhance: commit the content in logseq when detecting any disk changes
parent
2fdc601c15
commit
bfe6a5d6cb
|
@ -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)
|
||||
|
|
|
@ -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}]
|
||||
|
|
|
@ -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))))
|
||||
|
|
Loading…
Reference in New Issue