def check(self, checker): warnings = 0 old_rev = self.initial_revision for current_rev in self.revisions: rev_warnings = 0 directory = tempfile.mkdtemp(suffix='-r' + current_rev, prefix='githooks') self.ui.debug(checker.__name__ + " -> Checking revision " + current_rev) description = git.description(current_rev) if self.skip_text and self.skip_text in description: continue files_to_check = {} revision_files = git.file_names(old_rev, current_rev) for filename in revision_files: if not (filename and filename != ""): continue # TODO check if the file was removed in this changeset filedata = git.file_data(current_rev, filename) if self.skip_text and self.skip_file(filename, filedata): continue full_path = os.path.join(directory, filename) if not os.path.exists(os.path.dirname(full_path)): os.makedirs(os.path.dirname(full_path)) f = open(full_path, 'w') f.write(filedata) f.close() files_to_check[full_path] = filedata if files_to_check: rev_warnings += checker(files_to_check, description) if rev_warnings: self.ui.warn( (checker.__name__ + ' -> %d warnings found in revision ' + current_rev + '\n') % rev_warnings) else: self.ui.debug(checker.__name__ + ' -> No warnings in revision ' + current_rev + ' - Good job!\n') warnings += rev_warnings shutil.rmtree(directory) old_rev = current_rev if warnings: return True # failure else: return False # sucess
def check(self, checker): warnings = 0 old_rev = self.initial_revision for current_rev in self.revisions: rev_warnings = 0 directory = tempfile.mkdtemp(suffix='-r' + current_rev, prefix='githooks') self.ui.debug(checker.__name__ + " -> Checking revision " + current_rev) description = git.description(current_rev) if self.skip_text and self.skip_text in description: continue files_to_check = {} revision_files = git.file_names(old_rev, current_rev) for filename in revision_files: if not(filename and filename != ""): continue # TODO check if the file was removed in this changeset filedata = git.file_data(current_rev, filename) if self.skip_text and self.skip_file(filename, filedata): continue full_path = os.path.join(directory, filename) if not os.path.exists(os.path.dirname(full_path)): os.makedirs(os.path.dirname(full_path)) f = open(full_path, 'w') f.write(filedata) f.close() files_to_check[full_path] = filedata if files_to_check: rev_warnings += checker(files_to_check, description) if rev_warnings: self.ui.warn((checker.__name__ + ' -> %d warnings found in revision ' + current_rev + '\n') % rev_warnings) else: self.ui.debug(checker.__name__ + ' -> No warnings in revision ' + current_rev + ' - Good job!\n') warnings += rev_warnings shutil.rmtree(directory) old_rev = current_rev if warnings: return True # failure else: return False # sucess
def description(self): return git.description(self.rev)