mirror of
https://github.com/openSUSE/osc.git
synced 2025-02-23 10:42:14 +01:00
- moved get_commit_msg into core.py + fixed _commit_msg handling
This commit is contained in:
parent
3ed4d30c55
commit
f30297d2d3
@ -3096,32 +3096,6 @@ Please submit there instead, or use --nodevelproject to force direct submission.
|
|||||||
${cmd_usage}
|
${cmd_usage}
|
||||||
${cmd_option_list}
|
${cmd_option_list}
|
||||||
"""
|
"""
|
||||||
def get_commit_msg(pacs):
|
|
||||||
template = store_read_file(os.path.abspath('.'), '_commit_msg')
|
|
||||||
# open editor for commit message
|
|
||||||
# but first, produce status and diff to append to the template
|
|
||||||
footer = []
|
|
||||||
lines = []
|
|
||||||
for p in pacs:
|
|
||||||
states = sorted(p.get_status(False, ' ', '?'), lambda x, y: cmp(x[1], y[1]))
|
|
||||||
changed = [statfrmt(st, os.path.normpath(os.path.join(p.dir, filename))) for st, filename in states]
|
|
||||||
if changed:
|
|
||||||
footer += changed
|
|
||||||
footer.append('\nDiff for working copy: %s' % p.dir)
|
|
||||||
footer.extend([''.join(i) for i in p.get_diff(ignoreUnversioned=True)])
|
|
||||||
lines.extend(get_commit_message_template(p))
|
|
||||||
if template == None:
|
|
||||||
template='\n'.join(lines)
|
|
||||||
msg = ''
|
|
||||||
# if footer is empty, there is nothing to commit, and no edit needed.
|
|
||||||
if footer:
|
|
||||||
msg = edit_message(footer='\n'.join(footer), template=template)
|
|
||||||
if msg:
|
|
||||||
store_write_string(os.path.abspath('.'), '_commit_msg', msg + '\n')
|
|
||||||
else:
|
|
||||||
store_unlink_file(os.path.abspath('.'), '_commit_msg')
|
|
||||||
return msg
|
|
||||||
|
|
||||||
args = parseargs(args)
|
args = parseargs(args)
|
||||||
|
|
||||||
validators = conf.config['source_validator_directory']
|
validators = conf.config['source_validator_directory']
|
||||||
@ -3182,23 +3156,24 @@ Please submit there instead, or use --nodevelproject to force direct submission.
|
|||||||
prj = Project(prj_path)
|
prj = Project(prj_path)
|
||||||
prj.validate_pacs(validators, opts.verbose_validation, *packages)
|
prj.validate_pacs(validators, opts.verbose_validation, *packages)
|
||||||
if not msg:
|
if not msg:
|
||||||
msg = get_commit_msg(pac_objs[prj_path])
|
msg = get_commit_msg(prj.absdir, pac_objs[prj_path])
|
||||||
prj.commit(packages, msg=msg, files=files)
|
prj.commit(packages, msg=msg, files=files)
|
||||||
|
store_unlink_file(prj.absdir, '_commit_msg')
|
||||||
for pac in single_paths:
|
for pac in single_paths:
|
||||||
p = Package(pac)
|
p = Package(pac)
|
||||||
p.validate(validators, opts.verbose_validation)
|
p.validate(validators, opts.verbose_validation)
|
||||||
if not msg:
|
if not msg:
|
||||||
msg = get_commit_msg([p])
|
msg = get_commit_msg(p.absdir, [p])
|
||||||
p.commit(msg)
|
p.commit(msg)
|
||||||
|
store_unlink_file(p.absdir, '_commit_msg')
|
||||||
else:
|
else:
|
||||||
for p in pacs:
|
for p in pacs:
|
||||||
p = Package(pac)
|
p = Package(pac)
|
||||||
p.validate(validators, opts.verbose_validation)
|
p.validate(validators, opts.verbose_validation)
|
||||||
if not msg:
|
if not msg:
|
||||||
msg = get_commit_msg([p])
|
msg = get_commit_msg(p.absdir, [p])
|
||||||
p.commit(msg)
|
p.commit(msg)
|
||||||
|
store_unlink_file(p.absdir, '_commit_msg')
|
||||||
store_unlink_file(os.path.abspath('.'), '_commit_msg')
|
|
||||||
|
|
||||||
@cmdln.option('-r', '--revision', metavar='REV',
|
@cmdln.option('-r', '--revision', metavar='REV',
|
||||||
help='update to specified revision (this option will be ignored '
|
help='update to specified revision (this option will be ignored '
|
||||||
|
26
osc/core.py
26
osc/core.py
@ -5538,6 +5538,32 @@ def parse_diff_for_commit_message(diff, template = []):
|
|||||||
|
|
||||||
return template
|
return template
|
||||||
|
|
||||||
|
def get_commit_msg(wc_dir, pacs):
|
||||||
|
template = store_read_file(wc_dir, '_commit_msg')
|
||||||
|
# open editor for commit message
|
||||||
|
# but first, produce status and diff to append to the template
|
||||||
|
footer = []
|
||||||
|
lines = []
|
||||||
|
for p in pacs:
|
||||||
|
states = sorted(p.get_status(False, ' ', '?'), lambda x, y: cmp(x[1], y[1]))
|
||||||
|
changed = [statfrmt(st, os.path.normpath(os.path.join(p.dir, filename))) for st, filename in states]
|
||||||
|
if changed:
|
||||||
|
footer += changed
|
||||||
|
footer.append('\nDiff for working copy: %s' % p.dir)
|
||||||
|
footer.extend([''.join(i) for i in p.get_diff(ignoreUnversioned=True)])
|
||||||
|
lines.extend(get_commit_message_template(p))
|
||||||
|
if template is None:
|
||||||
|
template = '\n'.join(lines)
|
||||||
|
msg = ''
|
||||||
|
# if footer is empty, there is nothing to commit, and no edit needed.
|
||||||
|
if footer:
|
||||||
|
msg = edit_message(footer='\n'.join(footer), template=template)
|
||||||
|
if msg:
|
||||||
|
store_write_string(wc_dir, '_commit_msg', msg + '\n')
|
||||||
|
else:
|
||||||
|
store_unlink_file(wc_dir, '_commit_msg')
|
||||||
|
return msg
|
||||||
|
|
||||||
def check_filelist_before_commit(pacs):
|
def check_filelist_before_commit(pacs):
|
||||||
|
|
||||||
# warn if any of files has a ? status (usually a patch, or new source was not added to meta)
|
# warn if any of files has a ? status (usually a patch, or new source was not added to meta)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user