This parameter is only possible to set from command-line, it has no
global option associated to it within Git's config, so add a
--creation-factor parameter to b4 to achieve the same behavior.
Signed-off-by: Antonin Godard <antonin.godard@bootlin.com>
---
src/b4/command.py | 2 ++
src/b4/diff.py | 10 +++++++++-
2 files changed, 11 insertions(+), 1 deletion(-)
@@ -287,6 +287,8 @@ def setup_parser() -> argparse.ArgumentParser:
help='Force color output even when writing to file')
sp_diff.add_argument('-m', '--compare-am-mboxes', dest='ambox', nargs=2, default=None,
help='Compare two mbx files prepared with "b4 am"')
+ sp_diff.add_argument('--range-diff-opts', default=None,
+ help='Arguments passed to git range-diff')
sp_diff.set_defaults(func=cmd_diff)
# b4 kr
@@ -16,6 +16,7 @@ import email.parser
import shutil
import pathlib
import argparse
+import shlex
from typing import Tuple, Optional, List
@@ -156,7 +157,12 @@ def main(cmdargs: argparse.Namespace) -> None:
logger.critical('---')
logger.critical('Could not create fake-am range for upper series v%s', user.revision)
sys.exit(1)
- grdcmd = 'git range-diff %.12s..%.12s %.12s..%.12s' % (lsc, lec, usc, uec)
+ rd_opts = []
+ if cmdargs.range_diff_opts:
+ sp = shlex.shlex(cmdargs.range_diff_opts, posix=True)
+ sp.whitespace_split = True
+ rd_opts = " ".join(list(sp))
+ grdcmd = 'git range-diff %s %.12s..%.12s %.12s..%.12s' % (rd_opts, lsc, lec, usc, uec)
if cmdargs.nodiff:
logger.info('Success, to compare v%s and v%s:', lser.revision, user.revision)
logger.info(f' {grdcmd}')
@@ -167,6 +173,8 @@ def main(cmdargs: argparse.Namespace) -> None:
gitargs = ['range-diff', f'{lsc}..{lec}', f'{usc}..{uec}']
if cmdargs.outdiff is None or cmdargs.color:
gitargs.append('--color')
+ if rd_opts:
+ gitargs.append(rd_opts)
ecode, rdiff = b4.git_run_command(cmdargs.gitdir, gitargs)
if ecode > 0:
logger.critical('Unable to generate diff')