'Link all files in src into dest, creating directories
if necessary.'

def merge(self, dest_root, **kwargs):

    kwargs['order'] = 'pre'
    for (src, dest) in traverse_tree(self._root, dest_root, **kwargs):
        if os.path.isdir(src):
            if (not os.path.exists(dest)):
                mkdirp(dest)
                continue
            if (not os.path.isdir(dest)):
                raise ValueError(('File    blocks    directory:    %s' % dest))
            if (not os.listdir(dest)):
                marker = os.path.join(dest, empty_file_name)
                touch(marker)
        else:
            assert (not os.path.exists(dest))
            os.symlink(src, dest)
