Browse Source

fix: don't alert file already exists when case renaming in cli

Tienson Qin 2 years ago
parent
commit
2e217f4975

+ 1 - 1
src/main/frontend/fs/watcher_handler.cljs

@@ -129,7 +129,7 @@
         (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))
+                                      (concat (db/delete-blocks graph deleted-files nil))
                                       (remove nil?))]
               (db/transact! graph delete-tx-data)))
           (doseq [file files]

+ 16 - 6
src/main/frontend/handler/common/file.cljs

@@ -10,7 +10,8 @@
             [logseq.graph-parser.util :as gp-util]
             [logseq.graph-parser.config :as gp-config]
             [frontend.fs.capacitor-fs :as capacitor-fs]
-            [frontend.context.i18n :refer [t]]))
+            [frontend.context.i18n :refer [t]]
+            [clojure.string :as string]))
 
 (defn- page-exists-in-another-file
   "Conflict of files towards same page"
@@ -24,11 +25,20 @@
   [repo-url file-page file-path]
   (when-let [current-file (page-exists-in-another-file repo-url file-page file-path)]
     (when (not= file-path current-file)
-      (let [error (t :file/validate-existing-file-error current-file file-path)]
-        (state/pub-event! [:notification/show
-                           {:content error
-                            :status :error
-                            :clear? false}])))))
+      (cond
+        (= (string/lower-case current-file)
+           (string/lower-case file-path))
+        ;; case renamed
+        (when-let [file (db/pull [:file/path current-file])]
+          (db/transact! repo-url [{:db/id (:db/id file)
+                                   :file/path file-path}]))
+
+        :else
+        (let [error (t :file/validate-existing-file-error current-file file-path)]
+          (state/pub-event! [:notification/show
+                             {:content error
+                              :status :error
+                              :clear? false}]))))))
 
 (defn- validate-and-get-blocks-to-delete
   [repo-url db file-page file-path retain-uuid-blocks]