Beispiel #1
0
    def revisions(self, uri):
        """
        revisions at which this file changed
        """
        uri = self.normalized(uri)

        x = self.client
        path = x.path2id(uri)
        if not path:
            raise NoSuchResource(uri)

        from bzrlib.log import LogFormatter

        def get_formatter(lst):
            class ListLogFormatter(LogFormatter):

                supports_merge_revisions = True
                preferred_levels = 1
                supports_delta = True
                supports_tags = True
                supports_diff = True

                def __init__(self, *args, **kw):
                    LogFormatter.__init__(self, *args, **kw)
                    self._loglist = lst

                def log_revision(self, revision):
                    self._loglist.append(int(revision.revno))

            return ListLogFormatter

        from bzrlib.builtins import cmd_log
        from bzrlib.revisionspec import RevisionSpec

        log = cmd_log()
        log.outf = None

        foo = []

        rev = None

        absolute_uri = os.path.join(self.checkout_dir, uri)

        log.run(
            file_list=[absolute_uri],
            revision=rev and [RevisionSpec.from_string(str(rev))] or None,
            log_format=get_formatter(foo),
            verbose=True,
        )

        return foo
Beispiel #2
0
    def revisions(self, uri):
        """
        revisions at which this file changed
        """
        uri = self.normalized(uri)

        x = self.client
        path = x.path2id(uri)
        if not path:
            raise NoSuchResource(uri)

        from bzrlib.log import LogFormatter

        def get_formatter(lst):
            class ListLogFormatter(LogFormatter):

                supports_merge_revisions = True
                preferred_levels = 1
                supports_delta = True
                supports_tags = True
                supports_diff = True

                def __init__(self, *args, **kw):
                    LogFormatter.__init__(self, *args, **kw)
                    self._loglist = lst
                def log_revision(self, revision):
                    self._loglist.append(int(revision.revno))
            return ListLogFormatter

        from bzrlib.builtins import cmd_log
        from bzrlib.revisionspec import RevisionSpec

        log = cmd_log()
        log.outf = None

        foo = []

        rev = None

        absolute_uri = os.path.join(self.checkout_dir, uri)

        log.run(file_list=[absolute_uri],
                revision=rev and [RevisionSpec.from_string(str(rev))] or None,
                log_format = get_formatter(foo),
                verbose=True,
                )

        return foo
Beispiel #3
0
    def log(self, uri, rev=None):
        """
        Return the changelog of data stored at or under @param:uri
        as of time @param:rev in JSON-listing format.
        
        @raise:ResourceUnchanged
        etc.
        """

        from bzrlib.log import LogFormatter

        def get_formatter(lst):
            class ListLogFormatter(LogFormatter):
                def __init__(self, *args, **kw):
                    LogFormatter.__init__(self, *args, **kw)
                    self._loglist = lst
                def log_revision(self, revision):
                    revno = int(revision.revno)
                    author = revision.rev.committer  # @@@ what about get_apparent_authors?
                    message = revision.rev.message.rstrip('\r\n')
                    timestamp = revision.rev.timestamp
                    self._loglist.append(dict(version=revno,
                                              author=author,
                                              message=message,
                                              timestamp=timestamp,
                                              id=uri,
                                              revprops=revision.rev.properties))
            return ListLogFormatter

        from bzrlib.builtins import cmd_log
        from bzrlib.revisionspec import RevisionSpec

        log = cmd_log()
        log.outf = None

        foo = []

        absolute_uri = os.path.join(self.checkout_dir, self.normalized(uri))

        log.run(file_list=[absolute_uri],
                revision=rev and [RevisionSpec.from_string("1"),
                                  RevisionSpec.from_string(str(rev))] or None,
                log_format = get_formatter(foo),
                )

        return [dict(href=uri, fields=i) for i in foo]
Beispiel #4
0
    def log(self, uri, rev=None):
        """
        Return the changelog of data stored at or under @param:uri
        as of time @param:rev in JSON-listing format.
        
        @raise:ResourceUnchanged
        etc.
        """

        from bzrlib.log import LogFormatter

        def get_formatter(lst):
            class ListLogFormatter(LogFormatter):

                supports_merge_revisions = True
                preferred_levels = 1
                supports_delta = True
                supports_tags = True
                supports_diff = True

                def __init__(self, *args, **kw):
                    LogFormatter.__init__(self, *args, **kw)
                    self._loglist = lst
                def log_revision(self, revision):
                    revno = int(revision.revno)

                    try:
                        author = revision.rev.get_apparent_authors()[0]
                    except IndexError:
                        author = revision.rev.committer

                    message = revision.rev.message.rstrip('\r\n')
                    timestamp = revision.rev.timestamp

                    id = uri

                    if revision.delta:
                        changed = [i[0] for i in revision.delta.added] \
                            + [i[0] for i in revision.delta.modified]
                        if not len(changed):
                            return
                        id = changed[-1]

                    self._loglist.append(dict(version=revno,
                                              author=author,
                                              message=message,
                                              timestamp=timestamp,
                                              id=id,
                                              revprops=revision.rev.properties))
            return ListLogFormatter

        from bzrlib.builtins import cmd_log
        from bzrlib.revisionspec import RevisionSpec

        log = cmd_log()
        log.outf = None

        foo = []

        absolute_uri = os.path.join(self.checkout_dir, self.normalized(uri))

        try:
            log.run(file_list=[absolute_uri],
                    revision=rev and [RevisionSpec.from_string("1"),
                                      RevisionSpec.from_string(str(rev))] or None,
                    log_format = get_formatter(foo),
                    verbose=True,
                    )
        except BzrCommandError, e:
            raise NoSuchResource(uri)
Beispiel #5
0
    def log(self, uri, rev=None):
        """
        Return the changelog of data stored at or under @param:uri
        as of time @param:rev in JSON-listing format.
        
        @raise:ResourceUnchanged
        etc.
        """

        from bzrlib.log import LogFormatter

        def get_formatter(lst):
            class ListLogFormatter(LogFormatter):

                supports_merge_revisions = True
                preferred_levels = 1
                supports_delta = True
                supports_tags = True
                supports_diff = True

                def __init__(self, *args, **kw):
                    LogFormatter.__init__(self, *args, **kw)
                    self._loglist = lst

                def log_revision(self, revision):
                    revno = int(revision.revno)

                    try:
                        author = revision.rev.get_apparent_authors()[0]
                    except IndexError:
                        author = revision.rev.committer

                    message = revision.rev.message.rstrip('\r\n')
                    timestamp = revision.rev.timestamp

                    id = uri

                    if revision.delta:
                        changed = [i[0] for i in revision.delta.added] \
                            + [i[0] for i in revision.delta.modified]
                        if not len(changed):
                            return
                        id = changed[-1]

                    self._loglist.append(
                        dict(version=revno,
                             author=author,
                             message=message,
                             timestamp=timestamp,
                             id=id,
                             revprops=revision.rev.properties))

            return ListLogFormatter

        from bzrlib.builtins import cmd_log
        from bzrlib.revisionspec import RevisionSpec

        log = cmd_log()
        log.outf = None

        foo = []

        absolute_uri = os.path.join(self.checkout_dir, self.normalized(uri))

        try:
            log.run(
                file_list=[absolute_uri],
                revision=rev and [
                    RevisionSpec.from_string("1"),
                    RevisionSpec.from_string(str(rev))
                ] or None,
                log_format=get_formatter(foo),
                verbose=True,
            )
        except BzrCommandError, e:
            raise NoSuchResource(uri)