def has_changes(self): if not self.head: return True else: newest_tree = self.head.root_node Node.prefetch_trees(self.working_copy, newest_tree) return not self.working_copy.trees_equal(newest_tree)
def delete(self): commits = self.get_history_list() # break the circular reference self.head = None self.save() # Commits can share trees (it happens when reverting), so collect them # in a set in order to only delete them once. trees_to_delete = set([self.working_copy]) for commit in commits: trees_to_delete.add(commit.root_node) commit.delete() super(VersionTracker, self).delete() for root_node in trees_to_delete: Node.get_tree(root_node).update(is_frozen=False) root_node.content.delete()