diff --git a/git_redmine.py b/git_redmine.py index 7a2f20d..289fcb0 100644 --- a/git_redmine.py +++ b/git_redmine.py @@ -193,7 +193,8 @@ def apply_attachments(repo, issue): @issue.command() @click.argument('issue_number') -def take(issue_number): +@click.option('--reference', default=None) +def take(issue_number, reference): '''Create or switch to a branch to fix an issue''' api = get_redmine_api() issue = api.issue.get(issue_number, include='attachments') @@ -207,9 +208,10 @@ def take(issue_number): else: new = True default_branch_name = 'wip/%s-%s' % (issue_number, slugify(issue.subject)[:32]) - click.confirm('Do you want to create a branch tracking master ?', abort=True) + click.confirm('Do you want to create a branch tracking %s ?' % (reference or 'origin/master'), + default=True, abort=True) branch_name = click.prompt('Branch name', default=default_branch_name) - branch = repo.create_head(branch_name) + branch = repo.create_head(branch_name, commit=reference or 'origin/master') set_branch_option(branch, 'merge', 'refs/heads/master') set_branch_option(branch, 'remote', '.') if repo.head.reference == branch: