Lines Matching refs:self
81 def __init__(self, name, change): argument
82 self.name = name
83 self.change = intern(change)
85 assert change in (self.MODIFIED, self.ADDED, self.REMOVED)
87 self.parentname = None
89 self.renamed = False
90 self.comments = []
92 def __cmp__(self, other): argument
93 return cmp(self.name, other.name)
95 def is_added(self): argument
97 return self.change is self.ADDED
99 def is_modified(self): argument
101 return self.change is self.MODIFIED
103 def is_removed(self): argument
105 return self.change is self.REMOVED
107 def is_renamed(self): argument
109 return self.parentname and self.renamed
111 def is_copied(self): argument
113 return self.parentname and not self.renamed
122 def __init__(self, ws, parenttip, revs=None): argument
132 self.ws = ws
133 self.revs = revs
134 self.parenttip = parenttip
135 self.localtip = None
137 self._active = {}
138 self._comments = []
141 self.localtip = revs[-1]
142 self._build()
144 def _status(self): argument
149 for c in self.revs:
161 if self.localtip.rev() is None:
163 if f not in self.parenttip and f not in self.ws.repo.dirstate:
166 return self.ws.status(self.parenttip, self.localtip, files=files)
168 def _build(self): argument
212 status = self._status()
213 self._active = dict((fname, ActiveEntry(fname, kind))
233 for ctx in reversed(self.revs):
235 self._comments = desc + self._comments
238 for entry in self:
258 for entry in self._active.values():
271 entry.parentname not in self.parenttip):
276 if entry.parentname in self:
277 del self[entry.parentname]
290 if entry.name not in self.parenttip:
293 if not self._changed_file(entry.name):
294 del self[entry.name]
296 def __contains__(self, fname): argument
297 return fname in self._active
299 def __getitem__(self, key): argument
300 return self._active[key]
302 def __setitem__(self, key, value): argument
303 self._active[key] = value
305 def __delitem__(self, key): argument
306 del self._active[key]
308 def __iter__(self): argument
309 return self._active.itervalues()
311 def files(self): argument
319 ret = self._active.keys()
320 ret.extend(x.parentname for x in self if x.is_renamed())
323 def comments(self): argument
327 return self._comments
329 def bases(self): argument
335 revset = set(self.revs)
337 self.revs)
339 def tags(self): argument
349 yield (name, self.ws.repo.lookup(nd), local)
352 nodes = set(node.hex(ctx.node()) for ctx in self.revs)
354 if os.path.exists(self.ws.repo.join('localtags')):
355 fh = self.ws.repo.opener('localtags')
360 if '.hgtags' in self.localtip:
361 data = self.localtip.filectx('.hgtags').data().splitlines()
366 def prune_tags(self, data): argument
371 nodes = set(node.hex(ctx.node()) for ctx in self.revs)
374 def _changed_file(self, path): argument
384 if ((path in self.parenttip) != (path in self.localtip)):
387 parentfile = self.parenttip.filectx(path)
388 localfile = self.localtip.filectx(path)
407 def context(self, message, user): argument
410 return activectx(self, message, user)
412 def as_text(self, paths): argument
422 cstr.write('parent tip: %s:%s\n' % (self.parenttip.rev(),
423 self.parenttip))
424 if self.localtip:
425 rev = self.localtip.rev()
427 (rev is None and "working" or rev, self.localtip))
432 for entry in self:
433 if paths and self.ws.filepath(entry.name) not in paths:
458 def __init__(self, ws): argument
461 self._ws = ws
462 self._repo = ws.repo
463 self._file = os.path.join('cdm', 'worklist')
464 self._files = set()
465 self._valid = False
467 if os.path.exists(self._repo.join(self._file)):
468 self.load()
470 def __nonzero__(self): argument
475 return self._valid
477 def list(self): argument
481 return list(self._files)
483 def status(self): argument
488 match = self._ws.matcher(files=self.list())
489 return self._repo.status(match=match)
491 def add(self, fname): argument
495 self._files.add(fname)
497 def write(self): argument
501 dirn = os.path.split(self._file)[0]
503 if dirn and not os.path.exists(self._repo.join(dirn)):
505 os.makedirs(self._repo.join(dirn))
508 (self._repo.join(dirn), e))
510 fh = self._repo.opener(self._file, 'w', atomictemp=True)
512 for name in self._files:
518 def load(self): argument
522 fh = self._repo.opener(self._file, 'r')
523 self._files = set(l.rstrip('\n') for l in fh)
524 self._valid = True
527 def delete(self): argument
534 if os.path.exists(self._repo.join(self._file)):
535 os.unlink(self._repo.join(self._file))
537 self._files = set()
538 self._valid = False
546 def __init__(self, active, message, user): argument
568 self.__active = active
571 context.memctx.__init__(self, active.ws.repo, parents, message,
575 def modified(self): argument
576 return [entry.name for entry in self.__active if entry.is_modified()]
578 def added(self): argument
579 return [entry.name for entry in self.__active if entry.is_added()]
581 def removed(self): argument
582 ret = set(entry.name for entry in self.__active if entry.is_removed())
583 ret.update(set(x.parentname for x in self.__active if x.is_renamed()))
586 def files(self): argument
587 return self.__active.files()
592 def __init__(self, repository): argument
593 self.repo = repository
594 self.ui = self.repo.ui
595 self.name = self.repo.root
597 self.activecache = {}
599 def parent(self, spec=None): argument
605 return self.ui.expandpath(spec)
607 p = self.ui.expandpath('default')
613 def _localtip(self, outgoing, wctx): argument
630 heads = self.repo.heads(start=wctx.parents()[0].node())
631 headctxs = [self.repo.changectx(n) for n in heads]
637 self.ui.warn('The current branch has more than one head, '
642 def parenttip(self, heads, outgoing): argument
664 for ctx in self._walkctxs(head, self.repo.changectx(0),
669 return self.repo.changectx(node.nullid)
675 def status(self, base='.', head=None, files=None): argument
682 match = self.matcher(files=files)
683 chngs = self.repo.status(base, head, match=match)
690 def findoutgoing(self, parent): argument
697 self.ui.pushbuffer()
700 ui = self.ui
705 return discovery.findoutgoing(self.repo, pws)
707 return self.repo.findoutgoing(pws)
709 self.ui.warn("Warning: Parent workspace '%s' is not "
714 self.ui.popbuffer()
717 def modified(self): argument
720 wctx = self.workingctx()
723 def merged(self): argument
727 wctx = self.workingctx()
730 def branched(self): argument
734 wctx = self.workingctx()
737 def active(self, parent=None, thorough=False): argument
747 parent = self.parent(parent)
753 if not thorough and parent in self.activecache:
754 return self.activecache[parent]
761 outbases = self.findoutgoing(parent)
762 outnodes = self.repo.changelog.nodesbetween(outbases)[0]
767 wctx = self.workingctx(worklist=not thorough)
768 localtip = self._localtip(outnodes, wctx)
775 parenttip = self.parenttip(heads, outnodes)
786 ctxs = [self.repo.changectx(n) for n in
787 self.repo.changelog.nodesbetween(outbases, headnodes)[0]]
792 act = ActiveList(self, parenttip, ctxs)
793 self.activecache[parent] = act
797 def squishdeltas(self, active, message, user=None): argument
823 if os.path.exists(self.repo.join('localtags')):
826 fh = self.repo.opener('localtags')
830 fh = self.repo.opener('localtags', 'w', atomictemp=True)
849 path = self.repo.wjoin(entry.parentname)
853 self.repo.commitctx(active.context(message, user))
855 destination = self.repo.changelog.tip()
865 self.clean(destination)
877 self.ui.pushbuffer()
893 self.repo.invalidate()
894 repair.strip(self.ui, self.repo, base.node(), backup=False)
905 self.ui.warn("stripping failed, your workspace will have "
911 self.clean()
912 self.repo.dirstate.write() # Flush the dirstate
913 self.repo.invalidate() # Invalidate caches
920 if os.path.exists(self.repo.sjoin('undo')):
922 os.unlink(self.repo.sjoin('undo'))
926 self.ui.popbuffer()
928 def filepath(self, path): argument
931 return self.repo.pathto(path)
933 def clean(self, rev=None): argument
938 rev = self.repo.lookup(rev)
940 rev = self.repo.changelog.tip()
942 hg.clean(self.repo, rev, show_stats=False)
944 def mq_applied(self): argument
947 q = mq.queue(self.ui, self.repo.join(''))
950 def workingctx(self, worklist=False): argument
956 wl = WorkList(self)
959 return context.workingctx(self.repo, changes=wl.status())
961 return self.repo.changectx(None)
963 def matcher(self, pats=None, opts=None, files=None): argument
980 return cmdutil.match(self.repo, pats, opts)
982 return cmdutil.matchfiles(self.repo, files)
984 return cmdutil.matchall(self.repo)
986 def diff(self, node1=None, node2=None, match=None, opts=None): argument
994 opts = patch.diffopts(self.ui, opts)
997 for chunk in patch.diff(self.repo, node1, node2, match=match,
1004 def copy(self, src, dest): argument
1008 self.workingctx().copy(src, dest)
1010 def copy(self, src, dest): argument
1014 self.repo.copy(src, dest)
1019 def _walkctxs(self, base, head, follow=False, pick=None): argument
1036 matcher = cmdutil.matchall(self.repo)
1038 for ctx in cmdutil.walkchangerevs(self.repo, matcher, opts, prep):
1043 def _walkctxs(self, base, head, follow=False, pick=None): argument
1056 changectx = self.repo.changectx
1065 changeiter = cmdutil.walkchangerevs(self.ui, self.repo,