def status(self, ignored=False, clean=False): """Explicit status query Unless this method is used to query the working copy status, the _status property will implicitly read the status using its default arguments.""" stat = self._parsestatus(self._repo.status(change=strtobytes(self), ignored=ignored, clean=clean)) self._unknown = self._ignored = self._clean = None if ignored: self._ignored = stat[5] if clean: self._clean = stat[6] self._status = stat[:4] return stat
def status(self, ignored=False, clean=False): """Explicit status query Unless this method is used to query the working copy status, the _status property will implicitly read the status using its default arguments.""" stat = self._parsestatus( self._repo.status(change=strtobytes(self), ignored=ignored, clean=clean)) self._unknown = self._ignored = self._clean = None if ignored: self._ignored = stat[5] if clean: self._clean = stat[6] self._status = stat[:4] return stat
def __init__(self, repo, changeid=b('')): """changeid is a revision number, node, or tag""" if changeid == b(''): changeid = b('.') self._repo = repo if isinstance(changeid, hglib.client.revision): cset = changeid elif changeid == -1: cset = _nullcset else: if isinstance(changeid, integertypes): changeid = b('rev(') + strtobytes(changeid) + b(')') notfound = False try: cset = self._repo.log(changeid) # hg bbf4f3dfd700 gave a null result for tip+1 if (cset and cset[0][1] == _nullcset[1] and cset[0][0] != _nullcset[0]): notfound = True except CommandError: notfound = True if notfound or not len(cset): raise ValueError('changeid %r not found in repo' % changeid) if len(cset) > 1: raise ValueError('changeid must yield a single changeset') cset = cset[0] self._rev, self._node, self._tags = cset[:3] self._branch, self._author, self._description, self._date = cset[3:] self._rev = int(self._rev) self._tags = self._tags.split() try: self._tags.remove(b('tip')) except ValueError: pass self._ignored = None self._clean = None
def disabled_largefiles(self): # we don't run reposetup after a session has started, so this # test is broken import os f = open('.hg/hgrc', 'a') f.write('[extensions]\nlargefiles=\n') f.close() self.append('b', 'a') try: self.client.rawcommand([b('add'), b('b'), b('--large')]) except error.CommandError: return rev2, node2 = self.client.commit(b('third')) # Go back to 0 self.client.rawcommand( [b('update'), strtobytes(self.rev0)], # Keep the 'changed' version prompt=lambda s, d: 'c\n') u, m, r, ur = self.client.update(rev2, clean=True) self.assertEquals(u, 2) self.assertEquals(m, 0) self.assertEquals(r, 0) self.assertEquals(ur, 0)
def phase(self): """return the phase of the changeset (public, draft or secret)""" return self._repo.phase(strtobytes(self._rev))[0][1]
def _parents(self): """return contexts for each parent changeset""" par = self._repo.parents(rev=strtobytes(self)) if not par: return [changectx(self._repo, -1)] return [changectx(self._repo, int(cset.rev)) for cset in par]
def _manifest(self): d = {} for node, p, e, s, path in self._repo.manifest(rev=strtobytes(self)): d[path] = node return d
def _status(self): return self._parsestatus( self._repo.status(change=strtobytes(self)))[:4]
def _status(self): return self._parsestatus(self._repo.status(change=strtobytes(self)))[:4]