        :name    (last name-segments)})
     {:name (name k)}))
 
+(defn mark-value-as-different [v]
+  (if (empty? v)
+    ""
+    (str "==> " (str/upper-case v))))
+
+(defn uppercase-map [m]
+  (zipmap (keys m)
+          (map mark-value-as-different (vals m))))
+
+(defn unterline-different-values [m]
+  (let [unique-values (->> (vals m)
+                           (filter not-empty)
+                           (set))]
+    (if (= 1 (count unique-values))
+      m
+      (uppercase-map m))))
+
 (defn ->pretty-print-structure [data selector]
   (reduce-kv
    (fn [m k v] (conj m (merge
                         (occurence-map-for k selector)
-                        v)))
+                        (unterline-different-values v))))
    []
    data))
-
-(defn log-resouces-table [m resource-name]
-  (m/info "\n* List of" resource-name)
-  (m/info "     - hash-value (.i.e a3d66)  :  the namespace/resource is defined in the project.clj")
-  (m/info "     - X  :                     :  the namespace/resource does not exist in the project")
-  (pp/print-table (sort-by :name m))
-  (m/info "\n"))
 
 (defn build-resource-table [projects selector render]
   (-> projects

    (update-resource! resource target-project source-project-desc (project-clj-of target-projects-desc target-project)))
  (m/info "*\n****************************************************************\n"))

(defn aggregate [result [namespace project]]
  (let [project-occurence (if (contains? result namespace)
                            (merge-with str project (get result namespace))

   (take (count projects) (repeat initial-value))))

(defn md5-hash
  ([paths] (str/join " | " (map #(md5-hash % hash-length) paths)))
  ([path length]
   (let [hash-value (d/digest "md5" (io/as-file path))
         hash-length (dec (count hash-value))]
