from stgit.commands.common import *
from stgit.utils import *
+from stgit.out import *
from stgit import stack, git, templates
%(commemail)s - committer's e-mail
"""
+directory = DirectoryHasRepository()
options = [make_option('-d', '--dir',
help = 'export patches to DIR instead of the default'),
make_option('-p', '--patch',
help = 'Use FILE as a template'),
make_option('-b', '--branch',
help = 'use BRANCH instead of the default one'),
- make_option('--binary',
- help = 'output a diff even for binary files',
- action = 'store_true'),
make_option('-s', '--stdout',
help = 'dump the patches to the standard output',
- action = 'store_true')]
+ action = 'store_true')
+ ] + make_diff_opts_option()
def func(parser, options, args):
if options.dir:
dirname = options.dir
else:
- dirname = 'patches-%s' % crt_series.get_branch()
+ dirname = 'patches-%s' % crt_series.get_name()
+ directory.cd_to_topdir()
if not options.branch and git.local_changes():
out.warn('Local changes in the tree;'
os.makedirs(dirname)
series = file(os.path.join(dirname, 'series'), 'w+')
- if options.binary:
- diff_flags = [ '--binary' ]
- else:
- diff_flags = []
-
applied = crt_series.get_applied()
+ unapplied = crt_series.get_unapplied()
if len(args) != 0:
- patches = parse_patches(args, applied)
+ patches = parse_patches(args, applied + unapplied, len(applied))
else:
patches = applied
long_descr = reduce(lambda x, y: x + '\n' + y,
descr_lines[1:], '').strip()
+ diff = git.diff(rev1 = patch.get_bottom(),
+ rev2 = patch.get_top(),
+ diff_flags = options.diff_flags)
tmpl_dict = {'description': patch.get_description().rstrip(),
'shortdescr': short_descr,
'longdescr': long_descr,
- 'diffstat': git.diffstat(rev1 = patch.get_bottom(),
- rev2 = patch.get_top()),
+ 'diffstat': git.diffstat(diff),
'authname': patch.get_authname(),
'authemail': patch.get_authemail(),
'authdate': patch.get_authdate(),
print patch.get_name()
print '-'*79
- # write description
f.write(descr)
- # write the diff
- git.diff(rev1 = patch.get_bottom(),
- rev2 = patch.get_top(),
- out_fd = f,
- diff_flags = diff_flags )
+ f.write(diff)
if not options.stdout:
f.close()
patch_no += 1