Lines Matching refs:self
86 def __init__(self, name): argument
87 self.name = name
88 self.change = None
89 self.parentname = None
91 self.renamed = False
92 self.comments = []
97 def __cmp__(self, other): argument
98 return cmp(self.name, other.name)
100 def is_added(self): argument
101 return self.change == self.ADDED
103 def is_modified(self): argument
104 return self.change == self.MODIFIED
106 def is_removed(self): argument
107 return self.change == self.REMOVED
109 def is_renamed(self): argument
110 return self.parentname and self.renamed
112 def is_copied(self): argument
113 return self.parentname and not self.renamed
122 def __init__(self, ws, parenttip, revs=None): argument
123 self._active = {}
124 self.ws = ws
126 self.revs = revs
128 self.base = None
129 self.parenttip = parenttip
136 if self.parenttip == None:
138 self.localtip = None
141 self.base = revs[0]
142 self.localtip = revs[-1]
144 self._comments = []
146 self._build(revs)
148 def _build(self, revs): argument
152 status = self.ws.status(self.parenttip.node(), self.localtip.node())
188 self._comments.extend(desc)
197 if fname not in self:
198 self._addentry(fname)
199 self[fname].comments.extend(desc)
223 elif rn[0] in self.parenttip.manifest():
235 if fname == oldname or fname not in self.localtip.manifest():
238 self[fname].parentname = oldname
241 self[fname].renamed = True
242 if oldname in self:
243 del self[oldname]
256 for entry in self._active.values():
258 del self[entry.name]
276 if entry.name not in self.parenttip.manifest():
279 if not self._changed_file(entry.name):
280 del self[entry.name]
285 def __contains__(self, fname): argument
286 return fname in self._active
288 def __getitem__(self, key): argument
289 return self._active[key]
291 def __setitem__(self, key, value): argument
292 self._active[key] = value
294 def __delitem__(self, key): argument
295 del self._active[key]
297 def __iter__(self): argument
298 for entry in self._active.values():
301 def _addentry(self, fname): argument
302 if fname not in self:
303 self[fname] = ActiveEntry(fname)
305 def files(self): argument
313 ret = self._active.keys()
314 ret.extend([x.parentname for x in self
318 def comments(self): argument
319 return self._comments
321 def bases(self): argument
327 revset = set(self.revs)
329 self.revs)
331 def tags(self): argument
341 yield (name, self.ws.repo.lookup(nd), local)
344 nodes = set(node.hex(ctx.node()) for ctx in self.revs)
346 if os.path.exists(self.ws.repo.join('localtags')):
347 fh = self.ws.repo.opener('localtags')
352 if '.hgtags' in self.localtip:
353 data = self.localtip.filectx('.hgtags').data().splitlines()
358 def prune_tags(self, data): argument
363 nodes = set(node.hex(ctx.node()) for ctx in self.revs)
366 def _changed_file(self, path): argument
378 if ((path in self.parenttip) != (path in self.localtip.manifest())):
381 parentfile = self.parenttip.filectx(path)
382 localfile = self.localtip.filectx(path)
397 def context(self, message, user): argument
400 return activectx(self, message, user)
408 def __init__(self, active, message, user): argument
430 self.__active = active
433 context.memctx.__init__(self, active.ws.repo, parents, message,
437 def modified(self): argument
438 return [entry.name for entry in self.__active if entry.is_modified()]
440 def added(self): argument
441 return [entry.name for entry in self.__active if entry.is_added()]
443 def removed(self): argument
444 ret = set(entry.name for entry in self.__active if entry.is_removed())
445 ret.update(set(x.parentname for x in self.__active if x.is_renamed()))
448 def files(self): argument
449 return self.__active.files()
454 def __init__(self, repository): argument
455 self.repo = repository
456 self.ui = self.repo.ui
457 self.name = self.repo.root
459 self.activecache = {}
461 def parent(self, spec=None): argument
467 return self.ui.expandpath(spec)
469 p = self.ui.expandpath('default')
475 def _localtip(self, outgoing, wctx): argument
496 heads = self.repo.heads(start=wctx.parents()[0].node())
497 headctxs = [self.repo.changectx(n) for n in heads]
503 self.ui.warn('The current branch has more than one head, '
508 def _parenttip(self, heads, outgoing): argument
537 get = util.cachefunc(lambda r: self.repo.changectx(r).changeset())
538 changeiter = cmdutil.walkchangerevs(self.repo.ui, self.repo, [],
542 n = self.repo.changelog.node(rev)
549 return self.repo.changelog.rev(node.nullid)
553 return self.repo.changectx(sorted(ptips)[-1])
555 def status(self, base='.', head=None): argument
562 chngs = self.repo.status(base, head)
565 def findoutgoing(self, parent): argument
572 self.ui.pushbuffer()
575 ui = self.ui
579 return self.repo.findoutgoing(pws)
581 self.ui.warn("Warning: Parent workspace '%s' is not "
586 self.ui.popbuffer()
589 def modified(self): argument
591 wctx = self.workingctx()
594 def merged(self): argument
597 wctx = self.workingctx()
600 def branched(self): argument
604 wctx = self.workingctx()
607 def active(self, parent=None): argument
613 parent = self.parent(parent)
614 if parent in self.activecache:
615 return self.activecache[parent]
618 outgoing = self.findoutgoing(parent)
619 outnodes = self.repo.changelog.nodesbetween(outgoing)[0]
624 localtip = self._localtip(outnodes, self.workingctx())
631 ctxs = [self.repo.changectx(n) for n in
632 self.repo.changelog.nodesbetween(outgoing,
638 act = ActiveList(self, self._parenttip(heads, outnodes), ctxs)
640 self.activecache[parent] = act
643 def pdiff(self, pats, opts, parent=None): argument
646 parent = self.parent(parent)
647 act = self.active(parent)
656 matchfunc = cmdutil.match(self.repo, pats, opts)
657 opts = patch.diffopts(self.ui, opts)
659 return self.diff(act.parenttip.node(), act.localtip.node(),
662 def squishdeltas(self, active, message, user=None): argument
688 if os.path.exists(self.repo.join('localtags')):
691 fh = self.repo.opener('localtags')
695 fh = self.repo.opener('localtags', 'w', atomictemp=True)
714 path = self.repo.wjoin(entry.parentname)
718 self.repo.commitctx(active.context(message, user))
720 destination = self.repo.changelog.tip()
730 self.clean(destination)
742 self.ui.pushbuffer()
758 self.repo.invalidate()
759 repair.strip(self.ui, self.repo, base.node(), backup=False)
770 self.ui.warn("stripping failed, your workspace will have "
776 self.clean()
777 self.repo.dirstate.write() # Flush the dirstate
778 self.repo.invalidate() # Invalidate caches
785 if os.path.exists(self.repo.sjoin('undo')):
787 os.unlink(self.repo.sjoin('undo'))
791 self.ui.popbuffer()
793 def filepath(self, path): argument
795 return self.repo.pathto(path)
797 def clean(self, rev=None): argument
802 rev = self.repo.lookup(rev)
804 rev = self.repo.changelog.tip()
806 hg.clean(self.repo, rev, show_stats=False)
808 def mq_applied(self): argument
810 q = mq.queue(self.ui, self.repo.join(''))
813 def workingctx(self): argument
814 return self.repo.changectx(None)
816 def diff(self, node1=None, node2=None, match=None, opts=None): argument
819 for chunk in patch.diff(self.repo, node1, node2, match=match,
825 self.repo.dirstate.invalidate()