Meeting tomorrow: Bazaar and Mercurial

3 views
Skip to first unread message

Jonathan Ellis

unread,
Aug 13, 2008, 6:20:37 PM8/13/08
to utahp...@googlegroups.com
David Owen will be presenting tomorrow on Bazaar, and Byron Clark on Mercurial.

Bazaar and Mercurial are both distributed source control systems
written in Python. DSCM is the future of source control because you
have an entire repository clone with each checkout, which lets you
perform offline commits, FAST history searches, and (this is an
implementation detail, but holds for both bzr and hg) much better
merging than svn. Despite being relatively young, bzr and hg also
have many more actively developed extensions than subversion, which
may be related to being built in Python, and both have big-name
projects using them, such as Launchpad on bzr and Mozilla on hg.

As usual, we'll be meeting at 7:00 PM at the U. Directions on
http://utahpython.org. See you there!

-Jonathan

Dennis Muhlestein

unread,
Aug 20, 2008, 1:30:32 PM8/20/08
to Utah Python User Group
On Aug 13, 4:20 pm, "Jonathan Ellis" <jbel...@gmail.com> wrote:
> David Owen will be presenting tomorrow on Bazaar, and Byron Clark on Mercurial.
>

I noticed that the presentation only included Mercurial. No Bazaar
words?

We've been playing around with git. It has it's goods and bads like
anything else I guess. We're sort of annoyed at it's submodule
support. You have to commit twice (or push in git's case) if you
change the submodule. It's somewhat annoying when you're developing
the submodule at the same time you're developing the master branch.

Anyway, we're looking around at alternatives that might save us time
in the long run. Bazaar looks like an option. I thought I'd see if
anybody uses it. Do you use their NestedTrees with the ConfigManager
plugin?

-Dennis

Seth House

unread,
Aug 20, 2008, 2:04:32 PM8/20/08
to Utah Python User Group
On Aug 20, 11:30 am, Dennis Muhlestein <djmuhlest...@gmail.com> wrote:
> I noticed that the presentation only included Mercurial.  No Bazaar
> words?

Bazaar was represented. I've got the (fuzzy) audio from the meeting
almost ready to go. I'll try to get it on the UTOS podcast site by
tomorrow.

Jonathan Ellis

unread,
Aug 20, 2008, 2:23:48 PM8/20/08
to utahp...@googlegroups.com
On Wed, Aug 20, 2008 at 11:30 AM, Dennis Muhlestein
<djmuhl...@gmail.com> wrote:
>
> On Aug 13, 4:20 pm, "Jonathan Ellis" <jbel...@gmail.com> wrote:
>> David Owen will be presenting tomorrow on Bazaar, and Byron Clark on Mercurial.
>>
>
> I noticed that the presentation only included Mercurial. No Bazaar
> words?

Two different presenters. David didn't use slides.

-Jonathan

David Owen

unread,
Aug 21, 2008, 12:06:42 AM8/21/08
to utahp...@googlegroups.com
Dennis Muhlestein wrote:
> I noticed that the presentation only included Mercurial. No Bazaar words?

As Jonathan said, no slides. But I'm happy to answer any questions you have.
If you don't think your questions fit well with the group, feel free to e-mail
me directly (fug...@gmail.com), but bzr *is* written in Python, so...

> Anyway, we're looking around at alternatives that might save us time in the
> long run. Bazaar looks like an option. I thought I'd see if anybody uses
> it.

I use it and love it. I got started with it because it had a svn plugin that
would have let me work with my svn repos disconnected. The plugin was beta and
didn't do that yet, but I got hooked on straight bzr in the process.

> Do you use their NestedTrees with the ConfigManager plugin?

Nope. But I do have vendor branches that I use in several projects. The build
system I use in those cases (ASDF for Common Lisp) takes care of that with a
little bit of symlink magic.

I'm not at my main development sys right now, but I've got the bzrtools and svn
plugins installed everywhere.

Cheers,
David

Dennis Muhlestein

unread,
Aug 21, 2008, 9:08:48 AM8/21/08
to Utah Python User Group

>
> I use it and love it.  I got started with it because it had a svn plugin that
> would have let me work with my svn repos disconnected.  The plugin was beta and
> didn't do that yet, but I got hooked on straight bzr in the process.
>
> > Do you use their NestedTrees with the ConfigManager plugin?
>
> Nope.  But I do have vendor branches that I use in several projects.  The build
> system I use in those cases (ASDF for Common Lisp) takes care of that with a
> little bit of symlink magic.
>

I did actually install and play around with it for a while yesterday.
One thing I didn't really like was that making a branch was basically
making a copy of the repository into a new directory. I can envision
an environment with a lot of branches potentially. This didn't seem
like something that would work very well when you want to set up
development tools for building and working on the code that depend on
the location of the files. Did I miss something? Perhaps there is a
way to work on a branch without checking it out somewhere else.

We're working, with git, on a few submodules that are being developed
at the same time as the parent project. It works but is somewhat a
pain. Git does a few things that are annoying and take you time to
get used to and it's easy to shoot yourself in the foot. (Like when
you update the submodules they are magically not tied to a branch any
more, you have to go checkout the branch.. It's easy, especially for
someone not familiar with git, to forget that part and commit there
changes to somewhere not easy to find them again from.) Anyway, I was
wondering if Bazaar could do that better.

