From nobody Fri Jul 10 21:23:09 2026 X-Original-To: dev-commits-src-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4gxlDZ0Qr8z6d78W for ; Fri, 10 Jul 2026 21:23:10 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "YR1" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4gxlDY6HBvz47G2 for ; Fri, 10 Jul 2026 21:23:09 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1783718589; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=bvvqEG9kGkLiMoUQCrLs1oOeEWJh66u+Mc7fAOXbXI4=; b=yi2sq8gbs1xZ9Bvb2YY/vLQI0Fs4SsESWLuxrsQg0n6t7d8yEQEw2rK9567Bp5tivi7M/E gG+WY1xup0Z1K4eYmvPUHQ5suojN2lq9QUlQY3586C2iBtrvbADQQSYz47JMEhPlNmpqIB 8IdJOeR3qrwlCoEw+w5WL03ThX0+t6puo05QmiH3B3sGNLgbV2t8UWCg5Y9O3s7ZlXGIXf +SYE0RFiO2JBTz5hbKfzAGxOdcTp07KGnsxNfbG4zw8mmGA1bXKgJiG+v6LUAmY7zeRIJk WFKWgfBplkCorBvfB96QclNELnrsTanuACsnzyOBh12LyK1jy97tLJlRjneYQA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1783718589; a=rsa-sha256; cv=none; b=EGuHM5djBFdCY/FjzkzdygkU67Ib7QeOUhxa0sBpWP4oTc2NGNnbMlaiKgh9haB89boLBB wcLe07PKbZ9FOhx0y6jnzklZY8tJEnXXR+T7xv9hh2sm+ABqkM+wBZzEqXhKdxP7KdgJGn Y6hA+NmAVXqoJOvd5HhJRJCLoMY/QEFeuJsfVg8rxXq5q76idwvoV64N1UxyAsuf7NJwxm XILGZsez4c5CUJxx1CxeDplIsg2ZtLJwew93Ruxa4nNwL5ca3Owq0znVJkbfWeLLVY70Bp +kcpxd9pAMG+aOaISfGAROwXDvDa3rV6PnfYnJCQWnKtjWoUvlyJnSrj6jxE+A== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1783718589; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=bvvqEG9kGkLiMoUQCrLs1oOeEWJh66u+Mc7fAOXbXI4=; b=SFZZBh4lTzDn9BX5XC/4Y0Bbd0HoBAmzZdowEjFDUhxzAZTjZpDx43QCnbm+IaRwTpwj7f si9A+GZZOIe3McBZY/mWJG+241c8O33EhFE0mhDDpfylpjVvuzrgiB2t5MP1zM29xXK6xa grUzItkfVgrB3JUFj+D7+Zp/s1FGjJTsKGJiK4PHcmlEXtJ16uZTrUM8Uw+G1tnZAsDnwQ +OSWkBRma3MC8ix9/6kG55UHIoSX/RqJ+fGgH5DAfk226gpsI/2ol4F6mwpliJl+5IKU4Z skhtGYfyM2h3aYLslSXkpPS69x/x1GteJxpkijnNIuxaN21lMwFfkOpj7Lmh0g== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4gxlDY4tDsz1BNN for ; Fri, 10 Jul 2026 21:23:09 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 31038 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Fri, 10 Jul 2026 21:23:09 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Mark Johnston Subject: git: 8ae306a1c8eb - main - git-mfc: Add an ignore-list feature List-Id: Commit messages for all branches of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-all@freebsd.org Sender: owner-dev-commits-src-all@FreeBSD.org List-Id: List-Post: List-Help: List-Subscribe: List-Unsubscribe: List-Owner: Precedence: list MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: markj X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 8ae306a1c8eb919ca087cd20dc03e1d5a083abd6 Auto-Submitted: auto-generated Date: Fri, 10 Jul 2026 21:23:09 +0000 Message-Id: <6a5162bd.31038.62e610fe@gitrepo.freebsd.org> The branch main has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=8ae306a1c8eb919ca087cd20dc03e1d5a083abd6 commit 8ae306a1c8eb919ca087cd20dc03e1d5a083abd6 Author: Mark Johnston AuthorDate: 2026-07-10 20:26:14 +0000 Commit: Mark Johnston CommitDate: 2026-07-10 21:21:59 +0000 git-mfc: Add an ignore-list feature Commit hashes listed in ~/.git-mfc-ignore are not listed in output of git-mfc --dangling or --pending. This is handy for silencing output about commits that are tagged for MFC or as fixing another commit, but which were not MFCed for some reason or other. Requested by: des Reviewed by: des Differential Revision: https://reviews.freebsd.org/D58161 --- tools/tools/git/git-mfc | 31 +++++++++++++++++++++++++++++++ tools/tools/git/git-mfc.1 | 14 ++++++++++++++ 2 files changed, 45 insertions(+) diff --git a/tools/tools/git/git-mfc b/tools/tools/git/git-mfc index 42fb4f169412..7040443bea1b 100755 --- a/tools/tools/git/git-mfc +++ b/tools/tools/git/git-mfc @@ -250,6 +250,31 @@ def mfc_origins(repo, commit, warn=False): return origins +def load_ignore_list(repo): + """ + Load commit hashes from $HOME/.git-mfc-ignore. Each line has the format: + [ignored text] + where the hash may be abbreviated. Blank lines and lines starting with + '#' are skipped. Each hash is resolved to a full commit to validate it. + """ + path = os.path.join(os.environ['HOME'], '.git-mfc-ignore') + commits = set() + try: + with open(path) as f: + for lineno, line in enumerate(f, 1): + line = line.strip() + if not line or line.startswith('#'): + continue + abbrev = line.split()[0] + try: + commits.add(repo.commit(abbrev).hexsha) + except (git.exc.BadName, ValueError): + err(1, f"{path}:{lineno}: unknown commit {abbrev}") + except FileNotFoundError: + pass + return commits + + def dangling(repo, upstream, author=None, committer=None): """ Find commits in the current branch which have been cherry-picked from @@ -478,13 +503,19 @@ def main(): err(1, "could not determine user email; use -c or --all") if args.dangling: + ignored = load_ignore_list(repo) missing = dangling(repo, upstream, author=author, committer=committer) for fixup, commit in missing: + if fixup.hexsha in ignored: + continue print(f'{commit_summary(fixup)} fixes {commit_summary(commit)}') elif args.pending: + ignored = load_ignore_list(repo) results = pending(repo, upstream, author=author, committer=committer, baking=args.baking) for commit, ready_date, ready in results: + if commit.hexsha in ignored: + continue date_str = ready_date.strftime('%Y-%m-%d') if ready: status = f"ready since {date_str}" diff --git a/tools/tools/git/git-mfc.1 b/tools/tools/git/git-mfc.1 index 2594446201c2..9121c253f3a9 100644 --- a/tools/tools/git/git-mfc.1 +++ b/tools/tools/git/git-mfc.1 @@ -287,6 +287,20 @@ Use a different remote and origin branch: .Bd -literal -offset indent $ git mfc -r freebsd --origin main abc123 .Ed +.Sh FILES +.Bl -tag -width "$HOME/.git-mfc-ignore" +.It Pa $HOME/.git-mfc-ignore +A list of commits to exclude from +.Fl -pending +and +.Fl -dangling +output. +Each line contains a commit hash, optionally abbreviated, followed by +arbitrary text which is ignored. +Blank lines and lines beginning with +.Ql # +are skipped. +.El .Sh SEE ALSO .Xr git-cherry-pick 1 , .Xr git-config 1 ,