From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: "Stephen J. Turnbull" Newsgroups: gmane.emacs.devel Subject: Re: Locks on the Bzr repository Date: Sun, 22 Aug 2010 22:13:33 +0900 Message-ID: <87d3ta7ptu.fsf@uwakimon.sk.tsukuba.ac.jp> References: <4C6D56DB.7040703@swipnet.se> <4C6D8EC5.7040901@swipnet.se> <4C6E1F0A.7070506@swipnet.se> <837hjlr78p.fsf@gnu.org> <87zkwhtws5.fsf@uwakimon.sk.tsukuba.ac.jp> <83tymppj62.fsf@gnu.org> <871v9t8klf.fsf@uwakimon.sk.tsukuba.ac.jp> <83lj81pazq.fsf@gnu.org> <83aaogpcbu.fsf@gnu.org> <87vd737pxd.fsf@uwakimon.sk.tsukuba.ac.jp> <4C710651.8010203@swipnet.se> NNTP-Posting-Host: lo.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Transfer-Encoding: quoted-printable X-Trace: dough.gmane.org 1282483030 19155 80.91.229.12 (22 Aug 2010 13:17:10 GMT) X-Complaints-To: usenet@dough.gmane.org NNTP-Posting-Date: Sun, 22 Aug 2010 13:17:10 +0000 (UTC) Cc: Uday S Reddy , Eli Zaretskii , emacs-devel@gnu.org To: Jan =?iso-8859-1?Q?Dj=E4rv?= Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Sun Aug 22 15:17:08 2010 Return-path: Envelope-to: ged-emacs-devel@m.gmane.org Original-Received: from lists.gnu.org ([199.232.76.165]) by lo.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1OnAQ7-0004po-Vr for ged-emacs-devel@m.gmane.org; Sun, 22 Aug 2010 15:17:08 +0200 Original-Received: from localhost ([127.0.0.1]:41990 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1OnAQ7-0007hv-3V for ged-emacs-devel@m.gmane.org; Sun, 22 Aug 2010 09:17:07 -0400 Original-Received: from [140.186.70.92] (port=35606 helo=eggs.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1OnAPx-0007hj-FG for emacs-devel@gnu.org; Sun, 22 Aug 2010 09:17:02 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.69) (envelope-from ) id 1OnAPs-00008u-Nc for emacs-devel@gnu.org; Sun, 22 Aug 2010 09:16:57 -0400 Original-Received: from imss12.cc.tsukuba.ac.jp ([130.158.254.161]:56425) by eggs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1OnAPn-00008C-8U; Sun, 22 Aug 2010 09:16:47 -0400 Original-Received: from imss12.cc.tsukuba.ac.jp (imss12.cc.tsukuba.ac.jp [127.0.0.1]) by postfix.imss70 (Postfix) with ESMTP id 5D755F4004; Sun, 22 Aug 2010 22:16:45 +0900 (JST) Original-Received: from mgmt2.sk.tsukuba.ac.jp (unknown [130.158.97.224]) by imss12.cc.tsukuba.ac.jp (Postfix) with ESMTP id 4F635F4002; Sun, 22 Aug 2010 22:16:45 +0900 (JST) Original-Received: from uwakimon.sk.tsukuba.ac.jp (uwakimon.sk.tsukuba.ac.jp [130.158.99.156]) by mgmt2.sk.tsukuba.ac.jp (Postfix) with ESMTP id 4DE8B970252; Sun, 22 Aug 2010 22:16:45 +0900 (JST) Original-Received: by uwakimon.sk.tsukuba.ac.jp (Postfix, from userid 1000) id 9C74D1A2C38; Sun, 22 Aug 2010 22:13:33 +0900 (JST) In-Reply-To: <4C710651.8010203@swipnet.se> X-Mailer: VM undefined under 21.5 (beta29) "garbanzo" ed3b274cc037 XEmacs Lucid (x86_64-unknown-linux) X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6, seldom 2.4 (older, 4) X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Original-Sender: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.devel:129034 Archived-At: Jan Dj=E4rv writes: >=20 >=20 > Stephen J. Turnbull skrev 2010-08-21 20.59: > > The workflow should be something like > > > > 0. work in "work", a branch of "mirror" (local) which is in turn > > a branch of "trunk" (on Savannah) > > 1. pull from "trunk" into "mirror" > > 2. rebase "work" on "mirror" > > 3. repeat 0-2 until done > > 4. cd to mirror& pull from "work" into "mirror" (this will > > always succeed!) > > 5. push from "mirror" to "trunk" > > 6. if 5 succeeds, you're done (for now, go to 0 to start the > > next change) > > 7. else pull --overwrite from "trunk" into "mirror" > > 8. goto 2 >=20 > I do something similar, but 5 is a commit on a bound branch. Is > there any difference between that and push? Speaking very precisely, I think you must be doing something different from what I think you mean. If "mirror" is a bound branch, then the pull in step 4 will operate on "trunk" (ie, the Savannah mainline) before operating on "mirror". If the pull succeeds, you're done; Savannah, "mirror", and "work" are all identical (except for unversioned "junk"). There should be no need for a commit at that point. Since I am not sure exactly what you're doing, you shouldn't rely on the rest of what I say for yourself. It works for me, but since I'm guessing about your workflow, I can't be entirely sure if it should work for you. In principle, no, there would be no difference in the case of a success. It's the failure modes for commit-while-bound and commit- then-push that are different. Specifically, in a bound branch, the pull in step 4 from "work" into "mirror" can fail if someone has committed *on Savannah* while you were rebasing. Or, if you merge, or work in the bound branch, instead of pull, the commit can fail. This means that bzr has no record of the work you are trying to push. If you don't make any changes while the commit is in process, then the workspace is your record, and you can just fix the problem (typically, bzr update "mirror", build and test, and retry the commit). If you have made changes, however, you've got to untangle your mess by hand before updating "mirror". In the commit-then-push workflow, you have the commit, and you can then continue to work in that workspace while you're waiting for push to complete (successfully or not), knowing that Bazaar has a record of all your work up to the push. (Typically I will commit several times, test, and then push.)