Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
GIT-ARC(1)		    General Commands Manual		    GIT-ARC(1)

NAME
       git arc -- a wrapper to improve integration between git and arcanist

SYNOPSIS
       git     arc     create	  [-l]	  [-r	 reviewer1[,reviewer2	 ...]]
	   [-s	    subscriber1[,subscriber2	  ...]]	     [-p       parent]
	   [commit ...|commit-range]
       git arc list commit ...|commit-range
       git arc patch [-c] diff1[,diff2]
       git arc stage [-b branch] [commit ...|commit-range]
       git arc update [-l] [-m message]	[commit	...|commit-range]

DESCRIPTION
       The  git	 arc  utility  creates and manages FreeBSD Phabricator reviews
       based on	git commits.  It requires the devel/arcanist port or package.

       git arc assumes a one-to-one relationship between git commits and  Dif-
       ferential Revisions, and	the Differential Revision title	must match the
       summary	line  of  the corresponding commit.  In	particular, the	commit
       summaries must be unique	across all  open  Differential	Revisions  au-
       thored by the submitter.

       The first parameter must	be a verb.  The	available verbs	are:

       create  Create  new  Differential Revisions from	the specified commits.
	       Accepts options:

	       -l	      Before processing	commit(s) display list of com-
			      mits to be processed and wait for	confirmation.

	       -r reviewer    Add one or more reviewers, separated by  commas,
			      to  revision(s)  being  created.	 Each argument
			      must be an existing Phabricator user or group.

	       -s subscriber  Add one or more subscribers, separated  by  com-
			      mas,  to	revision(s) being created.  Each argu-
			      ment must	be an  existing	 Phabricator  user  or
			      group.

	       -p parent      Specify  the  parent  of the first commit	in the
			      list.  This is useful when adding	 more  commits
			      on top of	an already existing stack in Phabrica-
			      tor.

       list    Print  the  associated Differential Revisions for the specified
	       commits.

       patch   Try to apply a patch from a Differential	Revision to  the  cur-
	       rently checked out tree.

       stage   Prepare	a  series  of  commits	to  be	pushed to the upstream
	       FreeBSD repository.  The	commits	are cherry-picked to a	branch
	       (by  default  the  "main" branch), review tags are added	to the
	       commit log message, and the log message is opened in an	editor
	       for any last-minute updates.  The commits need not have associ-
	       ated Differential Revisions.

       update  Synchronize  the	 Differential  Revisions  associated  with the
	       specified commits.  Currently only the diff is updated; the re-
	       view description	and other metadata are not synchronized.  If a
	       message is specified with -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 -m, then no
	       notes will be added when	updating Differential Revisions.

	       If  -l  is used,	display	list of	commits	to be updated and wait
	       for confirmation	of the list rather  than  prompting  for  each
	       commit.

CONFIGURATION
       These are manipulated by	git-config:

       arc.assume_yes  Assume a	"yes" answer to	all prompts instead of prompt-
		       ing  the	user.  Equivalent to the -y flag.  Defaults to
		       false.

       arc.browse      Try to open newly created reviews  in  a	 browser  tab.
		       Defaults	to false.

       arc.list	       Always use "list	mode" (-l) with	create and update.  In
		       this  mode,  the	list of	git revisions to use is	listed
		       with a single prompt before creating  or	 updating  re-
		       views.  The diffs for individual	commits	are not	shown.
		       Defaults	to false.

       arc.verbose     Always  use verbose output.  Equivalent to the -v flag.
		       Defaults	to false.

EXAMPLES
       The typical end-to-end usage looks something like this.

       Commit changes with a message and create	a Differential Review:

	     $ git commit -m "kern: Rewrite in Rust"
	     $ git arc create HEAD

       Make changes to the diff	based  on  review  feedback,  then  amend  the
       changes to the existing commit and update the Differential Review:

	     $ git commit --amend
	     $ git arc update HEAD

       Now  that  all  reviewers are happy, it is time to stage	the commit and
       push it:

	     $ git arc stage HEAD
	     $ git push	freebsd	HEAD:main

       Create a	Phabricator review using the contents of the most recent  com-
       mit in your git checkout:

	     $ git arc create -r markj,#jails HEAD

       The commit title	is used	as the review title, the commit	log message is
       used  as	 the review description, and <markj@FreeBSD.org> is added as a
       reviewer.  Also,	the "Jails" reviewer group is added using its hashtag.

       Create a	series of Phabricator reviews for each of  HEAD~2,  HEAD~  and
       HEAD:

	     $ git arc create HEAD~3..HEAD

       Pairs  of consecutive commits are linked	into a patch stack.  Note that
       the first commit	in the specified range is excluded.

       Create a	series of separate reviews for each of the following commits:

	     $ git arc create b409afcfedcdda ca03ed1345aff0

       Update the review corresponding to commit b409afcfedcdda:

	     $ git arc update b409afcfedcdda

       The title of the	commit must be the same	as it was when the review  was
       created.	  Note	that  the  review description is not automatically up-
       dated.

       Apply the patch in review D12345	to the currently checked-out tree, and
       stage it:

	     $ git arc patch D12345

       Apply the patch in review D23456	to the currently checked-out tree, and
       commit it to the	tree with the commit message in	the  review  and  make
       the  best guess for what	to use for author.  If the guess is considered
       unreliable, the user is prompted	to see if they	wish  to  use  it  (or
       abort).

	     $ git arc patch -c	D23456

       List the	status of reviews for all the commits in the branch "feature":

	     $ git arc list main..feature

       Update reviews for all commits in the branch "feature" after rebasing:

	     $ git arc update -lm "Rebase" main..feature

SEE ALSO
       build(7), development(7)

HISTORY
       The   git   arc	utility	 appeared  in  the  src	 tools	collection  in
       FreeBSD 14.0.

AUTHORS
       The git arc utility was written by  Mark	 Johnston  <markj@FreeBSD.org>
       and   the   manual   page   was	 written   by	Daniel	Ebdrup	Jensen
       <debdrup@FreeBSD.org>.

FreeBSD	14.3		       Janurary	15, 2025		    GIT-ARC(1)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=git-arc&sektion=1&manpath=FreeBSD+14.3-RELEASE+and+Ports>

home | help