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
}