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))
def description(self): undefined_description = u'unknown' return safe_unicode( self._repo.ui.config('web', 'description', undefined_description, untrusted=True))
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)
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
def branch(self): heads = self.repository._heads(reverse=False) ref = heads.get(self.raw_id) if ref: return safe_unicode(ref)
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 = {}
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 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
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)
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)
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?")
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))
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)
def author(self): return safe_unicode(self._ctx.user())
def branch(self): return safe_unicode(self._ctx.branch())
def message(self): return safe_unicode(self._ctx.description())
def author(self): return safe_unicode(getattr(self._commit, self._author_property))
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])
def committer(self): return safe_unicode(getattr(self._commit, self._committer_property))
def committer(self): return safe_unicode(self.author)
def author(self): return safe_unicode(self._commit.committer)
def message(self): return safe_unicode(self._commit.message)
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 unicode_path(self): return safe_unicode(self.path)