Posts in 'bazaar' – Page 2

Bazaar for dvcs users

John Goerzen has been evaluating various version control systems and his blogs posts on the subject have been interesting. One of the most interesting points he raises about Bazaar is that there is no "darcs send"-like support. The "submit" plugin gets close, but I think it misses some important features - and I agree it should be part of the core.

I'm not sure that the merge support in Bazaar is worse than that in Mercurial or Git. I've never had problems with it, and I use it a lot. Performance, other than remote access, is also no longer a problem for medium size projects as of 0.15. Update: it's no longer as much of a problem as it used to be. Remote access is still significantly slower than it can be, but people are working hard on fixing that problem.

It's also interesting to see that the Bazaar user interface and documentation is apparently confusing to people who are mostly familiar with other distributed version control systems rather than centralized systems. We definitely need to work on that.

The fact that John doesn't come from CVS or Subversion also explains that checkouts don't appeal to him.

comments.

Bazaar and Subversion nested tree support

As of 0.15, Bazaar will have initial support for nested trees. Nested trees basically allow you to add a 'magic' directory to a Bazaar branch that in itself is another Bazaar branch. A very good use case of this is if you have a project for which you need to include some library (e.g. popt). Nested trees allow you to add a reference to the upstream popt branch, avoiding the need to synchronize every time upstream fixes a bug.

Subversion has similar functionality, although the term used there is 'externals'. Externals are quite easy to use - using them only requires setting the svn:externals property.

I've done some early work on supporting externals in bzr-svn and mapping them to nested trees. At the moment, bzr-svn is able to track nested trees that are being added. Removes and changes to existing nested tree locations are still on my todo list, but will definitely be supported in bzr-svn 0.4.0.

comments.

Bazaar 0.15

Since I've upgraded serendipity to version 1.1, it seems to keep losing my draft blog entries (either that, or hiding them somewhere I can't find them). For that reason, this blog post is a bit short, as I'm too lazy to rewrite the original one I had drafted up.

Bazaar 0.15 is promising to be a really great release. Several new features are going to land: dirstate (fast working tree access), tags and initial nested tree support.

I miss travelling.

cp: Smashing Pumpkins - Ava Adore

comments.

Bazaar gains tags support

Martin sent a merge request for tags this morning. W00t! Another point off my list of wishlist items.

That leaves:

comments.

Bazaar

Now that I have some more time to spend, I've done some more work on Samba 3 and 4. In particular, I've resolved a couple of pending DCE/RPC issues. I'm now looking at improving the test runner a bit, so that it shows progress.

I released bzr-svn 0.3 a couple of days ago, a couple of hours after the first release candidate for Bazaar 0.14. The main focus has been on reducing the number of bugs. That's resulted in a large number of repositories now working with bzr-svn. In fact, all of the repositories I've tested so far work.

It's going to be another Bazaar-heavy week next week at the Bazaar sprint Wouter and I are organizing in Amsterdam.

Currently playing: Acda en de Munnik - Vondelpark Vannacht

comments.

First Bazaar commit

The Bazaar PQM has just merged my first Bazaar commits. Hopefully there are more to follow in the near future. I also managed to fixed some more annoying bzr-svn bugs today, 0.2 is nearer than ever now.

Currently playing: Transatlantic - Bridges Across Forever - Duel With The Devil

comments.

Using bzr-svn in production

At last, I've started to use bzr-svn in production. I'm now working on Samba in bzr, pulling from and pushing to Subversion branches as if they were native Bazaar branches.

It seems to work quite well. Bazaar can be slow dealing with large history, but that appears to be a temporary issue rather than a design flaw.

I've also published conversions of the two main Samba branches on the web at http://people.samba.org/bzr/jelmer/samba/.

Now, time to get the Subversion Python fixes into all the distro packages.

comments.

Pushing Mercurial branches into Subversion using Bazaar

The example below demonstrates just how well foreign branch support in Bazaar is progressing. Here's how you can actually push Mercurial branches in Subversion:

