Example #1
0
File: hg.py Project: lukaszb/vcs
    def branches(self):
        """
        Get's branches for this repository
        """

        if self._empty:
            return {}

        def _branchtags(localrepo):
            """
            Patched version of mercurial branchtags to not return the closed
            branches

            :param localrepo: locarepository instance
            """

            bt = {}
            for bn, heads in localrepo.branchmap().iteritems():
                tip = heads[-1]
                if "close" not in localrepo.changelog.read(tip)[5]:
                    bt[bn] = tip
            return bt

        sortkey = lambda ctx: ctx[0]  # sort by name
        _branches = [(safe_unicode(n), hex(h)) for n, h in _branchtags(self._repo).items()]

        return OrderedDict(sorted(_branches, key=sortkey, reverse=False))
Example #2
0
 def description(self):
     undefined_description = u'unknown'
     return safe_unicode(
         self._repo.ui.config('web',
                              'description',
                              undefined_description,
                              untrusted=True))
Example #3
0
 def name(self):
     """
     Returns name of the node so if its path
     then only last part is returned.
     """
     org = safe_unicode(self.path.rstrip('/').split('/')[-1])
     return u'%s @ %s' % (org, self.changeset.short_id)
Example #4
0
 def description(self):
     undefined_description = u'unknown'
     description_path = os.path.join(self.path, '.git', 'description')
     if os.path.isfile(description_path):
         return safe_unicode(open(description_path).read())
     else:
         return undefined_description
Example #5
0
    def branch(self):

        heads = self.repository._heads(reverse=False)

        ref = heads.get(self.raw_id)
        if ref:
            return safe_unicode(ref)
Example #6
0
    def branch(self):

        heads = self.repository._heads(reverse=False)

        ref = heads.get(self.raw_id)
        if ref:
            return safe_unicode(ref)
Example #7
0
 def name(self):
     """
     Returns name of the node so if its path
     then only last part is returned.
     """
     org = safe_unicode(self.path.rstrip('/').split('/')[-1])
     return u'%s @ %s' % (org, self.changeset.short_id)
Example #8
0
    def __init__(self, repository, revision):
        self._stat_modes = {}
        self.repository = repository
        self.raw_id = revision
        self.revision = repository.revisions.index(revision)

        self.short_id = self.raw_id[:12]
        self.id = self.raw_id
        try:
            commit = self.repository._repo.get_object(self.raw_id)
        except KeyError:
            raise RepositoryError("Cannot get object with id %s" % self.raw_id)
        self._commit = commit
        self._tree_id = commit.tree

        try:
            self.message = safe_unicode(commit.message[:-1])
            # Always strip last eol
        except UnicodeDecodeError:
            self.message = commit.message[:-1].decode(commit.encoding
                or 'utf-8')
        #self.branch = None
        self.tags = []
        #tree = self.repository.get_object(self._tree_id)
        self.nodes = {}
        self._paths = {}
Example #9
0
    def _get_bookmarks(self):
        if self._empty:
            return {}

        sortkey = lambda ctx: ctx[0]  # sort by name
        _bookmarks = [(safe_unicode(n), hex(h),) for n, h in
                 self._repo._bookmarks.items()]
        return OrderedDict(sorted(_bookmarks, key=sortkey, reverse=True))
    def _get_bookmarks(self):
        if self._empty:
            return {}

        sortkey = lambda ctx: ctx[0]  # sort by name
        _bookmarks = [(safe_unicode(n), hex(h),) for n, h in
                 self._repo._bookmarks.items()]
        return OrderedDict(sorted(_bookmarks, key=sortkey, reverse=True))
Example #11
0
 def description(self):
     idx_loc = '' if self.bare else '.git'
     undefined_description = u'unknown'
     description_path = os.path.join(self.path, idx_loc, 'description')
     if os.path.isfile(description_path):
         return safe_unicode(open(description_path).read())
     else:
         return undefined_description
Example #12
0
    def content(self):
        """
        Returns lazily content of the FileNode. If possible, would try to
        decode content from UTF-8.
        """
        content = self._get_content()

        if bool(content and '\0' in content):
            return content
        return safe_unicode(content)
Example #13
0
    def content(self):
        """
        Returns lazily content of the FileNode. If possible, would try to
        decode content from UTF-8.
        """
        content = self._get_content()

        if bool(content and '\0' in content):
            return content
        return safe_unicode(content)
Example #14
0
    def content(self):
        """
        Returns lazily content of the FileNode. If possible, would try to
        decode content from UTF-8.
        """
        if self.changeset:
            content = self.changeset.get_file_content(self.path)
        else:
            content = self._content

        if bool(content and '\0' in content):
            return content
        return safe_unicode(content)
Example #15
0
    def branch(self):
        # TODO: Cache as we walk (id <-> branch name mapping)
        refs = self.repository._repo.get_refs()
        heads = [(key[len('refs/heads/'):], val) for key, val in refs.items()
            if key.startswith('refs/heads/')]

        for name, id in heads:
            walker = self.repository._repo.object_store.get_graph_walker([id])
            while True:
                id = walker.next()
                if not id:
                    break
                if id == self.id:
                    return safe_unicode(name)
        raise ChangesetError("This should not happen... Have you manually "
            "change id of the changeset?")
