From nobody Tue Apr 28 14:05:47 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 4g4hzj23rWz6bWmS for ; Tue, 28 Apr 2026 14:05:53 +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 "R13" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4g4hzh6Bc2z3BsM for ; Tue, 28 Apr 2026 14:05:52 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1777385152; 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=29jwebHs+sZh0zHp/tPVT6PyNH2tl22MCjRFmGMU2e4=; b=kXBjJS8IG8KRNsqUoMR2bHsxGskEvHvAYLAjE+1MpXD1toDYnYDGk+b9Did+8RYmEdJ5gu hI3cgPl/iu5CMq139qg6PPObipPkRNleyZ/1nUlDI2jMqIro4oGK7IK7t4V4/PlvQnrlBU /eXDbCoEuGXzVyrTfqPcn7Zx2NiKbUjOHN1bCEPBdrall3/31qoxrip3KI3SK9DGtdKzJF U0Ylw31z6YevHq4R8/wFG7znJXm7CxRKDzO8xxf5yyGYK69rN0xZ88FmjjysZWwZlgUQ1E 8kfyj8UvX3Cm8HoxRT2MdoYiE6m3lthHr40kjT5YVlrbf+OSQEpN8PLWkRJUcg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1777385152; a=rsa-sha256; cv=none; b=rv3FG+wE2L9zUavjuQM07ixj7S+3W4wJbzzuuxI6cE8GWCzbPmrHleZxeGDkYFxDM08q3o h7gwt7Ze+UD/aOWMPiLf4tlINoTgM+lY+NeRVK/496/Yth2CJGHsyrRYi1MRoU/fXwi+LJ EqtDfpWLf7kgGn/RH/2Gh+qytXVoTZbHF0EnW8Ur4VMV6du9mfX2j30T8/Vmyc2OP2BgCY XljaWJZ3kwUcsnUY1G8c3e00EBdJHDZC6B+satotdVuGSgQFBO7IRC1he0CTa5886Hc1fq 8OFXb0a2R6JIcZ/8pRpZ4wjHI4fVffbw8VTl4KKDBQGJAb2fCTJ2Z5HdYT8mFw== 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=1777385152; 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=29jwebHs+sZh0zHp/tPVT6PyNH2tl22MCjRFmGMU2e4=; b=ZKiNktC8z3xCv2ehT/D2NT4X73qvZir66oNJhUgCeZRC81rjdsyoJx02H8mJPKnNMt/2a4 JStLwy4mDEY54JxXMXty/umGU2AG1sAoRPwwzrDF0UJILyfTCcZIeTEtYfvTB5kUAfFN1z VZcbEw+uKWvgEJtcDqO0N97ltNdBo+1LVzWRvzZDp0fW+4Zjt+TtCXzgLeBf89elJRk8Up 0rAj+bK0GpkOto1Kvez9lndhNPrQLZYZ0b3NJ/pGZgSpBBRLyD04UMBqpusKR+pIr5rCqf InYkYLn7t7PIv6b8tEfYqTFOoy264l3WT2ttvYiMlFm+nHDOzzUTkP4vkbtpKA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4g4hzh5XJDzx2Q for ; Tue, 28 Apr 2026 14:05:52 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 387d2 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Tue, 28 Apr 2026 14:05:47 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Mark Johnston Subject: git: 448ec129bcef - main - git-arc: Add a create-draft mode 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 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: 448ec129bcef6bf147b76956ec588e357a21d310 Auto-Submitted: auto-generated Date: Tue, 28 Apr 2026 14:05:47 +0000 Message-Id: <69f0bebb.387d2.2325bf33@gitrepo.freebsd.org> The branch main has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=448ec129bcef6bf147b76956ec588e357a21d310 commit 448ec129bcef6bf147b76956ec588e357a21d310 Author: Mark Johnston AuthorDate: 2026-04-28 14:02:58 +0000 Commit: Mark Johnston CommitDate: 2026-04-28 14:02:58 +0000 git-arc: Add a create-draft mode Make it possible to create a review without publishing it. This should be useful when one wants to restrict the visibility of a review, as that cannot be done via the command line. Note that a draft review is still publicly visible if one can guess the URL, but creating one does not result in email notifications to subscribers etc., nor does a draft appear in the creating user's activity log. Once a draft is ready, one can publish it via the web UI. Reviewed by: jrm Differential Revision: https://reviews.freebsd.org/D56664 --- tools/tools/git/git-arc.1 | 10 ++++++++-- tools/tools/git/git-arc.sh | 21 ++++++++++++++++----- 2 files changed, 24 insertions(+), 7 deletions(-) diff --git a/tools/tools/git/git-arc.1 b/tools/tools/git/git-arc.1 index 6dfec53a84ad..da5732fdba26 100644 --- a/tools/tools/git/git-arc.1 +++ b/tools/tools/git/git-arc.1 @@ -24,7 +24,7 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.Dd February 10, 2026 +.Dd April 27, 2026 .Dt GIT-ARC 1 .Os .Sh NAME @@ -33,7 +33,7 @@ .Sh SYNOPSIS .Nm .Cm create -.Op Fl l +.Op Fl dl .Op Fl r Ar reviewer1 Ns Op Cm \&, Ns Ar reviewer2 ... .Op Fl s Ar subscriber1 Ns Op Cm \&, Ns Ar subscriber2 ... .Op Fl p Ar parent @@ -95,6 +95,12 @@ The available verbs are: Create new Differential Revisions from the specified commits. Accepts options: .Bl -tag -width "-s subscriber" +.It Fl d +Create the diff as a draft. +In this mode, notifications are not sent to reviewers and subscribers +until the review is published via the web UI. +The draft is still visible to anyone with the URL (or able to guess it), +but the review's visibility settings can be modified before publishing. .It Fl l Before processing commit(s) display list of commits to be processed and wait for confirmation. diff --git a/tools/tools/git/git-arc.sh b/tools/tools/git/git-arc.sh index 23b855aef8af..395787df970c 100755 --- a/tools/tools/git/git-arc.sh +++ b/tools/tools/git/git-arc.sh @@ -234,7 +234,7 @@ commit2diff() create_one_review() { - local childphid commit doprompt msg parent parentphid reviewers + local childphid commit doprompt draft msg parent parentphid reviewers local subscribers commit=$1 @@ -242,11 +242,18 @@ create_one_review() subscribers=$3 parent=$4 doprompt=$5 + draft=$6 if [ "$doprompt" ] && ! show_and_prompt "$commit"; then return 1 fi + if [ "$draft" -eq 1 ]; then + draft=--draft + else + unset draft + fi + msg=$(xmktemp) git show -s --format='%B' "$commit" > "$msg" printf "\nTest Plan:\n" >> "$msg" @@ -257,7 +264,7 @@ create_one_review() yes | EDITOR=true \ arc diff --message-file "$msg" --never-apply-patches --create \ - --allow-untracked $BROWSE --head "$commit" "${commit}~" + --allow-untracked $draft $BROWSE --head "$commit" "${commit}~" [ $? -eq 0 ] || err "could not create Phabricator diff" if [ -n "$parent" ]; then @@ -351,7 +358,7 @@ build_commit_list() gitarc__create() { - local commit commits doprompt list o prev reviewers subscribers + local commit commits doprompt draft list o prev reviewers subscribers list= prev="" @@ -359,8 +366,12 @@ gitarc__create() list=1 fi doprompt=1 - while getopts lp:r:s: o; do + draft=0 + while getopts dlp:r:s: o; do case "$o" in + d) + draft=1 + ;; l) list=1 ;; @@ -394,7 +405,7 @@ gitarc__create() for commit in ${commits}; do if create_one_review "$commit" "$reviewers" "$subscribers" "$prev" \ - "$doprompt"; then + "$doprompt" "$draft"; then prev=$(commit2diff "$commit") else prev=""