author_name = None, author_email = None,
author_date = None,
committer_name = None, committer_email = None,
- backup = False, log = 'refresh'):
+ backup = False, sign_str = None, log = 'refresh'):
"""Generates a new commit for the given patch
"""
name = self.get_current()
if not committer_email:
committer_email = patch.get_commemail()
+ if sign_str:
+ descr = '%s\n%s: %s <%s>\n' % (descr.rstrip(), sign_str,
+ committer_name, committer_email)
+
bottom = patch.get_bottom()
commit_id = git.commit(files = files,
patch = Patch(name, self.__patch_dir, self.__refs_dir)
+ # only keep the local changes
+ if keep and not git.apply_diff(git.get_head(), patch.get_bottom()):
+ raise StackException, \
+ 'Failed to pop patches while preserving the local changes'
+
git.switch(patch.get_bottom(), keep)
# save the new applied list