Example #16
0
    def _get_branches(self, closed=False):
        """
        Get's branches for this repository
        Returns only not closed branches by default

        :param closed: return also closed branches for mercurial
        """

        if self._empty:
            return {}

        def _branchtags(localrepo):
            """
            Patched version of mercurial branchtags to not return the closed
            branches

            :param localrepo: locarepository instance
            """

            bt = {}
            bt_closed = {}
            for bn, heads in localrepo.branchmap().iteritems():
                tip = heads[-1]
                if 'close' in localrepo.changelog.read(tip)[5]:
                    bt_closed[bn] = tip
                else:
                    bt[bn] = tip

            if closed:
                bt.update(bt_closed)
            return bt

        sortkey = lambda ctx: ctx[0]  # sort by name
        _branches = [(
            safe_unicode(n),
            hex(h),
        ) for n, h in _branchtags(self._repo).items()]

        return OrderedDict(sorted(_branches, key=sortkey, reverse=False))
    def _get_branches(self, closed=False):
        """
        Get's branches for this repository
        Returns only not closed branches by default

        :param closed: return also closed branches for mercurial
        """

        if self._empty:
            return {}

        def _branchtags(localrepo):
            """
            Patched version of mercurial branchtags to not return the closed
            branches

            :param localrepo: locarepository instance
            """

            bt = {}
            bt_closed = {}
            for bn, heads in localrepo.branchmap().iteritems():
                tip = heads[-1]
                if 'close' in localrepo.changelog.read(tip)[5]:
                    bt_closed[bn] = tip
                else:
                    bt[bn] = tip

            if closed:
                bt.update(bt_closed)
            return bt

        sortkey = lambda ctx: ctx[0]  # sort by name
        _branches = [(safe_unicode(n), hex(h),) for n, h in
                     _branchtags(self._repo).items()]

        return OrderedDict(sorted(_branches, key=sortkey, reverse=False))
Example #18
0
 def line_decoder(l):
     if l.startswith('+') and not l.startswith('+++'):
         self.adds += 1
     elif l.startswith('-') and not l.startswith('---'):
         self.removes += 1
     return safe_unicode(l)
Example #19
0
 def line_decoder(l):
     if l.startswith('+') and not l.startswith('+++'):
         self.adds += 1
     elif l.startswith('-') and not l.startswith('---'):
         self.removes += 1
     return safe_unicode(l)
 def description(self):
     undefined_description = u'unknown'
     return safe_unicode(self._repo.ui.config('web', 'description',
                                undefined_description, untrusted=True))
 def contact(self):
     undefined_contact = u'Unknown'
     return safe_unicode(get_contact(self._repo.ui.config)
                         or undefined_contact)
Example #22
0
 def author(self):
     return safe_unicode(self._ctx.user())
Example #23
0
 def branch(self):
     return safe_unicode(self._ctx.branch())
Example #24
0
 def message(self):
     return safe_unicode(self._ctx.description())
Example #25
0
 def author(self):
     return safe_unicode(getattr(self._commit, self._author_property))
Example #26
0
 def author(self):
     return safe_unicode(self._ctx.user())
Example #27
0
 def name(self):
     """
     Returns name of the node so if its path
     then only last part is returned.
     """
     return safe_unicode(self.path.rstrip('/').split('/')[-1])
Example #28
0
 def committer(self):
     return safe_unicode(getattr(self._commit, self._committer_property))
Example #29
0
 def committer(self):
     return safe_unicode(self.author)
Example #30
0
 def author(self):
     return safe_unicode(self._commit.committer)
Example #31
0
 def message(self):
     return safe_unicode(self._commit.message)
Example #32
0
 def author(self):
     return safe_unicode(getattr(self._commit, self._author_property))
Example #33
0
 def committer(self):
     return safe_unicode(getattr(self._commit, self._committer_property))
Example #34
0
 def name(self):
     """
     Returns name of the node so if its path
     then only last part is returned.
     """
     return safe_unicode(self.path.rstrip('/').split('/')[-1])
Example #35
0
 def line_decoder(l):
     if l.startswith("+") and not l.startswith("+++"):
         self.adds += 1
     elif l.startswith("-") and not l.startswith("---"):
         self.removes += 1
     return safe_unicode(l)
Example #36
0
 def unicode_path(self):
     return safe_unicode(self.path)
Example #37
0
 def branch(self):
     return safe_unicode(self._ctx.branch())
Example #38
0
 def unicode_path(self):
     return safe_unicode(self.path)
Example #39
0
 def message(self):
     return safe_unicode(self._ctx.description())
Example #40
0
 def committer(self):
     return safe_unicode(self.author)
Example #41
0
 def contact(self):
     undefined_contact = u'Unknown'
     return safe_unicode(get_contact(self._repo.ui.config)
                         or undefined_contact)
Example #42
0
 def message(self):
     return safe_unicode(self._commit.message)