| Index: hgreview.py |
| =================================================================== |
| --- a/hgreview.py |
| +++ b/hgreview.py |
| @@ -47,21 +47,42 @@ def review(ui, repo, *paths, **opts): |
| raise error.Abort('Ambiguous revision range, only one of --revision and --change can be specified.') |
| if opts.get('change'): |
| args.extend(['--rev', '{0}^:{0}'.format(opts['change'])]) |
| elif opts.get('revision'): |
| args.extend(['--rev', opts['revision']]) |
| else: |
| raise error.Abort('What should be reviewed? Either --revision or --change is required.') |
| - if not opts.get('title') and not opts.get('issue') and opts.get('change'): |
| - opts['title'] = repo[opts['change']].description() |
| + if not opts.get('issue'): |
| + # New issue, make sure title and message are set |
| + if not opts.get('title') and opts.get('change'): |
| + opts['title'] = repo[opts['change']].description() |
| + if not opts.get('title'): |
| + opts['title'] = ui.prompt('New review title: ', '') |
| + if not opts['title'].strip(): |
| + raise error.Abort('No review title given.') |
| - if not opts.get('issue') and not opts.get('reviewers'): |
| - raise error.Abort('Please specify --reviewers for your new review.') |
| + if not opts.get('message'): |
| + opts['message'] = opts['title'] |
| + |
| + path = ui.config('paths', 'default-push') or ui.config('paths', 'default') |
| + match = re.search(r'^(?:https://|ssh://hg@)(.*)', path); |
|
Sebastian Noack
2016/03/11 14:56:22
No plain HTTP?
Wladimir Palant
2016/03/11 15:03:53
We don't support plain HTTP on hg.adblockplus.org.
|
| + if match: |
| + opts['message'] = '{0}\n\nRepository: {1}'.format( |
| + opts['message'].strip(), |
| + match.group(1) |
| + ) |
| + |
| + # Make sure there is at least one reviewer |
| + if not opts.get('reviewers'): |
| + opts['reviewers'] = ui.prompt('Reviewers (comma-separated): ', '') |
| + if not opts['reviewers'].strip(): |
| + raise error.Abort('No reviewers given.') |
| + |
| for opt in ('reviewers', 'cc'): |
| if opts.get(opt): |
| users = [u if '@' in u else u + '@adblockplus.org' |
| for u in re.split(r'\s*,\s*', opts[opt])] |
| opts[opt] = ','.join(users) |
| for opt in ('issue', 'title', 'message', 'reviewers', 'cc'): |
| if opts.get(opt, ''): |