#
def __end_descr(line):
return re.match('---\s*$', line) or re.match('diff -', line) or \
- re.match('Index: ', line)
+ re.match('Index: ', line) or re.match('--- \w', line)
def __split_descr_diff(string):
"""Return the description and the diff from the given string
authname = authemail = None
# '\n\t' can be found on multi-line headers
- descr = __decode_header(msg['subject']).replace('\n\t', ' ')
+ descr = __decode_header(msg['subject'])
+ descr = re.sub('\n[ \t]*', ' ', descr)
authdate = msg['date']
# remove the '[*PATCH*]' expression in the subject
return getattr(self, n)
return property(new_f)
- def update_commit_data(cd, options, allow_edit = False):
+ def update_commit_data(cd, options):
"""Return a new CommitData object updated according to the command line
options."""
# Set the commit message from commandline.
add_sign_line(cd.message, sign_str,
cd.committer.name, cd.committer.email))
- # Let user edit the commit message manually.
- if allow_edit and not options.message:
+ # Let user edit the commit message manually, unless
+ # --save-template or --message was specified.
+ if not getattr(options, 'save_template', None) and not options.message:
cd = cd.set_message(edit_string(cd.message, '.stgit-new.txt'))
return cd
cd = git.CommitData(
tree = tree, parents = parents, message = message,
author = git.Person.author(), committer = git.Person.committer())
- cd = common.update_commit_data(cd, options, allow_edit = True)
+ cd = common.update_commit_data(cd, options)
return repository.commit(cd)
# base by setting two parents.
merge_bases = repository.get_merge_bases(public_head, stack.base)
if not stack.base in merge_bases:
- message = 'Merge %s into %s' % (repository.describe(stack.base),
+ message = 'Merge %s into %s' % (repository.describe(stack.base).strip(),
utils.strip_prefix('refs/heads/',
public_ref))
public_head = __create_commit(repository, stack.head.data.tree,