mirror of https://github.com/logseq/logseq
fix: remove orphaned files/blocks from db when comparing db && disk
parent
e2bcd3ac68
commit
ddd2cb3f0a
|
@ -18,7 +18,8 @@
|
|||
[frontend.fs :as fs]
|
||||
[frontend.fs.capacitor-fs :as capacitor-fs]
|
||||
[frontend.util.fs :as fs-util]
|
||||
[frontend.util :as util]))
|
||||
[frontend.util :as util]
|
||||
[clojure.set :as set]))
|
||||
|
||||
;; all IPC paths must be normalized! (via gp-util/path-normalize)
|
||||
|
||||
|
@ -119,12 +120,21 @@
|
|||
(defn load-graph-files!
|
||||
[graph]
|
||||
(when graph
|
||||
(let [dir (config/get-repo-dir graph)]
|
||||
(p/let [files (fs/readdir dir :path-only? true)]
|
||||
(doseq [file files]
|
||||
(when-let [_ext (util/get-file-ext file)]
|
||||
(->
|
||||
(when-not (fs-util/ignored-path? dir file)
|
||||
(let [dir (config/get-repo-dir graph)
|
||||
db-files (->> (db/get-files graph)
|
||||
(map first)
|
||||
(filter #(string/starts-with? % (config/get-repo-dir graph))))]
|
||||
(p/let [files (fs/readdir dir :path-only? true)
|
||||
files (remove #(fs-util/ignored-path? dir %) files)]
|
||||
(let [deleted-files (set/difference (set db-files) (set files))]
|
||||
(when (seq deleted-files)
|
||||
(let [delete-tx-data (->> (db/delete-files deleted-files)
|
||||
(concat (db/delete-blocks graph files nil))
|
||||
(remove nil?))]
|
||||
(db/transact! graph delete-tx-data)))
|
||||
(doseq [file files]
|
||||
(when-let [_ext (util/get-file-ext file)]
|
||||
(->
|
||||
(p/let [content (fs/read-file dir file)
|
||||
stat (fs/stat dir file)
|
||||
type (if (db/file-exists? graph file)
|
||||
|
@ -134,6 +144,6 @@
|
|||
{:dir dir
|
||||
:path file
|
||||
:content content
|
||||
:stat stat})))
|
||||
(p/catch (fn [error]
|
||||
(js/console.dir error))))))))))
|
||||
:stat stat}))
|
||||
(p/catch (fn [error]
|
||||
(js/console.dir error)))))))))))
|
||||
|
|
Loading…
Reference in New Issue