Posts tagged 'bzr' – Page 3

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:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
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

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
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:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
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

1
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.

NUnit packages and SVN integration in mono

My new nunit packages just got accepted by ftp-master. The CLI Policy has been updated.

In the mean while, I’ve continued work on the svn plugin for bzr. The refactored bzr API is working great for foreign branch implementation. The only two things that are odd so far are the fact that I have to implement a phony ‘Transport’ subclass and I think the name of ‘BzrDir’ should be changed, though I’m not sure to what.

comments.

bzr speeding up Bitlbee development?

Now that we’ve switched to a version control system for Bitlbee, the development activity is suddenly reviving. The fact that 1.0 has now been released was certainly also a reason for the large number of commits in the past weeks, as previously we were mainly aiming at improving the stability of Bitlbee.

Some of the things that have been merged into the main tree over the past week or so are:

  • groupchat support in oscar by Nelson Elhage
  • typing notification improvements by f0rked
  • new storage abstraction layer by me
  • support for plugins by me

and lots of smaller improvements, mainly by Wilmer

The ancestry graph of my integration branch is getting more and more complex every day.

comments.

bzr foreign branches

Today I spent some time working again on foreign branch support for bzr. I got quite far, and can now run ‘bzr log’ and ‘bzr viz’ on remote Subversion branches.

The big hurdle to take were the Python bindings for Subversion, which are a pain to work with. Because these bindings were generated with SWIG (and haven’t had enough customization by humans), they very much look like C functions that can be called from python. The programmer has to worry about memory management, some functions with callback methods can not be used and passing an incorrect parameter usually results in a segmentation fault.

Most commands appear to run very slowly, but I found out this was caused, while I had initially blamed bzr, by ‘svn ls’ being extremely slow. It takens up to a few minutes to get a list of all files in a repository. This is of course a big problem if you’re trying to generate 2000 inventory objects, one for each revision….

bzrk screenshot

comments.

bzr hook for CIA

While trying to work on foreign branch support today, I got distracted and hacked up a small post-commit hook for bzr that submits commits to CIA. Doing stuff like this is trivial to do with bzr if you know some python.

comments.