from stgit.commands.common import *
from stgit.utils import *
+from stgit.out import *
from stgit import stack, git
from stgit.stack import Series
option. A commit object can be reverted with the '--reverse'
option. The log and author information are those of the commit object."""
+directory = DirectoryGotoToplevel()
options = [make_option('-n', '--name',
help = 'use NAME as the patch name'),
make_option('-r', '--reverse',
action = 'store_true'),
make_option('-p', '--parent', metavar = 'COMMITID',
help = 'use COMMITID as parent'),
+ make_option('-x', '--expose',
+ help = 'append the imported commit id to the patch log',
+ action = 'store_true'),
make_option('--fold',
help = 'fold the commit object into the current patch',
action = 'store_true'),
if not options.unapplied:
check_local_changes()
check_conflicts()
- check_head_top_equal()
+ check_head_top_equal(crt_series)
commit_str = args[0]
- commit_id = git_id(commit_str)
+ commit_id = git_id(crt_series, commit_str)
commit = git.Commit(commit_id)
if options.fold or options.update:
patchname = None
if options.parent:
- parent = git_id(options.parent)
+ parent = git_id(crt_series, options.parent)
else:
parent = commit.get_parent()
out.done()
elif options.update:
- rev1 = git_id('//bottom')
- rev2 = git_id('//top')
+ rev1 = git_id(crt_series, '//bottom')
+ rev2 = git_id(crt_series, '//top')
files = git.barefiles(rev1, rev2).split('\n')
out.start('Updating with commit %s' % commit_id)
out.done()
else:
message = commit.get_log()
+ if options.expose:
+ message += '(imported from commit %s)\n' % commit.get_id_hash()
author_name, author_email, author_date = \
name_email_date(commit.get_author())
author_name = author_name,
author_email = author_email,
author_date = author_date)
+ # in case the patch name was automatically generated
+ patchname = newpatch.get_name()
+
# find a patchlog to fork from
(refpatchname, refbranchname, refpatchid) = parse_rev(commit_str)
if refpatchname and not refpatchid and \
else:
out.done()
- print_crt_patch()
+ print_crt_patch(crt_series)