def __init__(self, repos, sha): if sha is None: raise NoSuchChangeset(sha) try: msg, props = repos.git.read_commit(sha) except PyGIT.GitErrorSha: raise NoSuchChangeset(sha) self.props = props assert 'children' not in props _children = list(repos.git.children(sha)) if _children: props['children'] = _children # use 1st author/committer as changeset owner/timestamp if repos._use_committer_time: _, time_ = _parse_user_time(props['committer'][0]) else: _, time_ = _parse_user_time(props['author'][0]) if repos._use_committer_id: user_, _ = _parse_user_time(props['committer'][0]) else: user_, _ = _parse_user_time(props['author'][0]) # try to resolve email address to trac uid user_ = repos.rlookup_uid(user_) or user_ Changeset.__init__(self, repos, rev=sha, message=msg, author=user_, date=time_)
def normalize_rev(self, rev): if rev is None or rev == '': return self.youngest_rev try: nrev = int(rev) except: raise NoSuchChangeset(rev) else: if not (1 <= nrev <= self.youngest_rev) or nrev % 3 != 1: raise NoSuchChangeset(rev) return nrev
def normalize_rev(self, rev): if not rev: return self.get_youngest_rev() normrev = self.git.verifyrev(rev) if normrev is None: raise NoSuchChangeset(rev) return normrev
def previous_rev(self, rev): self._log.debug('previous_rev(%r)' % rev) if not isinstance(rev, int): rev = self.short_rev(rev) if not isinstance(rev, int): raise NoSuchChangeset(rev) from p4trac.repos import _P4ChangesOutputConsumer output = _P4ChangesOutputConsumer(self._repos) self._connection.run('changes', '-l', '-s', 'submitted', '-m', '1', '@<%i' % rev, output=output) if output.errors: from p4trac.repos import PerforcError raise PerforcError(output.errors) if output.changes: return max(output.changes) else: return None
def __init__(self, repos, sha): if sha is None: raise NoSuchChangeset(sha) try: msg, props = repos.git.read_commit(sha) except PyGIT.GitErrorSha: raise NoSuchChangeset(sha) self.props = props assert 'children' not in props _children = list(repos.git.children(sha)) if _children: props['children'] = _children committer, author = self._get_committer_and_author() # use 1st author/committer as changeset owner/timestamp c_user = a_user = c_time = a_time = None if committer: c_user, c_time = _parse_user_time(committer) if author: a_user, a_time = _parse_user_time(author) if repos.use_committer_time: time = c_time or a_time else: time = a_time or c_time if repos.use_committer_id: user = c_user or a_user else: user = a_user or c_user # try to resolve email address to trac uid user = repos.rlookup_uid(user) or user Changeset.__init__(self, repos, rev=sha, message=msg, author=user, date=time)
def get_properties(self): import p4trac.repos try: yield ('client', self._changelist.client, False, False ) except p4trac.repos.NoSuchChangelist, e: raise NoSuchChangeset(e.change)
def _normrev(self, rev): if not rev: raise NoSuchChangeset(rev) if self.resolve: return self.repos.normalize_rev(rev) elif self.repos.has_linear_changesets: try: return int(rev) except (ValueError, TypeError): return rev else: return rev
def __init__(self, git, sha): self.git = git try: (msg, props) = git.read_commit(sha) except PyGIT.GitErrorSha: raise NoSuchChangeset(sha) self.props = props assert 'children' not in props _children = list(git.children(sha)) if _children: props['children'] = _children # use 1st committer as changeset owner/timestamp (user_, time_) = _parse_user_time(props['committer'][0]) Changeset.__init__(self, sha, msg, user_, time_)
def get_properties(self): import p4trac.repos try: results = self._repos._connection.run('fixes', '-c', str(self._change)) if results.errors: raise PerforceError(results.errors) fixes = '' print results.records for record in results.records: tktid = int(record['Job'][self._job_prefix_length:]) fixes += '#%d ' % tktid if fixes != '': yield ('Tickets', fixes, True, 'message') except p4trac.repos.NoSuchChangelist, e: raise NoSuchChangeset(e.change)
def get_changeset(rev): raise NoSuchChangeset(rev)
def _get_rev(self): import p4trac.repos try: return self._change except p4trac.repos.NoSuchChangelist, e: raise NoSuchChangeset(e.change)
def _get_author(self): import p4trac.repos try: return self._changelist.user except p4trac.repos.NoSuchChangelist, e: raise NoSuchChangeset(e.change)
def _get_message(self): import p4trac.repos try: return self._changelist.description except p4trac.repos.NoSuchChangelist, e: raise NoSuchChangeset(e.change)
def get_changeset(rev): if rev == 'invalid': raise NoSuchChangeset(rev) return Mock(Changeset, repos, rev, 'message', 'author', datetime.datetime(2001, 1, 1, tzinfo=utc))