code: def _get_branches(self, closed=False):
          
  
          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))
docs: Get's branches for this repository
          Returns only not closed branches by default
  
          :param closed: return also closed branches for mercurial