@acquire_lock<EOL><INDENT>def synchronize(self, verbose=False):<DEDENT>
if self.__path is None:<EOL><INDENT>return<EOL><DEDENT>for dirPath in sorted(list(self.walk_directories_relative_path())):<EOL><INDENT>realPath = os.path.join(self.__path, dirPath)<EOL>if os.path.isdir(realPath):<EOL><INDENT>continue<EOL><DEDENT>if verbose: warnings.warn("<STR_LIT>"%realPath)<EOL>keys = dirPath.split(os.sep)<EOL>dirInfoDict = self<EOL>for idx in range(len(keys)-<NUM_LIT:1>):<EOL><INDENT>dirs = dict.get(dirInfoDict, '<STR_LIT>', None)<EOL>if dirs is None: break<EOL>dirInfoDict = dict.get(dirs, keys[idx], None)<EOL>if dirInfoDict is None: break<EOL><DEDENT>if dirInfoDict is not None:<EOL><INDENT>dirs = dict.get(dirInfoDict, '<STR_LIT>', None)<EOL>if dirs is not None:<EOL><INDENT>dict.pop( dirs, keys[-<NUM_LIT:1>], None )<EOL><DEDENT><DEDENT><DEDENT>for filePath in sorted(list(self.walk_files_relative_path())):<EOL><INDENT>realPath = os.path.join(self.__path, filePath)<EOL>if os.path.isfile( realPath ):<EOL><INDENT>continue<EOL><DEDENT>if verbose: warnings.warn("<STR_LIT>"%realPath)<EOL>keys = filePath.split(os.sep)<EOL>dirInfoDict = self<EOL>for idx in range(len(keys)-<NUM_LIT:1>):<EOL><INDENT>dirs = dict.get(dirInfoDict, '<STR_LIT>', None)<EOL>if dirs is None: break<EOL>dirInfoDict = dict.get(dirs, keys[idx], None)<EOL>if dirInfoDict is None: break<EOL><DEDENT>if dirInfoDict is not None:<EOL><INDENT>files = dict.get(dirInfoDict, '<STR_LIT>', None)<EOL>if files is not None:<EOL><INDENT>dict.pop( files, keys[-<NUM_LIT:1>], None )<EOL><DEDENT><DEDENT><DEDENT>
Synchronizes the Repository information with the directory.
All registered but missing files and directories in the directory,
will be automatically removed from the Repository.

:parameters:
    #. verbose (boolean): Whether to be warn and inform about any abnormalities.