     // must preserve.
     func mergeNode(guid: GUID, localNode: BookmarkTreeNode?, mirrorNode: BookmarkTreeNode?, remoteNode: BookmarkTreeNode?) throws -> MergedTreeNode {
         if let localGUID = localNode?.recordGUID {
-            log.debug("Merging nodes with GUID \(guid). Local match is \(localGUID).")
+            log.verbose("Merging nodes with GUID \(guid). Local match is \(localGUID).")
         } else {
-            log.debug("Merging nodes with GUID \(guid). No local match.")
+            log.verbose("Merging nodes with GUID \(guid). No local match.")
         }
 
         // TODO: if the local node has a different GUID, it's because we did a value-based

                log.debug("Both local and remote changes to mirror item \(guid). Resolving conflict.")
                return try self.threeWayMerge(guid, localNode: loc, remoteNode: rem, mirrorNode: mirrorNode)
            }
            log.debug("Local-only change to mirror item \(guid).")
            return try takeLocalAndMergeChildren(loc, mirror: mirrorNode)
        }

        if let rem = remoteNode where !rem.isUnknown {
            log.debug("Remote-only change to mirror item \(guid).")
            return try takeRemoteAndMergeChildren(rem, mirror: mirrorNode)
        }

        log.debug("Record \(guid) didn't change from mirror.")
        return try takeMirrorNode(mirrorNode)
    }


            }

            // Node only exists remotely. Take it.
            log.verbose("Node \(guid) only exists remotely.")
            return try takeRemoteAndMergeChildren(rem)
        }

