Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753111AbbFAOBC (ORCPT ); Mon, 1 Jun 2015 10:01:02 -0400 Received: from mail-wi0-f181.google.com ([209.85.212.181]:34711 "EHLO mail-wi0-f181.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752855AbbFAOAx (ORCPT ); Mon, 1 Jun 2015 10:00:53 -0400 From: Valentin Rothberg To: gregkh@linuxfoundation.org, stefan.hengelein@fau.de, andreas.ruprecht@fau.de, pebolle@tiscali.nl Cc: linux-kernel@vger.kernel.org, Valentin Rothberg Subject: [PATCH 1/2] checkkconfigsymbols.py: find relevant commits Date: Mon, 1 Jun 2015 16:00:19 +0200 Message-Id: <1433167220-12292-2-git-send-email-valentinrothberg@gmail.com> X-Mailer: git-send-email 2.1.4 In-Reply-To: <1433167220-12292-1-git-send-email-valentinrothberg@gmail.com> References: <1433167220-12292-1-git-send-email-valentinrothberg@gmail.com> Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 3353 Lines: 81 Add option -f/--find to find relevant commits when using the --diff option. --find is useful in case a user wants to check commits that potentially cause a Kconfig symbol to be missing. This is done via 'git log -G $SYMBOL' (i.e., to get a list of commits that change $SYMBOL). The relevant commits are printed below the "SYMBOL\tFILES" line, followed by an empty line to increase readability. Signed-off-by: Valentin Rothberg Acked-by: Stefan Hengelein Acked-by: Andreas Ruprecht --- scripts/checkkconfigsymbols.py | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/scripts/checkkconfigsymbols.py b/scripts/checkkconfigsymbols.py index c89fdcaf06e8..292848e32036 100755 --- a/scripts/checkkconfigsymbols.py +++ b/scripts/checkkconfigsymbols.py @@ -58,6 +58,11 @@ def parse_options(): "input format bases on Git log's " "\'commmit1..commit2\'.") + parser.add_option('-f', '--find', dest='find', action='store_true', + default=False, + help="Find and show commits that may cause symbols to be " + "missing. Required to run with --diff.") + parser.add_option('-i', '--ignore', dest='ignore', action='store', default="", help="Ignore files matching this pattern. Note that " @@ -86,6 +91,9 @@ def parse_options(): "'--force' if you\nwant to ignore this warning and " "continue.") + if opts.commit: + opts.find = False + if opts.ignore: try: re.match(opts.ignore, "this/is/just/a/test.c") @@ -129,12 +137,18 @@ def main(): if not feature in undefined_a: files = sorted(undefined_b.get(feature)) print "%s\t%s" % (feature, ", ".join(files)) + if opts.find: + commits = find_commits(feature, opts.diff) + print commits # check if there are new files that reference the undefined feature else: files = sorted(undefined_b.get(feature) - undefined_a.get(feature)) if files: print "%s\t%s" % (feature, ", ".join(files)) + if opts.find: + commits = find_commits(feature, opts.diff) + print commits # reset to head execute("git reset --hard %s" % head) @@ -156,6 +170,13 @@ def execute(cmd): return stdout +def find_commits(symbol, diff): + """Find commits changing %symbol in the given range of %diff.""" + commits = execute("git log --pretty=oneline --abbrev-commit -G %s %s" + % (symbol, diff)) + return commits + + def tree_is_dirty(): """Return true if the current working tree is dirty (i.e., if any file has been added, deleted, modified, renamed or copied but not committed).""" -- 2.1.4 -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/