def run(self): if '(' not in self.text: try: ctx = self.repo[self.text] self.showMessage.emit(_('found revision')) self.queryIssued.emit(self.query, [ctx.rev()]) return except (error.RepoError, error.LookupError, error.Abort): self.text = 'keyword("%s")' % self.text cwd = os.getcwd() try: os.chdir(self.repo.root) func = hglib.revsetmatch(self.repo.ui, self.text) l = [] for c in func(self.repo, range(len(self.repo))): l.append(c) if len(l): self.showMessage.emit(_('%d matches found') % len(l)) else: self.showMessage.emit(_('No matches found')) self.queryIssued.emit(self.query, l) except error.ParseError, e: if len(e.args) == 2: msg, pos = e.args self.setCursorPosition.emit(0, pos) else: msg = e.args[0] self.showMessage.emit(_('Parse Error: ') + hglib.tounicode(msg))
def commit(self): tip, base = self.revs func = hglib.revsetmatch(self.repo.ui, '%s::%s' % (base, tip)) revcount = len(self.repo) revs = [c for c in func(self.repo, range(revcount)) if c != base] descs = [self.repo[c].description() for c in revs] self.repo.opener('cur-message.txt', 'w').write('\n* * *\n'.join(descs)) dlg = commit.CommitDialog(self.repo, [], {}, self) dlg.finished.connect(dlg.deleteLater) dlg.exec_() self.showMessage.emit(_('Compress is complete, old history untouched')) self.compressbtn.setText(_('Close')) self.compressbtn.clicked.disconnect(self.commit) self.compressbtn.clicked.connect(self.accept)