# HG changeset patch
# User David Wilhelm <[email protected]>
# Date 1274416936 25200
# Node ID a22073b0b83483b2c4b4466b113133ae667e1b58
# Parent 0fffba65b11d26de51bc3446d3e329bc359ad0c0
shelve: add 'abandon shelf contents'
Closes #700
diff --git a/tortoisehg/hgtk/thgshelve.py b/tortoisehg/hgtk/thgshelve.py
--- a/tortoisehg/hgtk/thgshelve.py
+++ b/tortoisehg/hgtk/thgshelve.py
@@ -72,6 +72,9 @@
self.shelve_clicked, tip=_('set aside selected changes'))
self.unshelve_btn = self.make_toolbutton(gtk.STOCK_EDIT, _('Unshelve'),
self.unshelve_clicked, tip=_('restore shelved changes'))
+ self.abandon_btn = self.make_toolbutton(gtk.STOCK_CANCEL, _('Abandon'),
+ self.abandon_clicked, tip=_('abandon shelved changes'))
+ tbbuttons.insert(0, self.abandon_btn)
tbbuttons.insert(0, self.unshelve_btn)
tbbuttons.insert(0, self.shelve_btn)
return tbbuttons
@@ -130,9 +133,11 @@
if status:
self.shelve_btn.set_sensitive(len(self.filemodel) > 0)
self.unshelve_btn.set_sensitive(self.has_shelve_file())
+ self.abandon_btn.set_sensitive(self.has_shelve_file())
else:
self.shelve_btn.set_sensitive(False)
self.unshelve_btn.set_sensitive(False)
+ self.abandon_btn.set_sensitive(False)
def shelve_selected(self, files=[]):
if len(self.filemodel) < 1:
@@ -209,6 +214,19 @@
gdialog.Prompt(_('Unshelve Error'),
_('Error: %s') % e, self).run()
+ def abandon(self):
+ try:
+ response = gdialog.Confirm(_('Confirm Delete'), [], self,
+ _('Delete the shelf contents?')).run()
+ if response == gtk.RESPONSE_YES:
+ self.ui.quiet = True
+ hgshelve.abandon(self.ui, self.repo)
+ self.ui.quiet = False
+ self.reload_status()
+ except Exception, e:
+ gdialog.Prompt(_('Abandon Error'),
+ _('Error: %s') % e, self).run()
+
def shelve_clicked(self, toolbutton, data=None):
if not self.isuptodate():
return
@@ -221,6 +239,12 @@
self.unshelve()
self.activate_shelve_buttons(True)
+ def abandon_clicked(self, toolbutton, data=None):
+ if not self.isuptodate():
+ return
+ self.abandon()
+ self.activate_shelve_buttons(True)
+
def run(_ui, *pats, **opts):
cmdoptions = {
'user':opts.get('user', ''), 'date':opts.get('date', ''),
diff --git a/tortoisehg/util/hgshelve.py b/tortoisehg/util/hgshelve.py
--- a/tortoisehg/util/hgshelve.py
+++ b/tortoisehg/util/hgshelve.py
@@ -598,6 +598,20 @@
except IOError:
ui.warn(_('nothing to unshelve\n'))
+
+def abandon(ui, repo):
+ '''abandon shelved changes'''
+ try:
+ if os.path.exists(repo.join('shelve')):
+ ui.debug(_('abandoning shelved file\n'))
+ os.unlink(repo.join('shelve'))
+ ui.status(_('shelved file abandoned\n'))
+ else:
+ ui.warn(_('nothing to unshelve\n'))
+ except IOError:
+ ui.warn(_('abandon shelved file failed\n'))
+
+
cmdtable = {
"shelve":
(shelve,
------------------------------------------------------------------------------
_______________________________________________
Tortoisehg-develop mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/tortoisehg-develop