Просмотр исходного кода

chore(deps): bump diff-merge to 0.1.0

Andelf 2 лет назад
Родитель
Сommit
a59ecb370d

+ 1 - 1
deps/graph-parser/test/logseq/graph_parser/cli_test.cljs

@@ -47,7 +47,7 @@
   (fs/mkdirSync (path/join dir "journals"))
   (fs/mkdirSync (path/join dir "pages")))
 
-(deftest ^:focus build-graph-files
+(deftest build-graph-files
   (create-logseq-graph "tmp/test-graph")
   ;; Create files that are recognized
   (fs/writeFileSync "tmp/test-graph/pages/foo.md" "")

+ 1 - 1
package.json

@@ -91,7 +91,7 @@
         "@excalidraw/excalidraw": "0.12.0",
         "@hugotomazi/capacitor-navigation-bar": "^2.0.0",
         "@logseq/capacitor-file-sync": "0.0.30",
-        "@logseq/diff-merge": "^0.0.3",
+        "@logseq/diff-merge": "0.1.0",
         "@logseq/react-tweet-embed": "1.3.1-1",
         "@radix-ui/colors": "^0.1.8",
         "@sentry/react": "^6.18.2",

+ 10 - 3
src/main/frontend/fs/diff_merge.cljs

@@ -118,7 +118,7 @@
             (let [content (gp-block/get-block-content utf8-encoded-content (second block) format fixed-pos-meta block-pattern)
                   content-raw (get-sub-content-from-pos-meta utf8-encoded-content fixed-pos-meta)]
               (recur (conj headings {:body  content
-                                     :raw-body (string/trimr content-raw)
+                                     :meta  {:raw-body (string/trimr content-raw)}
                                      :level (:level (second block))
                                      :uuid  (:id properties)})
                      (rest blocks)
@@ -155,9 +155,9 @@
   [_base-diffblocks diffs _format]
   ;; [[[0 {:body "attrib:: xxx", :level 1, :uuid nil}] ...] ...]
   (let  [ops-fn (fn [ops]
-                  (map (fn [[op {:keys [raw-body]}]]
+                  (map (fn [[op {:keys [meta]}]]
                          (when (or (= op 0) (= op 1)) ;; equal or insert
-                           raw-body))
+                           (:raw-body meta)))
                        ops))]
     (->> diffs
          (mapcat ops-fn)
@@ -181,6 +181,13 @@
         current-diffblocks (ast->diff-blocks-alt current-ast current format options)
         branch-diffblocks [income-diffblocks current-diffblocks]
         merged (.mergeBlocks merger (bean/->js base-diffblocks) (bean/->js branch-diffblocks))
+        ;; For extracting diff-merge test cases
+        ;; _ (prn "input:")
+        ;; _ (prn (js/JSON.stringify (bean/->js base-diffblocks)))
+        ;; _ (prn (js/JSON.stringify (bean/->js branch-diffblocks)))
+        ;; _ (prn "logseq diff merge version: " version)
+        ;; _ (prn "output:")
+        ;; _ (prn (js/JSON.stringify merged))
         merged-diff (bean/->clj merged)
         merged-content (rebuild-content base-diffblocks merged-diff format)]
     merged-content))

+ 36 - 28
src/test/frontend/fs/diff_merge_test.cljs

@@ -1,13 +1,13 @@
 (ns frontend.fs.diff-merge-test
-  (:require [cljs.test :refer [deftest are is]]
-            [logseq.db :as ldb]
-            [logseq.graph-parser :as graph-parser]
-            [logseq.graph-parser.text :as text]
+  (:require [cljs-bean.core :as bean]
+            [cljs.test :refer [are deftest is]]
+            [frontend.db.conn :as conn]
             [frontend.fs.diff-merge :as fs-diff]
             [frontend.handler.common.file :as file-common-handler]
-            [frontend.db.conn :as conn]
+            [logseq.db :as ldb]
+            [logseq.graph-parser :as graph-parser]
             [logseq.graph-parser.mldoc :as gp-mldoc]
-            [cljs-bean.core :as bean]))
+            [logseq.graph-parser.text :as text]))
 
 (defn test-db->diff-blocks
   "A hijacked version of db->diff-blocks for testing.
@@ -29,18 +29,18 @@
 :ID:       72289d9a-eb2f-427b-ad97-b605a4b8c59b
 :END:
 #+tItLe: Well parsed!"
-[{:body ":PROPERTIES:\n:ID:       72289d9a-eb2f-427b-ad97-b605a4b8c59b\n:END:\n#+tItLe: Well parsed!" 
-  :uuid "72289d9a-eb2f-427b-ad97-b605a4b8c59b" 
+[{:body ":PROPERTIES:\n:ID:       72289d9a-eb2f-427b-ad97-b605a4b8c59b\n:END:\n#+tItLe: Well parsed!"
+  :uuid "72289d9a-eb2f-427b-ad97-b605a4b8c59b"
   :level 1}]
-    
+
     "#+title: Howdy"
     [{:body "#+title: Howdy" :uuid nil :level 1}]
-    
+
     ":PROPERTIES:
 :fiction: [[aldsjfklsda]]
 :END:\n#+title: Howdy"
-    [{:body ":PROPERTIES:\n:fiction: [[aldsjfklsda]]\n:END:\n#+title: Howdy" 
-      :uuid nil 
+    [{:body ":PROPERTIES:\n:fiction: [[aldsjfklsda]]\n:END:\n#+title: Howdy"
+      :uuid nil
       :level 1}]))
 
 (deftest db<->ast-diff-blocks-test
@@ -85,7 +85,7 @@
 \t\t\t- nice
 \t\t\t- bingo
 \t\t\t- world"
-  [{:body "## hello" :uuid nil :level 2}
+  [{:body "## hello" :uuid nil :level 1}
    {:body "world" :uuid nil :level 2}
    {:body "nice" :uuid nil :level 3}
    {:body "nice" :uuid nil :level 4}
@@ -103,20 +103,20 @@
 \t- i
 - j"
   [{:body "# a" :uuid nil :level 1}
-   {:body "## b" :uuid nil :level 2}
-   {:body "### c" :uuid nil :level 3}
-   {:body "#### d" :uuid nil :level 4}
-   {:body "### e" :uuid nil :level 3}
+   {:body "## b" :uuid nil :level 1}
+   {:body "### c" :uuid nil :level 1}
+   {:body "#### d" :uuid nil :level 1}
+   {:body "### e" :uuid nil :level 1}
    {:body "f" :uuid nil :level 1}
    {:body "g" :uuid nil :level 2}
    {:body "h" :uuid nil :level 3}
    {:body "i" :uuid nil :level 2}
    {:body "j" :uuid nil :level 1}]
-  
+
     "- a\n  id:: 63e25526-3612-4fb1-8cf9-f66db1254a58
 \t- b
 \t\t- c"
-[{:body "a\nid:: 63e25526-3612-4fb1-8cf9-f66db1254a58" 
+[{:body "a\nid:: 63e25526-3612-4fb1-8cf9-f66db1254a58"
   :uuid "63e25526-3612-4fb1-8cf9-f66db1254a58" :level 1}
  {:body "b" :uuid nil :level 2}
  {:body "c" :uuid nil :level 3}]))
@@ -142,10 +142,10 @@
     ;; See https://github.com/logseq/diff-merge#usage
     [[]
      [[-1 {:body "## hello"
-          :level 2
+          :level 1
           :uuid nil}]
       [1  {:body "## Halooooo"
-          :level 2
+          :level 1
           :uuid nil}]]
      [[0 {:body "world"
          :level 2
@@ -162,7 +162,7 @@
      [[0 {:body "world"
          :level 4
          :uuid nil}]]]
-    
+
     "## hello
 \t- world
 \t  id:: 63e25526-3612-4fb1-8cf9-abcd12354abc
@@ -180,10 +180,10 @@
 ;; See https://github.com/logseq/diff-merge#usage
 [[]
  [[-1 {:body "## hello"
-       :level 2
+       :level 1
        :uuid nil}]
   [1  {:body "## Halooooo"
-       :level 2
+       :level 1
        :uuid nil}]
   [1 {:body "world"
       :level 2
@@ -234,7 +234,7 @@
 
       "bar"
       [{:body "ghi\nid:: 11451411-1111-1111-1111-111111111111" :uuid  "11451411-1111-1111-1111-111111111111" :level 1}
-       {:body "jkl\nid:: 63241234-1234-1234-1234-123412341234" :uuid  "63241234-1234-1234-1234-123412341234" :level 2}]) 
+       {:body "jkl\nid:: 63241234-1234-1234-1234-123412341234" :uuid  "63241234-1234-1234-1234-123412341234" :level 2}])
 
     (are [page-name text new-uuids] (= (let [old-blks (test-db->diff-blocks conn page-name)
                                              new-blks (text->diffblocks text)
@@ -271,7 +271,7 @@
     [[["Properties" [["TiTlE" "Howdy" []]]] nil]]
     "#+title: Howdy"
     [{:body "#+title: Howdy", :level 1, :uuid nil}])
-  
+
   (are [ast text diff-blocks]
        (= (fs-diff/ast->diff-blocks ast text :org {:block-pattern "-" :user-config {:property-pages/enabled? true}})
           diff-blocks)
@@ -349,7 +349,7 @@
       foo-new-content
       "foo-persist"
       (fn [db-uuids] (conj db-uuids nil))
-      
+
       ;; Prepend a new line to bar
       (gp-mldoc/->edn new-bar-content (gp-mldoc/default-config :markdown))
       new-bar-content
@@ -379,7 +379,7 @@
 (deftest test-remove-indentation-spaces
   (is (= "" (gp-mldoc/remove-indentation-spaces "" 0 false)))
   (is (= "" (gp-mldoc/remove-indentation-spaces "" 3 true)))
-  
+
   (is (= "- nice\n  happy" (gp-mldoc/remove-indentation-spaces "\t\t\t- nice\n\t\t\t  happy" 3 true)))
   (is (= "\t\t\t- nice\n  happy" (gp-mldoc/remove-indentation-spaces "\t\t\t- nice\n\t\t\t  happy" 3 false)))
   (is (= "\t\t\t- nice\n\t\t\t  happy" (gp-mldoc/remove-indentation-spaces "\t\t\t- nice\n\t\t\t  happy" 0 true))))
@@ -389,3 +389,11 @@
   (is (= "nice\n\t\t\t  good" (text/remove-level-spaces "\t\t\t- nice\n\t\t\t  good" :markdown "-")))
   (is (= "- nice" (text/remove-level-spaces "\t\t\t- nice" :markdown "")))
   (is (= "nice" (text/remove-level-spaces "\t\t\t- nice" :markdown "-"))))
+
+(deftest test-three-way-merge
+  (is (= (fs-diff/three-way-merge
+          "- a\n  id:: 648ab5e6-5e03-4c61-95d4-dd904a0a007f\n- b"
+          "- a\n  id:: 648ab5e6-5e03-4c61-95d4-dd904a0a007f\n  aaa:: 111\n- b"
+          "- c"
+          :markdown)
+         "- a\n  id:: 648ab5e6-5e03-4c61-95d4-dd904a0a007f\n  aaa:: 111\n- c")))

+ 5 - 3
src/test/frontend/fs/sync_test.cljs

@@ -27,17 +27,19 @@
     #{(sync/->FileMetadata 1 2 "3" 4 5 nil nil nil)}
     #{(sync/->FileMetadata 1 2 "3" 4 5 nil nil nil)}
 
-    #{}
+    #{(sync/->FileMetadata 1 2 "3" 4 5 nil nil nil)}
     #{(sync/->FileMetadata 1 2 "3" 4 5 nil nil nil)}
     #{(sync/->FileMetadata 1 22 "3" 4 6 nil nil nil)}
 
     #{(sync/->FileMetadata 1 2 "3" 4 5 nil nil nil)}
     #{(sync/->FileMetadata 1 2 "3" 4 5 nil nil nil)}
-    #{(sync/->FileMetadata 1 22 "3" 4 4 nil nil nil) (sync/->FileMetadata 1 22 "3" 44 5 nil nil nil)}
+    #{(sync/->FileMetadata 1 22 "3" 4 4 nil nil nil) 
+      (sync/->FileMetadata 1 22 "3" 44 5 nil nil nil)}
 
     #{}
     #{(sync/->FileMetadata 1 2 "3" 4 5 nil nil nil)}
-    #{(sync/->FileMetadata 1 2 "3" 4 4 nil nil nil) (sync/->FileMetadata 1 2 "3" 4 6 nil nil nil)}
+    #{(sync/->FileMetadata 1 2 "3" 4 4 nil nil nil) 
+      (sync/->FileMetadata 1 2 "3" 4 6 nil nil nil)}
 
     )
   )

+ 4 - 4
yarn.lock

@@ -492,10 +492,10 @@
   resolved "https://registry.yarnpkg.com/@logseq/capacitor-file-sync/-/capacitor-file-sync-0.0.30.tgz#9441ad5689f6139acbc7444530b11e0648a586b3"
   integrity sha512-rrk4CdSyS8y1M3WgqkFtdtoP3YWRhuaaQOPtO18roOTztbwdu/w7/+uEt7RDVcV92rwCjhCeg4yaTxbmgWwFYw==
 
-"@logseq/diff-merge@^0.0.3":
-  version "0.0.3"
-  resolved "https://registry.yarnpkg.com/@logseq/diff-merge/-/diff-merge-0.0.3.tgz#bf60de2142d95b8343d7420914f9558b003a09e6"
-  integrity sha512-/2fwGWK9GXM1zHq4+GUToTT5eyYWo+A4IzRDIU+Rsp9mlEfeWcUBFkGR0YHRgxAL16X1F1pp+B2OKQ0CXuGYqQ==
+"@logseq/diff-merge@0.1.0":
+  version "0.1.0"
+  resolved "https://registry.yarnpkg.com/@logseq/diff-merge/-/diff-merge-0.1.0.tgz#fca282e3ff7c256a1f447d0463d78fb23ebee1d9"
+  integrity sha512-VNAJI7Mo/xHEw2LN6rpoWf/BbVfsC1wRpyyLbvm1jQbRxcwRgqYwWkSIVS0t1wswquDS64ZolJkCIFXeNXQbTA==
 
 "@logseq/[email protected]":
   version "1.3.1-1"