From nobody Sat Aug 28 21:48:53 2021 X-Original-To: freebsd-git@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 D594917AD6DF for ; Sat, 28 Aug 2021 21:48:58 +0000 (UTC) (envelope-from dbaio@FreeBSD.org) Received: from smtp.freebsd.org (smtp.freebsd.org [IPv6:2610:1c1:1:606c::24b:4]) (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 "smtp.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4GxqwV5Rrpz3h11; Sat, 28 Aug 2021 21:48:58 +0000 (UTC) (envelope-from dbaio@FreeBSD.org) Received: from auth1-smtp.messagingengine.com (auth1-smtp.messagingengine.com [66.111.4.227]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) (Authenticated sender: dbaio/mail) by smtp.freebsd.org (Postfix) with ESMTPSA id 9D950CE09; Sat, 28 Aug 2021 21:48:58 +0000 (UTC) (envelope-from dbaio@FreeBSD.org) Received: from compute1.internal (compute1.nyi.internal [10.202.2.41]) by mailauth.nyi.internal (Postfix) with ESMTP id 60C3527C0054; Sat, 28 Aug 2021 17:48:58 -0400 (EDT) Received: from mailfrontend2 ([10.202.2.163]) by compute1.internal (MEProxy); Sat, 28 Aug 2021 17:48:58 -0400 X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedvtddrudduiedgtdegucetufdoteggodetrfdotf fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfqfgfvpdfurfetoffkrfgpnffqhgen uceurghilhhouhhtmecufedttdenucenucfjughrpeffhffvuffkfhggtggujgesghdtre ertddtvdenucfhrhhomhepfdffrghnihhlohcuifdruceurghiohdfuceouggsrghiohes hfhrvggvuefuffdrohhrgheqnecuggftrfgrthhtvghrnhepieefjeeujedtveeigfetue eggeeftdejueetleekueegleekvedvffffhedtheeknecuffhomhgrihhnpehfrhgvvggs shgurdhorhhgnecuvehluhhsthgvrhfuihiivgeptdenucfrrghrrghmpehmrghilhhfrh homhepuggsrghiohdomhgvshhmthhprghuthhhphgvrhhsohhnrghlihhthidquddukedu feeluddvtddqvdeikedtvdejieekqdgusggrihhopeephfhrvggvuefuffdrohhrghesfh grshhtmhgrihhlrdgtohhm X-ME-Proxy: Received: by mail.messagingengine.com (Postfix) with ESMTPA; Sat, 28 Aug 2021 17:48:57 -0400 (EDT) Date: Sat, 28 Aug 2021 18:48:53 -0300 From: "Danilo G. Baio" To: Warner Losh Cc: freebsd-git Subject: Re: Phabricator workflow with Git Message-ID: <20210828214853.vbo7kh5fo5n5nrdn@t480.local> References: <20210828204434.n45rsndnehy2tsnb@t480.local> List-Id: Discussion of git use in the FreeBSD project List-Archive: https://lists.freebsd.org/archives/freebsd-git List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-freebsd-git@freebsd.org MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha512; protocol="application/pgp-signature"; boundary="pacsgcql5ee3p3ay" Content-Disposition: inline In-Reply-To: X-ThisMailContainsUnwantedMimeParts: N --pacsgcql5ee3p3ay Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On Sat, Aug 28, 2021 at 03:02:00PM -0600, Warner Losh wrote: > Wow! That's convoluted. /me hides >=20 > On Sat, Aug 28, 2021 at 2:44 PM Danilo G. Baio wrote: >=20 > > Hi. > > > > I'm currently using this workflow: > > > > - - - - - - - - - - - - - - - - - - - - - - - - - > > > > // Create a new branch > > $ git checkout -b FEATURE > > > > // Change stuff and git commit > > // Note that you already can include the Review information in > > // Phabricator format. > > > > ``` > > <> > > > > Summary: > > > > Test Plan: > > > > Reviewers: > > > > Subscribers: > > ``` > > > > // Open a review with the first commit > > $ arc diff --create HEAD~ > > > > > > // If it's accepted, fix the commit log message, rebase with main > > // branch, and push > > >=20 > All that's replaced by 'git arc create HEAD' >=20 >=20 > > $ git commit --amend > > $ git rebase -i main > > $ git push remote_name FEATURE:main > > >=20 > git arc stage. This also takes care of adding differential revision, etc. >=20 > will stage it into main, then you can just 'git push freebsd' to put it in > the the tree. >=20 >=20 > > // If it's NOT accepted > > // Change stuff and add a second git commit > > > > // Update review with the two commits > > $ arc diff --update DXXXXX HEAD~2 > > >=20 > git arc update >=20 > does this automatically. >=20 >=20 > > // If it's accepted, you can soft reset both commits and do a new one > > // or, just use `git merge and squash`. > > > > // merge/squash way > > // Set the second commit to be squashed > > > > $ git rebase -i main > > > > ``` > > pick 954c5d4626 Readme: First commit > > squash 7231873f23 Makefile: Second commit > > ``` > > > > or > > > > $ git reset --soft HEAD~2 > > // And add a final commit > > >=20 > I'd document only rebase. The git reset workflow is somewhat more dangero= us > and error-prone. >=20 > // Submit > > $ git push remote_name FEATURE:main > > >=20 > git arc stage > git push >=20 > is what I use, but I know lots of people like the branch:main notation. > It's harder to use, though when you lose the race. If you stage on main, > then git pull --rebase will do the right thing in one step rather than > several. >=20 >=20 > > // Delete FEATURE branch > > > > $ git checkout main > > $ git pull origin main --no-ff > > >=20 > --ff-only don't you mean? You *NEVER* want a non-ff pull with upstream. > Ever. It leads to great evil and lost changes. >=20 Yes, sorry. >=20 > > $ git branch -d FEATURE > > >=20 > Yea, this is what I use, but I have a script that does this over all the > branches.... >=20 >=20 > > I know there are git-arc (tools/tools/git-arc) on base, but I still > > didn't use it. > > >=20 > We should only document it, since it hides all this ugliness and makes > things easier, less tedious and less error-prone. >=20 >=20 > > I just want to check if there are other ways to do that (that you > > recommend), or if can I document it, at least for now, on our > > Phabricator Wiki page [1]. > > > > > > 1 - https://wiki.freebsd.org/Phabricator >=20 >=20 > While you can document what you've said, I found it somewhat confusing to > follow, especially relative > to git arc. >=20 > Warner Glad that I sent this message here. So, I'll test/use `git arc`. Is there anything written about it elsewhere? Thank you for the prompt reply and the tips. Regards. --=20 Danilo G. Baio (dbaio) --pacsgcql5ee3p3ay Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iQKTBAABCgB9FiEEORj0UTsjzCy+enIkmpN7LfMuiNcFAmEqr0JfFIAAAAAALgAo aXNzdWVyLWZwckBub3RhdGlvbnMub3BlbnBncC5maWZ0aGhvcnNlbWFuLm5ldDM5 MThGNDUxM0IyM0NDMkNCRTdBNzIyNDlBOTM3QjJERjMyRTg4RDcACgkQmpN7LfMu iNdsYRAAsYuidoMzBe6YQrqLjerTWXdG8P3xALBT+1qc+iJLcjHA4ayYcAugQkgf oa9Pui7c3j5ISji0QbSploWvblzU5JGbqkgmX5aj6LiLsVmPc/KDeWYafJ0Zyx7Y JQzq83mdzBeOryioHEQb1DH3xdG5YP6uGH3cyZQM0aU4YsYif5d+7dP6+fty1aQe QaqNxbcBoEM5VsDLwOFaj4SszXybKDL/FgQ3IFSpGp4dG7FUgXNLmDsUb5mtZ13V nxbRIoKZGacQUE4rv5Rgo+gzogidwdSa0n6iR/3EXDNC8GCtu0bLsDEUjzUB5pGY YER9foMVzfoLH/BKtLt7kJYGaSLE0GOBEegLEt+eC/vSl8jaDxqESESXxb1qs5AX lS39aPRabqarWOxgu1iQiqFgqjkzavuLv2x9ixJtsD/M8eVRYzoq6fHw2Mhr5CiQ rm7Kh98U2eFSzFr4sDuhDfLT4KdvAK0xepufuIjRS3Mou+/Qd3FFV7TpH3MjKVI/ SJNWSJ5dCirregXCcy+h5ALRLLJOgXGnKS7PWVSGw21vICDCfNHyYIWN7UdNoX45 NSysu2Ztyabhcu/FAWXwAO1/EFoqeF6sGdo885f0Hy+WQ0i16YvFLMgCqblmutxY 1PAHpSrDD+OH5cuML+7NEescFqE6uZ/R3hL8uYGx0ajl26CFs0E= =cyOM -----END PGP SIGNATURE----- --pacsgcql5ee3p3ay--