def next(self): if self._cached: try: self._idx += 1 return self._topo_list[self._idx] except IndexError: self._idx = -1 raise StopIteration if self._proc is None: ref_args = utils.shell_split(self.ctx.ref) cmd = self._cmd + ['-%d' % self.ctx.count] + ref_args self._proc = core.start_command(cmd) self._topo_list = [] log_entry = core.readline(self._proc.stdout).rstrip() if not log_entry: self._cached = True self._proc.wait() self.returncode = self._proc.returncode self._proc = None raise StopIteration sha1 = log_entry[:40] try: return self._objects[sha1] except KeyError: c = CommitFactory.new(log_entry=log_entry) self._objects[c.sha1] = c self._topo_list.append(c) return c
def next(self): if self._cached: try: self._idx += 1 return self._topo_list[self._idx] except IndexError: self._idx = -1 raise StopIteration if self._proc is None: ref_args = utils.shell_split(self.dag.ref) cmd = self._cmd + ['-%d' % self.dag.count] + ref_args self._proc = utils.start_command(cmd) self._topo_list = [] log_entry = core.readline(self._proc.stdout).rstrip() if not log_entry: del self._proc self._cached = True self._proc = None raise StopIteration sha1 = log_entry[:40] try: return self._objects[sha1] except KeyError: c = CommitFactory.new(log_entry=log_entry) self._objects[c.sha1] = c self._topo_list.append(c) return c