charis:~/bzr/hg-bzr-svn% svnadmin create svn-repos
charis:~/bzr/hg-bzr-svn% mkdir hg-branch; cd hg-branch
charis:~/bzr/hg-bzr-svn/hg-branch% hg init; echo data > afile; hg add afile
charis:~/bzr/hg-bzr-svn/hg-branch% hg ci -m "Add afile"
charis:~/bzr/hg-bzr-svn/hg-branch% cd ..
charis:~/bzr/hg-bzr-svn% bzr branch svn+file://`pwd`/svn-repos bzr-co
Branched 0 revision(s).
charis:~/bzr/hg-bzr-svn% cd bzr-co
charis:~/bzr/hg-bzr-svn/bzr-co% bzr pull ../hg-branch
All changes applied successfully.
1 revision(s) pulled.
charis:~/bzr/hg-bzr-svn/bzr-co% bzr push svn+file://`pwd`/../svn-repos
This transport does not update the working tree of:
svn+file:///home/jelmer/bzr/hg-bzr-svn/bzr-co/../svn-repos
1 revision(s) pushed.
charis:~/bzr/hg-bzr-svn/bzr-co% cd ..
charis:~/bzr/hg-bzr-svn% svn co file://`pwd`/svn-repos svn-co
A    svn-co/afile
 U   svn-co
Checked out revision 1.
charis:~/bzr/hg-bzr-svn% cd svn-co
charis:~/bzr/hg-bzr-svn/svn-co% svn pl
Properties on '.':
  bzr:merge
charis:~/bzr/hg-bzr-svn/svn-co% svn pg bzr:merge
hg:ef40d1bed1d1a1739457191eb979f10bfec793a2
charis:~/bzr/hg-bzr-svn/svn-co% svn log -v
------------------------------------------------------------------------
r1 | jelmer | 2006-07-10 21:33:49 +0200 (Mon, 10 Jul 2006) | 1 line
Changed paths:
   M /
   A /afile

Add afile
------------------------------------------------------------------------

comments.

Pushing to Subversion from Bazaar works

charis:~% bzr branch svn+ssh://svn.samba.org/home/svn/smb-build/trunk smb-build
Branched 50 revision(s).
charis:~% cd smb-build
charis:~/smb-build% ls
README        autogen.sh  bla    cflags.map    config.sub    configure.list  include
acinclude.m4  bin         build  config.guess  configure.in  foobar          install-sh
charis:~/smb-build% echo This line was added from Bazaar >> README
charis:~/smb-build% bzr ci -m "Update README"
modified README

You need a passphrase to unlock the secret key for
user: "Jelmer Vernooij <jelmer@samba.org>"
1024-bit DSA key, ID 1EEF5276, created 2001-10-30

Committed revision 51.
charis:~/smb-build% bzr push svn+ssh://svn.samba.org/home/svn/smb-build/trunk
This transport does not update the working tree of:
svn+ssh://svn.samba.org/home/svn/smb-build/trunk
1 revision(s) pushed.
charis:~/smb-build% bzr pull
Using saved location: svn+ssh://svn.samba.org/home/svn/smb-build/trunk
All changes applied successfully.
0 revision(s) pulled.
charis:~/smb-build% svn log -v -r HEAD svn://svn.samba.org/smb-build/trunk
------------------------------------------------------------------------
r61 | jelmer | 2006-07-04 21:37:52 +0200 (Tue, 04 Jul 2006) | 1 line
Changed paths:
   M /trunk
   M /trunk/README

Update README
------------------------------------------------------------------------
charis:~/smb-build% svn diff -r 60:61 svn://svn.samba.org/smb-build/trunk/README
Index: README
===================================================================
--- README      (revision 60)
+++ README      (revision 61)
@@ -1 +1,2 @@
 Bazaar rocks
+This line was added from Bazaar

Or view the screenshot on

