Ejemplo n.º 1
0
    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])
Ejemplo n.º 2
0
 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])
Ejemplo n.º 3
0
    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()
Ejemplo n.º 4
0
 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()
Ejemplo n.º 5
0
    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
Ejemplo n.º 6
0
    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()
Ejemplo n.º 7
0
 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)
Ejemplo n.º 8
0
    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()
Ejemplo n.º 9
0
 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()
Ejemplo n.º 10
0
 def _date_help(self, button):
     from hgcmd import CmdDialog
     dlg = CmdDialog(['hg', 'help', 'dates'], False)
     dlg.run()
     dlg.hide()