From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with archive (Exim 4.43) id 1NWyX4-0002gN-IX for mharc-grub-devel@gnu.org; Mon, 18 Jan 2010 15:49:06 -0500 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1NWyX2-0002fk-DN for grub-devel@gnu.org; Mon, 18 Jan 2010 15:49:04 -0500 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1NWyX1-0002fD-AX for grub-devel@gnu.org; Mon, 18 Jan 2010 15:49:03 -0500 Received: from [199.232.76.173] (port=56652 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1NWyX1-0002f6-42 for grub-devel@gnu.org; Mon, 18 Jan 2010 15:49:03 -0500 Received: from gator297.hostgator.com ([74.53.228.114]:38243) by monty-python.gnu.org with esmtps (TLS-1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.60) (envelope-from ) id 1NWyX0-0000Ow-L6 for grub-devel@gnu.org; Mon, 18 Jan 2010 15:49:02 -0500 DomainKey-Signature: a=rsa-sha1; q=dns; c=nofws; s=default; d=gibibit.com; h=Received:Date:From:To:Cc:Subject:Message-ID:In-Reply-To:References:X-Mailer:Mime-Version:Content-Type; b=U6/A/GFKCu1cmJptFtH1+SLofehn0bQzZl/L/ePgPWWImgmuwWEET/uKN5Bspe+aT2Cfek0+eOrCZwNH3toAg8B/5qOLe0As2ymp8IsJw0Gbs9qDEgwtDiiets1l8Zlv; Received: from spk.venturedesignservices.com ([65.61.115.34]:2243 helo=svelte) by gator297.hostgator.com with esmtpsa (TLSv1:AES128-SHA:128) (Exim 4.69) (envelope-from ) id 1NWyWv-0001JE-5J; Mon, 18 Jan 2010 14:48:57 -0600 Date: Mon, 18 Jan 2010 12:48:56 -0800 From: Colin D Bennett To: The development of GNU GRUB Message-ID: <20100118124856.56ddd786@svelte> In-Reply-To: <20100118181536.GV5847@riva.ucam.org> References: <20100118094915.342a0469@svelte> <20100118181536.GV5847@riva.ucam.org> X-Mailer: Claws Mail 3.7.2 (GTK+ 2.18.3; x86_64-pc-linux-gnu) Mime-Version: 1.0 Content-Type: multipart/signed; micalg=PGP-SHA1; boundary="Sig_/jkXAq33UQpIlsSwjTYOPPqq"; protocol="application/pgp-signature" X-AntiAbuse: This header was added to track abuse, please include it with any abuse report X-AntiAbuse: Primary Hostname - gator297.hostgator.com X-AntiAbuse: Original Domain - gnu.org X-AntiAbuse: Originator/Caller UID/GID - [47 12] / [47 12] X-AntiAbuse: Sender Address Domain - gibibit.com X-detected-operating-system: by monty-python.gnu.org: GNU/Linux 2.6 (newer, 2) Cc: cjwatson@ubuntu.com Subject: Re: Bazaar workflow for GRUB X-BeenThere: grub-devel@gnu.org X-Mailman-Version: 2.1.5 Precedence: list Reply-To: The development of GNU GRUB List-Id: The development of GNU GRUB List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 18 Jan 2010 20:49:04 -0000 --Sig_/jkXAq33UQpIlsSwjTYOPPqq Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable On Mon, 18 Jan 2010 18:15:37 +0000 Colin Watson wrote: > On Mon, Jan 18, 2010 at 09:49:15AM -0800, Colin D Bennett wrote: > > Do you want to mention how GRUB committers should merge features to > > the official trunk branch? I think the appropriate process, > > assuming (1) either a merge directive or a feature branch provides > > the change the we want to merge, and (2) we already have a local > > mirror branch of GRUB's trunk branch: > >=20 > > # 1. Update local trunk mirror. > > cd trunk > > bzr pull > >=20 > > # 2. Merge the feature branch or merge directive. > > bzr merge URL_OF_BRANCH > > # (Or bzr merge /path/to/merge_directive.patch) > > # If there are conflicts reported, fix them and use =E2=80=9Cbzr reso= lve=E2=80=9D > > to # mark them as resolved. > > [ make grub ... and test it ] > >=20 > > # 3. Commit the change locally. > > bzr commit > >=20 > > # 4. Push to the upstream trunk. > > bzr push :parent > > # (The :parent argument can be omitted after the first time you > > do # this, since Bazaar will remember the given location from that > > # point on as the =E2=80=9Cpush location=E2=80=9D for the local bra= nch.) > > # Note that in the unlikely event that someone happened to commit > > to # upstream trunk in the meantime since you did =E2=80=9Cbzr pull=E2= =80=9D, Bazaar > > # will tell you that the branches have diverged. You should try > > # again, doing =E2=80=9Cbzr pull --overwrite=E2=80=9D and go back to = step 2. >=20 > I recommend using a checkout for trunk, because that way bzr takes > out a write lock on the branch when you start committing and doesn't > release it until it's finished; it also warns you immediately if > you're out of date rather than making you commit and try to push > before you find out. This is a much more robust workflow for shared > branches in my experience. Checkouts are ok if used carefully. Your workflow below looks fine, but beware if when you try to commit to the trunk checkout there are new upstream changes, it may in some cases significant work to merge with your feature work; in this case you'd probably want to be able to commit the merged code and test it locally before committing again. This is where I'd merge trunk back to my feature branch again and get it clean again before proceeding with the commit to trunk. I mainly afraid of trunk checkouts because it tempts people to actually make code changes directly in the checkout, which is a recipe for problems: Before you could commit your changes at all, bzr would require you to run 'bzr update' which would automatically merge your uncommitted changes... oh, a bad automatic merge and you'd like to go back to your code before the update? that's too bad: You can't automatically undo it and get back to your (uncommitted) changes. > The workflow for a trunk checkout, based on what you have above, is > simply: >=20 > # 1. Update local trunk checkout. > cd trunk > bzr update >=20 > # 2. Merge the feature branch or merge directive. > bzr merge URL_OF_BRANCH > # (Or bzr merge /path/to/merge_directive.patch) > # If there are conflicts reported, fix them and use =E2=80=9Cbzr resolv= e=E2=80=9D to > # mark them as resolved. > [ make grub ... and test it ] >=20 > # 3. Commit the change. > bzr commit > # If someone happened to commit to upstream trunk since you did =E2=80= =9Cbzr > # update=E2=80=9D, Bazaar will tell you that you need to update again. >=20 Regards, Colin --Sig_/jkXAq33UQpIlsSwjTYOPPqq Content-Type: application/pgp-signature; name=signature.asc Content-Disposition: attachment; filename=signature.asc -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.9 (GNU/Linux) iEYEARECAAYFAktUyTgACgkQokx8fzcGbYe+QwCfexZkOf4jcim1V6HZpI4ed2e6 oqYAn1qyRTisI7UF/3GJ1O74VLxDr5ox =M7eI -----END PGP SIGNATURE----- --Sig_/jkXAq33UQpIlsSwjTYOPPqq--