Tag bazaar

Bazaar 1.3 released

Now with extra speed! This release has some great fixes and enhancements:

The main changes in this release are: faster log, annotate, and other history-based operations, a new option for hardlinked working trees, and several bug fixes.

If your project has a long history with a lot of revisions, you really want to upgrade to this release right away. You can get the source from launchpad.

continuous import of mercurial to bazaar

I’ve been hassling Brian to move libmemcached to bazaar for a while now, tonight we finally got a continuous import from mercurial going into bazaar, and published on launchpad. Using bzr fast-import along with hg-fast-export, this was really easy. I’m thrilled to see all the fast-export/fast-import tools that have sprouted up between git, mercurial, and bazaar. Here is the script I stuck in cron to do the continous import (every 6 hours or so), feel free to make fun of my crappy shell scripting.

!/bin/bash

# move into the hg repo and check if hg repo has new revisions
pushd ../libmemcached

# hg incoming will exit 1 if no new revisions, 0 if new revisions
hg incoming
if [ "$?" -eq "0" ]; then
    # pull hg repo
    echo "New mercurial revisions found upstream, pulling"
    hg pull
else
    echo "No new mercurial revisions found, exiting"
    exit
fi

# move back to our bazaar shared repo
popd

# run fastimport to get the latest revisions into bzr
echo "Importing new revisions into bazaar repo"
export HG_FAST_EXPORT=~/.bazaar/plugins/fastimport/exporters/hg-fast-export.py
$HG_FAST_EXPORT --repo=../libmemcached/ | bzr fast-import -

export LAUNCHPAD_ID=`bzr launchpad-login`

# loop through all branches, pushing them to launchpad
#.
for directory in *
do
  if [ -d "$directory" ]; then
    echo "Pushing $directory to launchpad"
    pushd $directory > NUL
    echo "bzr push bzr+ssh://$LAUNCHPAD_ID@bazaar.launchpad.net/~libmemcached-developers/libmemcached/$directory"
    bzr push bzr+ssh://$LAUNCHPAD_ID@bazaar.launchpad.net/~libmemcached-developers/libmemcached/$directory
    popd
  fi
done

random semi-new neat things in Bazaar version control

I work with bazaar every day, and have a pretty stable workflow, so I don’t always notice right away when some neat new feature makes it in. Here are a few things that have impressed me this week:

  • There is a new merge algorithm available called LCA, and it is really neat. See ‘bzr help remerge’ to see how to specify LCA merge. In any cases where I would have recommended ‘remerge –weave’ in the past, you should use –lca now. I expect it will become the default soon.
  •  Bazaar has some amazingly powerful revision specifiers. You know how in CVS or Subversion there are special revision names like HEAD? Those are revision specifiers, or revision identifiers, and Bazaar supports a bunch of them. My current favorite is called ‘submit:’. You can ‘bzr diff -r submit:’ to see what changes were made in your branch, and get a good idea of what a merge would look like.
  • Imports! There is a lot of code out there, and one thing that all the free version control tools have in common is a hatred for data lock-in. While the Tailor tool has been around for a while, recently there has been some fabulous collaboration between different version control systems around building conversion tools. The fast import series of tools is really nice, and there are versions that seem to allow conversion between all the major systems (bzr, hg, git, svn).

There are a lot more exciting things coming soon. I can’t wait to see what Mark Hammond does for Bazaar on Windows, building on top of the already excellent work done by Alexander Belchenko.

Follow

Get every new post delivered to your Inbox.

Join 450 other followers

%d bloggers like this: