def edit_file(series, line, comment, show_patch = True):
fname = '.stgit.msg'
- tmpl = os.path.join(git.base_dir, 'patchdescr.tmpl')
+ tmpl = os.path.join(git.get_base_dir(), 'patchdescr.tmpl')
f = file(fname, 'w+')
if line:
self.__name = git.get_head_file()
if self.__name:
- self.__patch_dir = os.path.join(git.base_dir, 'patches',
+ base_dir = git.get_base_dir()
+ self.__patch_dir = os.path.join(base_dir, 'patches',
self.__name)
- self.__base_file = os.path.join(git.base_dir, 'refs', 'bases',
+ self.__base_file = os.path.join(base_dir, 'refs', 'bases',
self.__name)
self.__applied_file = os.path.join(self.__patch_dir, 'applied')
self.__unapplied_file = os.path.join(self.__patch_dir, 'unapplied')
def init(self):
"""Initialises the stgit series
"""
- bases_dir = os.path.join(git.base_dir, 'refs', 'bases')
+ bases_dir = os.path.join(git.get_base_dir(), 'refs', 'bases')
if self.is_initialised():
raise StackException, self.__patch_dir + ' already exists'
"""Renames a series
"""
to_stack = Series(to_name)
- if os.path.isdir(to_stack.__patch_dir):
- raise StackException, '"%s" already exists' % to_stack.__patch_dir
- if os.path.isfile(to_stack.__base_file):
- raise StackException, '"%s" already exists' % to_stack.__base_file
+
+ 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.isfile(self.__base_file):
+ if os.path.exists(self.__base_file):
os.rename(self.__base_file, to_stack.__base_file)
self.__init__(to_name)
if not force and patches:
raise StackException, \
'Cannot delete: the series still contains patches'
- patches.reverse()
for p in patches:
- self.delete_patch(p)
+ Patch(p, self.__patch_dir).delete()
- if os.path.isfile(self.__applied_file):
+ if os.path.exists(self.__applied_file):
os.remove(self.__applied_file)
- if os.path.isfile(self.__unapplied_file):
+ if os.path.exists(self.__unapplied_file):
os.remove(self.__unapplied_file)
- if os.path.isfile(self.__current_file):
+ if os.path.exists(self.__current_file):
os.remove(self.__current_file)
- if os.path.isfile(self.__descr_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.isfile(self.__base_file):
+ if os.path.exists(self.__base_file):
os.remove(self.__base_file)
def refresh_patch(self, message = None, edit = False, show_patch = False,
applied = self.get_applied()
unapplied = self.get_unapplied()
+ if oldname == newname:
+ raise StackException, '"To" name and "from" name are the same'
+
if newname in applied or newname in unapplied:
raise StackException, 'Patch "%s" already exists' % newname