Bazaar Workflow

马旋(SuperMMX) supermmx at gmail.com
Sun Apr 5 10:45:03 BST 2009


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Hi, Daed Lee <daed at thoughtsofcode.com> :

On Sun, 5 Apr 2009 05:27:45 -0400
Daed Lee <daed at thoughtsofcode.com> wrote:

> I'm making the switch to distributed version control after having used
> Subversion for a while. I'm currently evaluating Mercurial, however it
> doesn't quite seem to match my workflow. The issue I have is the same
> one described here:
> 
> http://blogs.sun.com/tor/entry/mercurial_tip_checking_in_regularly
> 
> Essentially, when pulling changes from the master repository,
> Mercurial prevents you from merging with uncommitted changes in your
> local working copy. The workaround is to keep two clones locally, one
> for your actual work, and another for syncing with the master
> repository.
> 
> How does Bazaar handle the same workflow? Ideally, I'd like to avoid
> keeping an extra clone for syncing (although I'd like to have the
> option to do so for complicated merges) and be able to get by with a
> single local clone.
> 

I think it is much similar in Bazaar with one branch for syncing and
more other branches as features you are working on. All of these
branches are in the same shared repository. The commands look like
below :

* bzr init-repo --no-trees project-repo
* cd project-repo
* bzr branch bzr://somewhere/project/main-branch main
* bzr branch main feature-A
* bzr checkout --lightweight feature-A working-tree
* cd working-tree and hack (this is on the feature-A branch)

When you need to get the latest changes from the main-branch:

* cd main; bzr pull

When you need to merge the main to your feature-A:

* cd working-tree;
* bzr merge ../main
* resolve any conflicts
* bzr commit
* and continue hacking

When you need to merge your feature-A to the main-branch:

* cd working-tree; bzr switch main (now the tree represents main)
* bzr merge ../feature-A
* resolve any conflicts.
* bzr commit
* bzr push (to the remote repo)

With this setup, you only have one working tree and one repo for all branches.

Hope this helps.

- -- 
A. Because it makes the logic of the discussion difficult to follow.
Q. Why shoudn't I top post?
A. No.
Q Should I top post?

A: Because it destroys the flow of the conversation
Q: Why is it bad?
A: No, it's bad.
Q: Should I top post in replies to mailing lists? 
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.8 (MingW32)

iEYEARECAAYFAknYfZ8ACgkQYjhzyV/TMxunggCfe7fCzT801QGTkE0zdeOywKgG
MLYAn2IokEVwzJhfmt23V18AgDZZtob4
=mCVH
-----END PGP SIGNATURE-----



More information about the bazaar mailing list