phase-shelve: also capture the state of shelve prior to unshelve
frommercurial.i18nimport_frommercurialimportchangegroup,error,extensionsdefabort(orig,*args,**kwargs):raiseerror.Abort(_('this is an exercise'))defuisetup(ui):extensions.wrapfunction(changegroup,'getbundler',abort)