← Back to team overview

dolfin team mailing list archive

Re: [Ufl] [Branch ~ufl-core/ufl/main] 2 revisions removed

 

On 06/17/2011 08:47 PM, Anders Logg wrote:
On Fri, Jun 17, 2011 at 08:21:34PM +0200, Marie E. Rognes wrote:
On 06/17/2011 08:03 PM, Anders Logg wrote:
On Fri, Jun 17, 2011 at 03:37:50PM +0200, Marie E. Rognes wrote:
On 06/17/2011 11:28 AM, Anders Logg wrote:
If Garth can't be bothered, maybe you could describe a specific
example that doesn't work?


Everything can be made to work one way or the other, so to say that
it "doesn't work" is not my intention.

However, I _seem to remember_ the following scenario from a couple
of days ago.

# Have
bzr branch lp:dolfin trunk

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).


This is what let's you merge things into trunk, rather than push
merges to trunk (which will rewrite history).

bzr branch trunk rognes

This is fine.

# Do work and push to test
cd rognes
<work and commit>
bzr push lp:~dolfin-core/dolfin/rognes

This is fine too.

I did exactly this now and pushed to dolfin/logg with commit message

   "Testing append_reivisons_only, commit by logg"

# Wait for buildbots.
# Meanwhile, things happen in dolfin
cd trunk
bzr pull

If you have done a checkout, you should instead do:

   cd trunk
   bzr update

Turns out the timing for this test was good. Garth had just pushed to
trunk with the commit message

   "Clean up for removal of real."

# Want to check whether things still work in rognes
# after additional stuff has happened in dolfin
cd rognes
bzr merge ../trunk (*)
bzr push lp:̃~dolfin-core/dolfin/rognes

This is almost correct. Before pushing, you need to do

   bzr commit -m "merge with trunk"

The merge command will change your local files so a commit is
necessary.


Yes, I know. I let some commits be implicit in this text, somehow
assuming that you knew that I know how to make a change and commit
;-)



I did this just now (including the commit) and pushed to dolfin/logg.

# Now, I've messed things up, because of (*)

No, nothing is messed up.

# Begin pain, especially since I have already done the above

No pain. I just did this and it works fine fine fine:

   cd trunk
   bzr merge ../work
   bzr commit -m "Merge some work in logg branch to trunk"

Nothing is messed up and there's no pain. The only thing that you
people need to do to make this work is:

1. Keep a local bound copy of trunk.
2. Merge your changes into trunk *from that directory*

The workflow is the same as before: work in local branches, push/pull
to your personal lp branch as much as you want or to a multitude of
other branches that you have on different machines, share with your
aunt/sister whatever and then just merge that into trunk.

The only thing you can't do is push merges made elsewhere into trunk.


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.

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.


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.

--
Marie



Follow ups

References