On 17 June 2011 22:04, Garth N. Wells <[email protected]> wrote: > > > On 17/06/11 20:51, Anders Logg wrote: >> On Fri, Jun 17, 2011 at 08:20:42PM +0100, Garth N. Wells wrote: >> >>> On 17/06/11 20:10, Marie E. Rognes wrote: >>>>>>> >>>>>>> I suggest that instead you do: >>>>>>> >>>>>>> bzr checkout lp:dolfin trunk >>>>>>> >>>>>> >>>>>> No thanks. >>>>> >>>>> Why not? >>>> >>>> Because I like to have control of when things will be committed to >>>> lp:dolfin (by doing push explictly rather than that suddenly happening >>>> if I commit in the wrong directory). >> >> You have full control! It only happens if you do >> >> cd trunk >> bzr merge ../work >> >> It seems to me that's highly unlikely to happen by accident... >> >>>>>> But isn't that exactly what happens in (*) above? >>>>> >>>>> I don't understand. Do you mean that (*) is this? >>>>> >>>>> bzr merge ../trunk (*) >>>>> >>>>> That merges stuff from trunk into your local branch. It doesn't push >>>>> anything to trunk. >>>>> >>>> >>>> Yes. But then later when one does >>>> >>>> cd trunk >>>> bzr merge ../rognes >>>> >>>> I'm imagining that the previous merge in (*) (cf "merges made >>>> elsewhere") will be pushed into trunk. But that might just be my >>>> imagination. >> >> Yes, it's your imagination. The merge made elsewhere will be *merged >> from trunk*, not *pushed into trunk*. I tried the exact scenario you >> described and it worked *perfectly* fine. >> >>>>> I sounds to me like you (and Garth) try to ignore the simple >>>>> instructions for how to use bzr and then claim it doesn't work. >>>>> >>>> >>>> I'm having a hard time understanding how my previous statement "to say >>>> that it "doesn't work" is not my intention" can be interpreted as >>>> that. Anyhow, what I'm saying is that I have been following the >>>> >>>> cd trunk >>>> bzr merge ../elsewhere >>>> >>>> recipe: in most cases it works beautifully, in some more complicated >>>> cases (which I cannot easily reproduce), it has not. >> >> Let me know next time and I might be able to help. :-) >> >>>>> Here are the *very simple* instructions again: >>>>> >>>>> bzr init-repo dolfin >>>>> cd dolfin >>>>> bzr checkout lp:dolfin trunk >>>>> bzr branch trunk work >>>>> >>>>> Then do your work in work/ (or any other local branch), push and pull >>>>> as much as you want to your personal lp branch and finally, do >>>>> >>>>> cd trunk >>>>> bzr update >>>>> bzr merge ../work >>>>> >>>>> Very easy, no pain, fast and small local storage (as a result of bzr >>>>> init-repo). >>>> >>>> You prefer that way. I prefer a slightly different way. There should >>>> be room for both. >> >> So your argument is that you should be able to push merges that will >> lead to removed revisions > > I don't see how this discussion can go anywhere if you insist that > revisions are being removed, which sounds drastic. Nothing is being > removed, and there are unique revision IDs. > >> since for some reason you prefer not to >> write the commands >> >> cd trunk >> bzr merge ../work >> >> ? >> >> I think it's important that since lp:dolfin is a common repository for >> many developers, we agree on how to merge changes into lp:dolfin. My >> point of view is that >> >> 1. merging from trunk is cleaner as it avoids removed revisions >> 2. the overhead is virtually zero: >> >> bzr merge lp:dolfin && bzr commit -m merge && bzr push lp:dolfin >> >> vs >> >> cd trunk && bzr merge ../work && bzr commit -m merge >> >> The second option is even shorter! >> >>> I agree with the above. Can we all settle on just >>> >>> "try hard not to do 'bzr merge lp:dolfin'" >> >> This is incorrect. One should be able to do >> >> bzr merge lp:dolfin >> >> anytime. That's not the problem. The thing we should avoid is doing >> >> bzr push lp:dolfin >> >> if that push contains a merge with trunk (fine if it doesn't contain >> such a merge). The merge itself is not the problem. The problem is the >> push of the merge. > > How can there be a merge to push if there has been no merge? > > Garth > >> The merge should happen *from trunk*, not be pushed >> into it. >> >> -- >> Anders > > _______________________________________________ > Mailing list: https://launchpad.net/~dolfin > Post to : [email protected] > Unsubscribe : https://launchpad.net/~dolfin > More help : https://help.launchpad.net/ListHelp >
I have two points to add, then I'm out of here. I say this because I think it is valuable that everybody knows how to use the tools effectively, not because I care if you want to do it otherwise. I'm fine with Garths suggestion to just do our best. First, you can _always_ merge into lp:dolfin the "right" direction. Always. If you first merge the "wrong" direction: cd mybranch && bzr merge lp:dolfin && bzr commit then you can always: cd ../trunk # assuming no local additions over lp:dolfin here bzr up OR bzr pull # checkout or unbound branch bzr merge ../mybranch && bzr commit bzr push # only if trunk is unbound branch (automatic for a checkout) Second, I just want to repeat this again (for the third time in this thread), because both "sides" of the discussion seem to get it wrong: The use of a checkout of trunk vs an unbound branch of trunk has no relation whatsever to the direction of the merge in your workflow. These are two orthogonal workflow choices. Martin _______________________________________________ Mailing list: https://launchpad.net/~dolfin Post to : [email protected] Unsubscribe : https://launchpad.net/~dolfin More help : https://help.launchpad.net/ListHelp

