# HG changeset patch # User Simon Heimberg <sim...@besonet.ch> # Date 1250357399 -7200 # Node ID 66c3bf712b2ed6ae7b3df4352052126882490151 # Parent 1d8aac63e43e6fdee3dd97e75edfd8146bb67fe7 commit/thgshelve: check if the shown state is up to date
Check if the parents have changed since the last refresh of the display before doing commit or (un)shelve. If they have, ask the user if he wants to continue. diff -r 1d8aac63e43e -r 66c3bf712b2e hggtk/commit.py --- a/hggtk/commit.py Mon Aug 10 07:25:14 2009 +0200 +++ b/hggtk/commit.py Sam Aug 15 19:29:59 2009 +0200 @@ -298,7 +298,7 @@ def get_custom_menus(self): def commit(menuitem, files): - if self.ready_message(): + if self.ready_message() and self.isuptodate(): self.hg_commit(files) self.reload_status() abs = [self.repo.wjoin(file) for file in files] @@ -412,7 +412,7 @@ self.branchbutton.set_sensitive(not (self.mqmode or self.qnew)) def commit_clicked(self, toolbutton, data=None): - if not self.ready_message(): + if not (self.ready_message() or self.isupdodate()): return commitable = 'MAR' diff -r 1d8aac63e43e -r 66c3bf712b2e hggtk/status.py --- a/hggtk/status.py Mon Aug 10 07:25:14 2009 +0200 +++ b/hggtk/status.py Sam Aug 15 19:29:59 2009 +0200 @@ -1336,6 +1336,21 @@ self._do_diff(files, self.opts) return True + def isuptodate(self): + oldparents = self.repo.dirstate.parents() + self.repo.dirstate.invalidate() + if oldparents == self.repo.dirstate.parents(): + return True + response = gdialog.CustomPrompt(_('not up to date'), + _('The parents have changed since the last refresh.\n' + 'Continue anyway?'), + self, (_('&Yes'), _('&Refresh'), _('&Cancel')), 1, 2).run() + if response == 0: # Yes + return True + if response == 1: + self.reload_status() + return False + def run(ui, *pats, **opts): showclean = pats and True or False rev = opts.get('rev', []) diff -r 1d8aac63e43e -r 66c3bf712b2e hggtk/thgshelve.py --- a/hggtk/thgshelve.py Mon Aug 10 07:25:14 2009 +0200 +++ b/hggtk/thgshelve.py Sam Aug 15 19:29:59 2009 +0200 @@ -195,10 +195,14 @@ pass def shelve_clicked(self, toolbutton, data=None): + if not self.isuptodate(): + return self.shelve_selected() self.activate_shelve_buttons(True) def unshelve_clicked(self, toolbutton, data=None): + if not self.isuptodate(): + return self.unshelve() self.activate_shelve_buttons(True) ------------------------------------------------------------------------------ Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day trial. Simplify your report design, integration and deployment - and focus on what you do best, core application coding. Discover what's new with Crystal Reports now. http://p.sf.net/sfu/bobj-july _______________________________________________ Tortoisehg-develop mailing list Tortoisehg-develop@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/tortoisehg-develop