Пример #1
0
    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_)
Пример #2
0
 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
Пример #3
0
 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
Пример #4
0
    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
Пример #5
0
    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)
Пример #6
0
 def get_properties(self):
     import p4trac.repos
     try:
         yield ('client',
                self._changelist.client,
                False,
                False
                )
     except p4trac.repos.NoSuchChangelist, e:
         raise NoSuchChangeset(e.change)
Пример #7
0
 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
Пример #8
0
        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_)
Пример #9
0
    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)
Пример #10
0
 def get_changeset(rev):
     raise NoSuchChangeset(rev)
Пример #11
0
 def _get_rev(self):
     import p4trac.repos
     try:
         return self._change
     except p4trac.repos.NoSuchChangelist, e:
         raise NoSuchChangeset(e.change)
Пример #12
0
 def _get_author(self):
     import p4trac.repos
     try:
         return self._changelist.user
     except p4trac.repos.NoSuchChangelist, e:
         raise NoSuchChangeset(e.change)
Пример #13
0
 def _get_message(self):
     import p4trac.repos
     try:
         return self._changelist.description
     except p4trac.repos.NoSuchChangelist, e:
         raise NoSuchChangeset(e.change)
Пример #14
0
 def get_changeset(rev):
     if rev == 'invalid':
         raise NoSuchChangeset(rev)
     return Mock(Changeset, repos, rev, 'message', 'author',
                 datetime.datetime(2001, 1, 1, tzinfo=utc))