emacs-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: bzr repository ready?


From: Stephen J. Turnbull
Subject: Re: bzr repository ready?
Date: Mon, 23 Nov 2009 14:58:02 +0900

Karl Fogel writes:

 > So just to make sure, when you wrote in the wiki

I've reviewed your changes to the wiki entry and they are absolutely
correct.

 >   "You can also just push it directly to the upstream master:
 >       bzr push bzr+ssh://bzr.savannah.gnu.org/sources/emacs/trunk/"
 > 
 > you were talking about running that from within branch SOME-TASKNAME,
 > *not* from within the local trunk mirror, right?

Yes.

 > (It might be good to always wrap commands in 'cd foo; ...; cd ..' so the
 > reader is absolutely clear on what's taking place where.)

Hey, by the time I finished that entry it was 4 am....  I think I done
purty good.<wink>  But yes, your convention makes a lot of sense (note
that I did get it right in my workflow response to somebody, later).

 >   "On the other hand, if you push directly from the ##SOME-TASKNAME##
 >    branch, your branch will be perceived as part of the mainline by
 >    ##bzr log##, while commits on the mainline (including merges from
 >    other developers and their detailed branch histories) will be hidden."
 > 
 > I don't understand the second part.  How will commits on the mainline be
 > hidden?  (That is, from whom will they be hidden, and in what
 > situations?)

They will be hidden from "bzr log -n1" on the master repository, when
they are brought in to SOME-TASKNAME via merges from the master
(upstream) or trunk (local mirror).  The reason is that when you merge
into SOME-TASKNAME from one of those, the commit from SOME-TASKNAME is
the *left parent* of the merge commit.  When you push that merge
commit to master, it will become the tip *as is*, and thus all work
committed to the master since SOME-TASKNAME branched will be on
rightward branches, and will be summarized as merges into SOME-TASKNAME.

 > It might be better just to recommend the merge-and-commit workflow for
 > *everything*, always, and let those who want to become Bzr Jedi Masters
 > learn to do the "just push" on their own, when they are experienced
 > enough to understand the consequences.  Thoughts?

I agree about the recommendation, but think description of the effects
should be moved to a separate page (or an explanatory section if
there's a possibility that this page might move to bazaar-vcs).  It's
too easy to discover for yourself, so I would write something like

    It might occur to you to save some effort by doing "bzr push" from
    the SOME-TASKNAME branch.  *Do not do this*: it `results in a
    different history`__ in the upstream master.

    __BzrLogTreatsLeftmostParentsDifferentlyFromRightwardParents

(markup is reStructuredText).  The linked page would contain the full
explanation.




reply via email to

[Prev in Thread] Current Thread [Next in Thread]