git: 613aaf59afa3 - main - git-arc: Accept message via -m when updating reviews.
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Mon, 07 Nov 2022 22:46:32 UTC
The branch main has been updated by jhb: URL: https://cgit.FreeBSD.org/src/commit/?id=613aaf59afa307fc77c8eed01962a59423b1c5f3 commit 613aaf59afa307fc77c8eed01962a59423b1c5f3 Author: John Baldwin <jhb@FreeBSD.org> AuthorDate: 2022-11-07 22:43:49 +0000 Commit: John Baldwin <jhb@FreeBSD.org> CommitDate: 2022-11-07 22:46:15 +0000 git-arc: Accept message via -m when updating reviews. If a -m argument is given to update, it is passed through to arc diff when updating each review. Note that if an empty message is specified via -m, arc diff will update the review without adding a note. If an -m argument is not given, then the user's editor is invoked by arc to supply a message for each review matching the previous behavior. This can be used to simplify the process for updating a set of reviews, e.g.: git checkout foo git rebase main git arc update -m "Rebase" main.. This will rebase the 'foo' branch and update the reviews for all commits on the branch without invoking the user's editor separately for each review. Reviewed by: markj Differential Revision: https://reviews.freebsd.org/D37260 --- tools/tools/git/git-arc.1 | 12 +++++++++++- tools/tools/git/git-arc.sh | 26 ++++++++++++++++++++++---- 2 files changed, 33 insertions(+), 5 deletions(-) diff --git a/tools/tools/git/git-arc.1 b/tools/tools/git/git-arc.1 index c499c2da3320..2e107a708d9d 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 October 12, 2022 +.Dd November 7, 2022 .Dt GIT-ARC 1 .Os .Sh NAME @@ -48,6 +48,7 @@ .Op Ar commit Ns | Ns Ar commit-range .Nm .Cm update +.Op Fl m Ar message .Op Ar commit Ns | Ns Ar commit-range .Sh DESCRIPTION The @@ -105,6 +106,15 @@ Synchronize the Differential Revisions associated with the specified commits. Currently only the diff is updated; the review description and other metadata are not synchronized. +If a message is specified with +.Fl m , +that message is added as a note to the Differential Revision. +If no message is supplied, +the user's editor will be opened to provide an update message for +each revision. +If an empty message is supplied via +.Fl m , +then no notes will be added when updating Differential Revisions. .El .Sh CONFIGURATION These are manipulated by diff --git a/tools/tools/git/git-arc.sh b/tools/tools/git/git-arc.sh index a9faed2ea876..5e8cc44ce3cc 100644 --- a/tools/tools/git/git-arc.sh +++ b/tools/tools/git/git-arc.sh @@ -53,7 +53,7 @@ Commands: list <commit>|<commit range> patch <diff1> [<diff2> ...] stage [-b branch] [<commit>|<commit range>] - update [<commit>|<commit range>] + update [-m message] [<commit>|<commit range>] Description: Create or manage FreeBSD Phabricator reviews based on git commits. There @@ -501,7 +501,20 @@ gitarc__stage() gitarc__update() { - local commit commits diff + local commit commits diff have_msg msg + + while getopts m: o; do + case "$o" in + m) + msg="$OPTARG" + have_msg=1 + ;; + *) + err_usage + ;; + esac + done + shift $((OPTIND-1)) commits=$(build_commit_list "$@") for commit in ${commits}; do @@ -514,8 +527,13 @@ gitarc__update() # The linter is stupid and applies patches to the working copy. # This would be tolerable if it didn't try to correct "misspelled" variable # names. - arc diff --allow-untracked --never-apply-patches --update "$diff" \ - --head "$commit" "${commit}~" + if [ -n "$have_msg" ]; then + arc diff --message "$msg" --allow-untracked --never-apply-patches \ + --update "$diff" --head "$commit" "${commit}~" + else + arc diff --allow-untracked --never-apply-patches --update "$diff" \ + --head "$commit" "${commit}~" + fi done }