public static IVault ImportFrom(this IVault target, IVault source, CollisionHandling collisionHandling) { var cloneOfRoot = source.Root.Clone(); target.Root.SetEntireMetadata(cloneOfRoot.Metadata); cloneOfRoot.GetBranches().ForEach(b => target.ImportBranch(b, collisionHandling)); ((Branch)cloneOfRoot).GetValues(ValueKind.Regular).ForEach(v => target.ImportValue(v, collisionHandling != CollisionHandling.Error)); ((Branch)cloneOfRoot).GetValues(ValueKind.Internal).ForEach(v => target.ImportValue(v, true)); return(target); }