On 17/06/11 11:04, Anders Logg wrote: > On Fri, Jun 17, 2011 at 10:49:47AM +0100, Garth N. Wells wrote: >> >> >> On 17/06/11 10:43, Anders Logg wrote: >>> On Fri, Jun 17, 2011 at 10:33:23AM +0100, Garth N. Wells wrote: >>>> >>>> >>>> On 17/06/11 10:28, Anders Logg wrote: >>>>> On Fri, Jun 17, 2011 at 11:24:21AM +0200, Marie E. Rognes wrote: >>>>>> >>>>>> On 17. juni 2011, at 11:05, "Garth N. Wells" <gn...@cam.ac.uk> wrote: >>>>>> >>>>>>> >>>>>>> >>>>>>> On 17/06/11 09:34, Anders Logg wrote: >>>>>>>> On Fri, Jun 17, 2011 at 08:46:46AM +0100, Garth N. Wells wrote: >>>>>>>>> >>>>>>>>> >>>>>>>>> On 17/06/11 08:35, Garth N. Wells wrote: >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> On 12/06/11 21:36, Anders Logg wrote: >>>>>>>>>>> On Fri, Jun 10, 2011 at 10:33:41PM +0100, Florian Rathgeber wrote: >>>>>>>>>>> On 11/05/11 15:43, Anders Logg wrote: >>>>>>>>>>>>>> On Wed, May 11, 2011 at 03:57:52PM +0200, Anders Logg wrote: >>>>>>>>>>>>>>> On Tue, May 10, 2011 at 10:57:07PM +0200, Martin Sandve Alnæs >>>>>>>>>>>>>>> wrote: >>>>>>>>>>>>>>>> On 10 May 2011 17:52, Anders Logg <l...@simula.no> wrote: >>>>>>>>>>>>>>>>> On Tue, May 10, 2011 at 03:49:18PM +0200, Martin Sandve Alnæs >>>>>>>>>>>>>>>>> wrote: >>>>>>>>>>>>>>>>>> On 3 May 2011 18:25, Johannes Ring <joha...@simula.no> wrote: >>>>>>>>>>>>>>>>>>> On Tue, May 3, 2011 at 3:52 PM, Anders Logg >>>>>>>>>>>>>>>>>>> <l...@simula.no> wrote: >>>>>>>>>>>>>>>>>>>> It happens to me a lot. Johannes has tried to explain to >>>>>>>>>>>>>>>>>>>> me why it >>>>>>>>>>>>>>>>>>>> happens a number of times but I still don't understand why. >>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>> Maybe he can try to explain it again to you and then I >>>>>>>>>>>>>>>>>>>> might also >>>>>>>>>>>>>>>>>>>> understand. :-) >>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>> I think I just bring up the following instructions (which I >>>>>>>>>>>>>>>>>>> think looks good): >>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>> http://wiki.squid-cache.org/BzrInstructions >>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>> Thanks Johannes. >>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>> Basically the problem is that bazaar numbers commits with >>>>>>>>>>>>>>>>>> contiguous >>>>>>>>>>>>>>>>>> integers, and when Bob and Alice works locally they will get >>>>>>>>>>>>>>>>>> the same >>>>>>>>>>>>>>>>>> commit ids for different commits. When you stand in branch >>>>>>>>>>>>>>>>>> Alice and >>>>>>>>>>>>>>>>>> merge from branch Bob, the commit numbers of branch Alice are >>>>>>>>>>>>>>>>>> conserved and a single new merge commit is recorded on top >>>>>>>>>>>>>>>>>> there. The >>>>>>>>>>>>>>>>>> commit numbers from branch Bob are lost in the merge. >>>>>>>>>>>>>>>>>> Therefore, to >>>>>>>>>>>>>>>>>> conserve the commit ids in the central branch, you have to >>>>>>>>>>>>>>>>>> merge from >>>>>>>>>>>>>>>>>> your own branch into the server branch, not the other way >>>>>>>>>>>>>>>>>> around. >>>>>>>>>>>>>>>>>> Otherwise we can never safely use the commit revisions from >>>>>>>>>>>>>>>>>> the >>>>>>>>>>>>>>>>>> central branch, since they may change every time somebody >>>>>>>>>>>>>>>>>> merges the >>>>>>>>>>>>>>>>>> 'wrong way'. >>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>> This problem does not occur with hg or git, because they use >>>>>>>>>>>>>>>>>> a hash >>>>>>>>>>>>>>>>>> value to identify a each commit. >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> So if I'm Bob and Alice has pushed some changes to the main >>>>>>>>>>>>>>>>> branch >>>>>>>>>>>>>>>>> before me, which exact commands should I write? >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> Depends on how you set up your repositories, where your >>>>>>>>>>>>>>>> branches are >>>>>>>>>>>>>>>> located, etc... >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> You really have to read up on it and try it out a bit to >>>>>>>>>>>>>>>> understand >>>>>>>>>>>>>>>> it, and I doubt I can write it better than what Johannes >>>>>>>>>>>>>>>> linked to + >>>>>>>>>>>>>>>> the bazaar docs. >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> I plan to keep a local repository with multiple branches like >>>>>>>>>>>>>>>> this: >>>>>>>>>>>>>>>> ~/dev/fenics/ufl/ - local ufl repository >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> Is this a repository? Or is it just a directory named ufl >>>>>>>>>>>>>>> inside which >>>>>>>>>>>>>>> you keep a number of different repositories? >>>>>>>>>>>>>> >>>>>>>>>>>>>> Talked to Martin during lunch. Here's a simple summary of what >>>>>>>>>>>>>> needs >>>>>>>>>>>>>> to be done to set things up correctly (Cc to dolfin-dev so >>>>>>>>>>>>>> everyone else >>>>>>>>>>>>>> sees this): >>>>>>>>>>>>>> >>>>>>>>>>>>>> bzr init-repo foo >>>>>>>>>>>>>> cd foo >>>>>>>>>>>>>> bzr checkout lp:foo trunk >>>>>>>>>>>>>> bzr branch trunk work >>>>>>>>>>>>>> >>>>>>>>>>>>>> We should add this to the developer page in the documentation. >>>>>>>>>>>>>> >>>>>>>>>>>>>> Everyone should adopt this and we should pick on anyone that >>>>>>>>>>>>>> pushes >>>>>>>>>>>>>> removed changesets. >>>>>>>>>>> >>>>>>>>>>> There's an effective way to make these pushes impossible and >>>>>>>>>>> disable the >>>>>>>>>>> bzr "feature" of renumbering revisions: set the option >>>>>>>>>>> append_revisions_only=True in <yourbranch>/.bzr/branch/branch.conf >>>>>>>>>>> >>>>>>>>>>> For branches on launchpad this works as follows: >>>>>>>>>>> 1) sftp bazaar.launchpad.net >>>>>>>>>>> cd ~user/project/branch/.bzr/branch >>>>>>>>>>> get branch.conf >>>>>>>>>>> 2) edit the downloaded file, adding append_revisions_only = True >>>>>>>>>>> 3) put branch.conf >>>>>>>>>>> >>>>>>>>>>> I suggest doing this for all branches on launchpad to enforce >>>>>>>>>>> consistent >>>>>>>>>>> revision numbers. >>>>>>>>>>> >>>>>>>>>>> More background: http://stackoverflow.com/questions/5413602 >>>>>>>>>>> >>>>>>>>>>>> Thanks. I've fixed this now for DOLFIN, FFC, UFL, UFC, FIAT. >>>>>>>>>>> >>>>>>>>>> >>>>>>>>>> Could you please undo this. I can't push changes from my personal >>>>>>>>>> branch >>>>>>>>>> to DOLFIN. I don't see that this change has any use. (If we want cvs, >>>>>>>>>> then we should use cvs.) >>>>>>>>>> >>>>>>>>>> I've tried to follow the instructions to undo the change, but can't >>>>>>>>>> get >>>>>>>>>> it to work. >>>>>>>>>> >>>>>>>>> >>>>>>>>> I've undone this for DOLFIN so I could push my changes. >>>>>>>> >>>>>>>> You should have figured out how to do the merge properly instead. We >>>>>>>> should add it back to force everyone to learn how to use bzr. ;-) >>>>>>>> >>>>>>> >>>>>>> Merge is 'bzr merge xxx'. That's a proper merge. >>>>>>> >>>>>>>> The point is to not rewrite history for the common repo. This is not >>>>>>>> the same as cvs. It's still distributed but it means merges have to be >>>>>>>> done more carefully. >>>>>>>> >>>>>>> >>>>>>> There is no history re-writing. It's just adding changesets. Unique >>>>>>> changeset numbering that bzr does will always be problematic with >>>>>>> distributed version control. If you want a unique identifier, use the >>>>>>> revision id. >>>>>>> >>>>>>>> Just do this next time and it should work: >>>>>>>> >>>>>>>> 1. Make sure you have a local bound dolfin branch: >>>>>>>> >>>>>>>> bzr checkout lp:dolfin trunk >>>>>>>> >>>>>>>> 2. Merge *from* that branch, not push to it: >>>>>>>> >>>>>>>> cd trunk >>>>>>>> bzr merge <path to your local repo> >>>>>>>> bzr commit -m merge >>>>>>>> >>>>>>> >>>>>>> It just worked before. It was simpler, and I could work against any >>>>>>> branch, like by personal branch under dolfin-core. >>>>>>> >>>>>> >>>>>> After trying the no-revisions-removed approach for a while, I also find >>>>>> it significantly more cumbersome, especially with the main vs personal >>>>>> branches. >>>>>> >>>>>> Although I see the point, I never encountered a problem with the >>>>>> changing revision numbers before. >>>>> >>>>> If Garth can't be bothered, maybe you could describe a specific >>>>> example that doesn't work? >>>>> >>>> >>>> Why would I bother with something that I think is pointless and >>>> cumbersome? Like Marie, I have never had a problem with the present >>>> approach. >>> >>> I disagree. I think there is a point to it and that it's not >>> cumbersome. >>> >>> I'm just asking for a simple example that I can try. Otherwise it's >>> just handwaving. >>> >> >> You made the change, so the onus is on you to make a case, not the other >> way around. I'm changing it back because I don't have any inclination to >> change unless someone can make a case why. The status quo rules until >> there is a consensus. >> >> What I don't want is to work in a CVS way. See: >> >> http://wiki.bazaar.canonical.com/BzrForCVSUsers >> >> It advocates checkout for those who want to keep their CVS work flow, >> and says of the approach: >> >> "This section explains how to perform common CVS behaviours in a Bazaar >> world. Unfortunately, this means that I won't be able to teach you many >> of the things that are unique to decentralized revision control systems. >> >> This section covers how to use Bazaar in checkout mode. Reading section >> 3, which covers standard Bazaar methods, is highly encouraged." >> >> Section 3 describes what we've been doing all along. > > I think you still need to make the case that it doesn't work. I claim > it does and if you say that it fails so badly, it should be easy to > come up with a single example of where it doesn't work. > > I've already made the case for the change: to not change history of the > common branch (which append_revisions_only prevents). >
Which I don't support. I also disagree with the technical point of history changes. A common branch is a centralised concept. I support developers using separate feature branches, and using personal branches on Launchpad, and the merging this into lp:dolfin. Garth > -- > Anders _______________________________________________ Mailing list: https://launchpad.net/~dolfin Post to : dolfin@lists.launchpad.net Unsubscribe : https://launchpad.net/~dolfin More help : https://help.launchpad.net/ListHelp