Thanks for the input.
Dennis

MilesTogoe

unread,
Aug 21, 2008, 10:24:36 AM8/21/08
to utahp...@googlegroups.com
just another note about bzr - it integrates well with Launchpad, which
is a pretty nice system, and apparently at OSCON, they mentioned that
launchpad will be released in open source - right now you can sign up
for free account but it's on Canonical servers. We're using GIT, it
does the job along with hg and bzr, but I don't like having to use the
hash names.


> >
>
>

stnc...@xmission.com

unread,
Aug 21, 2008, 11:11:51 AM8/21/08
to utahp...@googlegroups.com
Quoting Dennis Muhlestein <djmuhl...@gmail.com>:

>
>
>>
>> I use it and love it. I got started with it because it had a svn
>> plugin that
>> would have let me work with my svn repos disconnected. The plugin
>> was beta and
>> didn't do that yet, but I got hooked on straight bzr in the process.
>>
>> > Do you use their NestedTrees with the ConfigManager plugin?
>>
>> Nope. But I do have vendor branches that I use in several
>> projects. The build
>> system I use in those cases (ASDF for Common Lisp) takes care of that with a
>> little bit of symlink magic.
>>
>
> I did actually install and play around with it for a while yesterday.
> One thing I didn't really like was that making a branch was basically
> making a copy of the repository into a new directory. I can envision
> an environment with a lot of branches potentially. This didn't seem
> like something that would work very well when you want to set up
> development tools for building and working on the code that depend on
> the location of the files. Did I miss something? Perhaps there is a
> way to work on a branch without checking it out somewhere else.


I've never used ConfigManager/NestedTrees, but I have been a happy
Bazaar user for 2-3 years.

I'm not sure if your question is regarding the amount of space taken
up by the branches/repositories, or if it's about absolute paths in
your build scripts (ick).

If it's about the disk space taken up by multiple branches of the same
project -- you can use a shared repository and the branches will share
the revisions that they have in common:
http://bazaar-vcs.org/SharedRepositoryTutorial

One of the things David pointed out during his demonstration is that
Bzr is very flexible with regard to how the developers are organized
and the workflow they use. Here are some docs on the wiki :
http://bazaar-vcs.org/Workflows
and
http://doc.bazaar-vcs.org/bzr.dev/en/user-guide/index.html#team-collaboration-central-style

For example, if you don't _need_ a copy of the repo -- for example, on
a CI server doing the build -- you could just use a lightweight
checkout : http://bazaar-vcs.org/CheckoutTutorial