Left to do before public announcement:
  • Fix nasty bug when branching off Samba (revno 11098 gives an error because it can't find a file parent...)
  • Get workingtree fixes integrated into bzr.dev
  • Get Ubuntu bug #51304 fixed (integrate Subversion fixes into package).

comments.

Next items for bzrsvn

Now that commits, merges, renames and working trees work in bzrsvn, I'm looking at the next items on the list:

  • push into Svn repositories
  • creating working copies from Bazaar
  • performance improvements

For the plugin, I've had to make quite a few changes to the Python bindings to Subversion. I recently became partial committer to Subversion. My patches are listed by the contribulyzer and commits in the archives. It's been fun working with the Subversion developers.

comments.

Commits from Bazaar into Subversion work! (-:

After a few days hard work, I finally got commits working! Mandatory screenshots are up:

comments.

Bazaar Sprint

It's been a fun week. I visited the Bazaar sprint in London with LarstIQ and had a great time meeting the core developers. Especially the pair-programming and test driven development was very interesting; the number of lines of code I wrote was smaller than usual, but I have never spent so little time debugging. Among the things I worked on were Commit Builder with Robert and some more work on bzr-svn.

The Arrow Rock festival yesterday was great. I was a little skeptical about Porcupine Tree's live performance, but I was very pleasantly surprised. Roger Waters' show was shorter than announced (3 hours) but very good nonetheless. Queensryche was the only disappointment - they played only a few old songs and their sound was pretty bad (at least from where I was standing).

comments.

Graphical User Interfaces for Bazaar

In the past one-and-a-half week, the discussion about Bazaars' Summer of Code projects, in particular the graphical user interfaces, sparked some interest in nautilus integration, which was originally an unfinished proof-of-concept I wrote a couple of months back. Jeff Bailey picked it up and then contributed some more code as well. The endresult is that we now have very basic nautilus integration, a bit like TortoiseSVN for Subversion in Window Explorer.

We've also bundled some of the existing GTK+ plugins such as bzrk and gannotate into one plugin, bzr-gtk, in the hopes of making maintainance easier. Hopefully the Summer of Code student that was going to work on this will be able to continue with these two projects.

comments.

More Subversion branch progress

After some more work on the 'svn' plugin, I am now able to do proper lightweight checkouts (including file contents) and run 'bzr log' or 'bzr info' on the working tree:

charis:~/bzr/svn% bzr checkout --lightweight \\

          svn://svn.samba.org/smb-build/trunk smb-build
charis:~/bzr/svn% bzr info smb-build
Location:
       checkout root: /home/jelmer/bzr/svn/smb-build/
  checkout of branch: svn://svn.samba.org/smb-build/trunk

Format:
       control: Meta directory format 1
  working tree: Working tree format 3
        branch: Subversion Smart Server
    repository: Subversion Smart Server

In the working tree:
        16 unchanged
       117 modified
         0 added
         0 removed
         0 renamed
         0 unknown
         0 ignored
        16 versioned subdirectories

Branch history:
        30 revisions
       296 days old
   first revision: Fri 2005-06-24 11:24:47 +0000
  latest revision: Sun 2006-03-19 01:39:05 +0000
charis:~/bzr/svn% bzr log smb-build
------------------------------------------------------------
revno: 30
committer: jelmer
timestamp: Sun 2006-03-19 01:39:05 +0000
message:
  test double target
------------------------------------------------------------
revno: 29
committer: jelmer
timestamp: Sat 2006-03-18 23:56:09 +0000
message:
  Test whether a variable in the include file is supported
------------------------------------------------------------
revno: 28
committer: jelmer
timestamp: Sat 2006-03-18 23:10:09 +0000
message:
  Check ::
------------------------------------------------------------
revno: 27
committer: jelmer
timestamp: Sat 2006-03-18 23:01:55 +0000
message:
  Test whether include in make works
------------------------------------------------------------
revno: 26
committer: tpot
timestamp: Tue 2005-08-30 01:33:10 +0000
message:
  Fix the build.
------------------------------------------------------------
revno: 25
committer: tpot
timestamp: Tue 2005-08-30 01:23:44 +0000
message:
  Break the build.
------------------------------------------------------------
[...]

comments.

lightweight checkouts of SVN branches working

After a couple of hours hard work today, I finally got "lightweight" checkouts of Subversion branches in Bazaar working! I can now run

bzr checkout --lightweight svn://svn.samba.org/samba/trunk samba-trunk

and then end up with a proper Samba tree. Unfortunately, the size of all the files is still 0 at the moment, but that should be fixed soon.

Hopefully, this is the next step towards using bzr as a svk replacement.

Oddly enough, I have been contributing to Subversion as I hit a few problems in their Python bindings.

comments.