def _hg_commit(self, files): if not self.repo.ui.config('ui', 'username'): Prompt('Username not configured', 'Please enter a username', self).run() from thgconfig import ConfigDialog dlg = ConfigDialog(self.repo.root, False) dlg.show_all() dlg.focus_field('ui.username') dlg.run() dlg.hide() self.repo = hg.repository(ui.ui(), self.repo.root) self.ui = self.repo.ui # call the threaded CmdDialog to do the commit, so the the large commit # won't get locked up by potential large commit. CmdDialog will also # display the progress of the commit operation. cmdline = ["hg", "commit", "--verbose", "--repository", self.repo.root] if self.opts['addremove']: cmdline += ['--addremove'] cmdline += ['--message', fromutf(self.opts['message'])] cmdline += [self.repo.wjoin(x) for x in files] dialog = CmdDialog(cmdline, True) dialog.set_transient_for(self) dialog.run() dialog.hide() # refresh overlay icons and commit dialog if dialog.return_code() == 0: self.text.set_buffer(gtk.TextBuffer()) self._update_recent_messages(self.opts['message']) shell_notify([self.cwd] + files) self._last_commit_id = self._get_tip_rev(True) self.reload_status()
def _do_update(self): rev = self._rev_input.get_text() overwrite = self._overwrite.get_active() if not rev: error_dialog(self, "Can't update", "please enter revision to update to") return response = question_dialog(self, "Really want to update?", "to revision %s" % rev) if response != gtk.RESPONSE_YES: return cmdline = ['hg', 'update', '-R', self.root, '--rev', rev, '--verbose'] if overwrite: cmdline.append('--clean') from hgcmd import CmdDialog dlg = CmdDialog(cmdline) dlg.run() dlg.hide() if self.notify_func: self.notify_func(self.notify_args) self._refresh() shell_notify([self.cwd])
def _backout_clicked(self, button): buffer = self.logview.get_buffer() start, end = buffer.get_bounds() cmdline = ['hg', 'backout', '--rev', self.reventry.get_text(), '--message', buffer.get_text(start, end)] dlg = CmdDialog(cmdline) dlg.show_all() dlg.run() dlg.hide() if self.notify_func: self.notify_func(self.notify_args)
def _revert_file(self, menuitem): '''User selected file revert from the file list context menu''' rev = self.currev dialog = Confirm('revert file to old revision', [], self, 'Revert %s to contents at revision %d?' % (self.curfile, rev)) if dialog.run() == gtk.RESPONSE_NO: return cmdline = ['hg', 'revert', '--verbose', '--rev', str(rev), self.curfile] dlg = CmdDialog(cmdline) dlg.run() dlg.hide() shell_notify([self.curfile])
def _strip_rev(self, menuitem): rev = self.currow[treemodel.REVID] res = Confirm('Strip Revision(s)', [], self, 'Remove revision %d and all descendants?' % rev).run() if res != gtk.RESPONSE_YES: return from hgcmd import CmdDialog cmdline = ['hg', 'strip', str(rev)] dlg = CmdDialog(cmdline) dlg.show_all() dlg.run() dlg.hide() self.repo.invalidate() self.reload_log()
def _test_path(self, *args): if not self.root: error_dialog(self, 'No Repository Found', 'Path testing cannot work without a repository') return testpath = self._pathpathedit.get_text() if not testpath: return if testpath[0] == '~': testpath = os.path.expanduser(testpath) cmdline = ['hg', 'incoming', '--repository', self.root, '--verbose', testpath] from hgcmd import CmdDialog dlg = CmdDialog(cmdline) dlg.run() dlg.hide()
def _btn_clone_clicked(self, toolbutton, data=None): # gather input data src = self._src_input.get_text() dest = self._dest_input.get_text() or os.path.basename(src) remotecmd = self._remote_cmd.get_text() rev = self._rev_input.get_text() # verify input if src == "": error_dialog(self, "Source path is empty", "Please enter") self._src_input.grab_focus() return False # start cloning try: cmdline = ['hg', 'clone'] if self._opt_update.get_active(): cmdline.append('--noupdate') if self._opt_uncomp.get_active(): cmdline.append('--uncompressed') if self._opt_pull.get_active(): cmdline.append('--pull') if not (self._opt_proxy.get_active() and ui.ui().config('http_proxy', 'host', '')): cmdline += ["--config", "http_proxy.host="] if remotecmd: cmdline.append('--remotecmd') cmdline.append(remotecmd) if not self._opt_allrev.get_active() and rev: cmdline.append('--rev') cmdline.append(rev) cmdline.append('--verbose') cmdline.append(src) if dest: cmdline.append(dest) print "cmdline: ", ' '.join(cmdline) from hgcmd import CmdDialog dlg = CmdDialog(cmdline) dlg.run() dlg.hide() except util.Abort, inst: error_dialog(self, "Clone aborted", str(inst)) return False
def _do_unmerge(self): rev = self._rev_input.get_text() if not rev: error_dialog(self, "Can't unmerge", "please select revision to unmerge") return response = question_dialog(self, "Undo merge", "and checkout revision %s?" % rev) if response != gtk.RESPONSE_YES: return cmdline = ['hg', 'update', '-R', self.root, '--rev', rev, '--clean', '--verbose'] dlg = CmdDialog(cmdline) dlg.run() dlg.hide() if self.notify_func: self.notify_func(self.notify_args) shell_notify([self.cwd]) self._refresh()
def _do_merge(self): rev = self._rev_input.get_text() force = self._chbox_force.get_active() if not rev: error_dialog(self, "Can't merge", "please enter revision to merge") return response = question_dialog(self, "Really want to merge?", "with revision %s" % rev) if response != gtk.RESPONSE_YES: return cmdline = ['hg', 'merge', '-R', self.root, '--rev', rev] if force: cmdline.append("--force") dlg = CmdDialog(cmdline) dlg.run() dlg.hide() shell_notify([self.cwd]) if self.notify_func: self.notify_func(self.notify_args) self._refresh()
def _date_help(self, button): from hgcmd import CmdDialog dlg = CmdDialog(['hg', 'help', 'dates'], False) dlg.run() dlg.hide()