+ def rename(self, to_name):
+ """Renames a series
+ """
+ to_stack = Series(to_name)
+
+ if to_stack.is_initialised():
+ raise StackException, '"%s" already exists' % to_stack.get_branch()
+ if os.path.exists(to_stack.__base_file):
+ os.remove(to_stack.__base_file)
+
+ git.rename_branch(self.__name, to_name)
+
+ if os.path.isdir(self.__patch_dir):
+ os.rename(self.__patch_dir, to_stack.__patch_dir)
+ if os.path.exists(self.__base_file):
+ os.rename(self.__base_file, to_stack.__base_file)
+
+ self.__init__(to_name)
+
+ def delete(self, force = False):
+ """Deletes an stgit series
+ """
+ if self.is_initialised():
+ patches = self.get_unapplied() + self.get_applied()
+ if not force and patches:
+ raise StackException, \
+ 'Cannot delete: the series still contains patches'
+ for p in patches:
+ Patch(p, self.__patch_dir).delete()
+
+ if os.path.exists(self.__applied_file):
+ os.remove(self.__applied_file)
+ if os.path.exists(self.__unapplied_file):
+ os.remove(self.__unapplied_file)
+ if os.path.exists(self.__current_file):
+ os.remove(self.__current_file)
+ if os.path.exists(self.__descr_file):
+ os.remove(self.__descr_file)
+ if not os.listdir(self.__patch_dir):
+ os.rmdir(self.__patch_dir)
+ else:
+ print 'Series directory %s is not empty.' % self.__name
+
+ if os.path.exists(self.__base_file):
+ os.remove(self.__base_file)
+