(self, dependent_rev, recurse=None)
Find all dependencies of the given revision, recursively traversing
        the dependency tree if requested.
Find all dependencies of the given revision, recursively traversing
        the dependency tree if requested.
Find all dependencies of the given revision recursively traversing the dependency tree if requested .
def find_dependencies(self, dependent_rev, recurse=None):
        """Find all dependencies of the given revision, recursively traversing
        the dependency tree if requested.
        """
        if recurse is None:
            recurse = self.options.recurse

        try:
            dependent = self.get_commit(dependent_rev)
        except InvalidCommitish as e:
            abort(e.message())

        self.todo.append(dependent)
        self.todo_d[dependent.hex] = True

        first_time = True

        while self.todo:
            sha1s = [commit.hex[:8] for commit in self.todo]
            if first_time:
                self.logger.info("Initial TODO list: %s" % " ".join(sha1s))
                first_time = False
            else:
                self.logger.info("  TODO list now: %s" % " ".join(sha1s))
            dependent = self.todo.pop(0)
            dependent_sha1 = dependent.hex
            del self.todo_d[dependent_sha1]
            self.logger.info("  Processing %s from TODO list" %
                             dependent_sha1[:8])

            if dependent_sha1 in self.done_d:
                self.logger.info("  %s already done previously" %
                                 dependent_sha1)
                continue

            self.notify_listeners('new_commit', dependent)

            parent = dependent.parents[0]
            self.find_dependencies_with_parent(dependent, parent)
            self.done.append(dependent_sha1)
            self.done_d[dependent_sha1] = True
            self.logger.info("  Found all dependencies for %s" %
                             dependent_sha1[:8])
            # A commit won't have any dependencies if it only added new files
            dependencies = self.dependencies.get(dependent_sha1, {})
            self.notify_listeners('dependent_done', dependent, dependencies)

        self.logger.info("Finished processing TODO list")
        self.notify_listeners('all_done')
def find_dependencies ( self , dependent_rev , recurse = None ) : if recurse is None : recurse = self . options . recurse try : dependent = self . get_commit ( dependent_rev ) except InvalidCommitish as e : abort ( e . message ( ) ) self . todo . append ( dependent ) self . todo_d [ dependent . hex ] = True first_time = True while self . todo : sha1s = [ commit . hex [ : 8 ] for commit in self . todo ] if first_time : self . logger . info ( "Initial TODO list: %s" % " " . join ( sha1s ) ) first_time = False else : self . logger . info ( "  TODO list now: %s" % " " . join ( sha1s ) ) dependent = self . todo . pop ( 0 ) dependent_sha1 = dependent . hex del self . todo_d [ dependent_sha1 ] self . logger . info ( "  Processing %s from TODO list" % dependent_sha1 [ : 8 ] ) if dependent_sha1 in self . done_d : self . logger . info ( "  %s already done previously" % dependent_sha1 ) continue self . notify_listeners ( 'new_commit' , dependent ) parent = dependent . parents [ 0 ] self . find_dependencies_with_parent ( dependent , parent ) self . done . append ( dependent_sha1 ) self . done_d [ dependent_sha1 ] = True self . logger . info ( "  Found all dependencies for %s" % dependent_sha1 [ : 8 ] ) # A commit won't have any dependencies if it only added new files dependencies = self . dependencies . get ( dependent_sha1 , { } ) self . notify_listeners ( 'dependent_done' , dependent , dependencies ) self . logger . info ( "Finished processing TODO list" ) self . notify_listeners ( 'all_done' )