-Steve

Dennis Muhlestein

unread,
Aug 21, 2008, 11:57:33 AM8/21/08
to Utah Python User Group

>
> I'm not sure if your question is regarding the amount of space taken  
> up by the branches/repositories, or if it's about absolute paths in  
> your build scripts  (ick).

It's not really the disk space. We don't have any absolute paths in
build scripts either. We do have things like .so files that are
symlinked
from /usr/lib though. For me personally, I like to configure project
files for XCode, Anjuta, or KDevelop that are not part of the actual
source code, but that can be used to edit and build the project I'm
working on. That's painful if the project branches keep changing
locations on my hard drive. I suppose I could create the project
file in a separate directory and then symlink the working directory,
but that again is painful when wanting to switch between different
lines of development.

That is currently my only hangup with Bazaar. I think the interface
(both command line and GUI) are quite nice though actually.

-Dennis

Jonathan Ellis

unread,
Aug 21, 2008, 12:01:13 PM8/21/08
to utahp...@googlegroups.com
On Thu, Aug 21, 2008 at 9:57 AM, Dennis Muhlestein
<djmuhl...@gmail.com> wrote:
> For me personally, I like to configure project
> files for XCode, Anjuta, or KDevelop that are not part of the actual
> source code, but that can be used to edit and build the project I'm
> working on.

If it's painful if you lose it, it should be checked in.

-Jonathan

Dennis Muhlestein

unread,
Aug 21, 2008, 12:17:22 PM8/21/08
to Utah Python User Group

>
> If it's painful if you lose it, it should be checked in.

I agree. Most project files are pretty simple to recreate if you had
to. Even if you check them in however, you'd have to close one and
open the other in a separate location with a bzr branch. Then you get
into multiple project files that are named the same thing. It's that
extra layer of work that I'm currently struggling to find an easy non-
intrusive way to work around. I don't think bzr has a different way
of doing it though as far as I'm aware.

-Dennis

David Owen

unread,
Aug 21, 2008, 12:35:30 PM8/21/08
to utahp...@googlegroups.com
Dennis Muhlestein wrote:
> I did actually install and play around with it for a while yesterday.
> One thing I didn't really like was that making a branch was basically
> making a copy of the repository into a new directory. I can envision
> an environment with a lot of branches potentially. This didn't seem
> like something that would work very well when you want to set up
> development tools for building and working on the code that depend on
> the location of the files. Did I miss something? Perhaps there is a
> way to work on a branch without checking it out somewhere else.

There are a few ways to deal with this, I think. Let's say that you have all of
your lines of development in their own branches, plus one additional local
branch for working with. Checkout style:

bzr co /dev-branches/feature1 working # initial setup
cd working
(do some work, then want to switch)
bzr ci -m "Blah..."
bzr sw /dev-branches/feature2 # every other time

Branch style:

bzr branch /dev-branches/feature1 working # initial setup
cd working
(do some work...)
bzr ci -m "Blah..."
bzr push (or merge, as appropriate)
bvz pull --overwrite /dev-branches/feature2 # every other time

If all your branches are locally accessible already, symlink style:

ln -s /dev-branches/feature1 working
cd working
(work)
bzr ci -m "Blah"
cd ..
rm working
ln -s /dev-branches/feature2 working

But maybe I misunderstood what you're trying to do. Of all of these, I'd
recommend the checkout method, as "pull --overwrite" has the potential to lose
information if you miss a step.

-David

Dennis Muhlestein

unread,
Aug 21, 2008, 12:40:28 PM8/21/08
to Utah Python User Group
Thanks for the tip. I'll keep playing with it. I didn't realize
there was a switch command. When I type bzr, it isn't listed as an
option, but I typed the help in for it and sure enough, there it was.
That could very well solve my issues with branching.

-Dennis

Seth House

unread,
Aug 22, 2008, 12:50:41 PM8/22/08
to Utah Python User Group
Reply all
Reply to author
Forward
0 new messages