예제 #1
0
 def branches(self):
     if not self.revisions:
         return {}
     sortkey = lambda ctx: ctx[0]
     _branches = [(x[0], x[1][0])
                  for x in self._parsed_refs.iteritems() if x[1][1] == 'H']
     return OrderedDict(sorted(_branches, key=sortkey, reverse=False))
예제 #2
0
    def _get_tags(self):
        if not self.revisions:
            return {}

        sortkey = lambda ctx: ctx[0]
        _tags = [(x[0], x[1][0])
                 for x in self._parsed_refs.iteritems() if x[1][1] == 'T']
        return OrderedDict(sorted(_tags, key=sortkey, reverse=True))
예제 #3
0
 def _get_tags(self):
     if not self.revisions:
         return {}
     sortkey = lambda ctx: ctx[0]
     _tags = [('/'.join(ref.split('/')[2:]), head)
              for ref, head in self._repo.get_refs().items()
              if ref.startswith('refs/tags/')]
     return OrderedDict(sorted(_tags, key=sortkey, reverse=True))
예제 #4
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))
예제 #5
0
 def branches(self):
     if not self.revisions:
         return {}
     refs = self._repo.refs.as_dict()
     sortkey = lambda ctx: ctx[0]
     _branches = [
         ('/'.join(ref.split('/')[2:]), head) for ref, head in refs.items()
         if ref.startswith('refs/heads/') and not ref.endswith('/HEAD')
     ]
     return OrderedDict(sorted(_branches, key=sortkey, reverse=False))
예제 #6
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))