bazaar setup question - remote scenario

Asked by Lucius on 2007-11-29

Let me first describe our scenario:
+Distributed dev team of 6 devs in US and China.
+Central branch stored on computer in US
+Relatively high network latency between US and China
+Windows development environment
The way we work is that a dev does a change and when finished commits locally and pushes to server in US. After that dev logs into server in US via terminal services (this is a windows server 2003) and does a "bzr update", so that when other devs do a bzr pull, they see the change.
It also was cumbersome for China devs due to network latency and also it is easy to forget. So we did a small service running on server that does every minute a "bzr update".
Somehow the need to run bzr update on the server seems wrong. They ought to be a better way.

+Is there a better way?
+Why is bzr update required when pushing to a remote branch? Can't bazaar not be smart enough and do the bzr update when there is no merge conflict?


Question information

English Edit question
Bazaar Edit question
No assignee Edit question
Last query:
Last reply:
John A Meinel (jameinel) said : #1

You don't need to run "bzr update" for other people to get the changes.
You only need "bzr update" if you need the local working tree to show the latest files.

You may want to get rid of the working tree entirely ("bzr help remove-tree").

If you do "bzr push" to a location, it will update the Branch (and Repository). Which is what other users use when the "bzr pull". It doesn't update the Working Tree (the project files you see on disk). But someone doing "bzr pull" doesn't care about them, only the Branch.

The only things I would probably change is to have the developers use a local shared repository, and have a checkout of the 'trunk' branch (the one on the central server). Then rather than "bzr push" you end up doing:

  cd my-branch
  bzr commit -m "Finally finished new feature X"
  cd ../trunk
  bzr merge ../my-branch
  bzr commit -m "Merging in feature X"

Because "trunk" is a checkout, it will automatically push to the other repository (Central branch stored on computer in US).

Can you help with this problem?

Provide an answer of your own, or ask Lucius for more information if necessary.

To post a message you must log in.