Subversion 1.2 Release Candidate 1 released

The Subversion team has released the first release candidate of the 1.2 product. Detailed release notes are also available, explaining the new features.

The features explained in summary in the release notes include:

  • new locking feature (exclusive locks)
  • full WebDAV autoversioning
  • faster binary decompression
  • a large number of improved API’s

You can find the source tarball on the download site. View the actual announcement on the announcement mailing list archive.

It looks like the official Subversion Source Repository is already running this version.

Subversion Team Posts Open Letter To Developers

The Subversion team has posted an open letter to open source developers asking them to “stop bugging Linus Torvalds About Subversion”.

This letter comes out on the heels of Linus’ decision to stop using BitKeeper due to Bitmover, Inc’s decision to stop providing a free version of Bitkeeper for open source development.

There is a pretty detailed article on KernelTrap explaining the decision on BitMovers part.

Apparently, Linus is thinking about using a tool called Monotone which, quite frankly, looks pretty interesting.

Related Articles:

Subversion 1.1.4 released.

It was announced yesterday that version 1.1.4 of the Subversion Version Control System has been released. According to the announcement, the following changes were made for this release:

Version 1.1.4
(1 April 2005, from /branches/1.1.x)
http://svn.collab.net/repos/svn/tags/1.1.4

User-visible-changes:
– Client:
* fixed: win32 not ignoring versioned symlinks (issue #2173)
* fixed: ‘svn merge’ can cause broken working copy (issue #2222)
* fixed: ‘svn commit’ fails when schedule-delete dir has local mod (r11980)
* fixed: ‘svn st -u nonexistent_file’ segfault (issue #2127)
* fixed: ‘svn cp wc wc’ utf8 conversion error (r13111)
* fixed: confusing error message about “wc not locked” (issue #2174)
* many translation updates for localized client messages

– Server:
* fixed: nasty (though unusual) performance bug in FSFS commits (r13222-3)
* fixed: FSFS memory leak when auto-merging large tree (r13193)
* fixed: FSFS memory leak in ‘svnadmin hotcopy’ (r13218, 13465, 13468)
* fixed: FSFS segfault when encountering empty data reps (r13683)
* fixed: two dataloss bugs in svndumpfilter (r12630, r12636)
* fixed: wasteful memory usage in svndumpfilter (r12637, r12640)
* fixed: mod_dav_svn segfaults when client sends bogus paths (issue #2199)

– Both:
* fixed: (win32) retry file operation if sharing violation (r12983, r12986)

Developer-visible-changes:
* add SWIG 1.3.24 and .25 compatibility (r12551, r12717-9, r12722, r13504)
* make mailer.py work on win32 (r12499, r12542, r12670)
* fixed: JavaHL run-time link error (r12576), path/url cleanups (r13090)
* fixed: python bindings log_receiver failure with SWIG 1.3.24 (r13487)
* build system tweaks: add install dependencies for fs & fs_base (r11050)

You can get the source tarballs for this release from the download area.

Subversion 1.2 ‘locking branch’ merged to trunk.

Piggy backing on yesterdays post, Ben Collins-Sussman has also announced that the locking branch has been merged into the Subversion repository trunk. This change, which took 4 months of development, implements exclusive locking on files within the repository, a feature requested since pre-1.0.

Ben also references the locking UI specification in his announcement, which is a good primer on what the UI will look like for 1.2 where locking is concerned.

As an aside, the work on locking will close the final hole in support for WebDAV and Autoversioning support. This should allow operating systems that implement DAV support natively (like Web Folders on Windows) to use an HTTP/DAV based repository as a web folder transparently.

The other really cool thing about this implementation that I haven’t seen in others is that you can flag a file with the svn:need-locks property so that it requires the user to lock it before committing it back to the repository. Very cool.

WebSVN – Easy to Install Web Based Subversion Repository Browser

If your looking for a web based Subversion repository browser that doesn’t take a rocket scientist to install, you might want to check out WebSVN.

WebSVN is a web based Subversion browser written in the PHP programming language. It took literally minutes to install. All you have to do is untar (or unzip) the installation on your web server, rename the include/distconfig.inc to config.inc and edit the config.inc file per the instructions contained in the module comments to add repositories to browse.

WebSVN supports templates, so its very easy to change the look and feel of your browser. For those used to ViewCVS, it may take a little getting used to, since the UI isn’t as intuitive at first. However, it supports the blame command, which ViewCVS does not.

Back in the beginning of the month I wrote a note to myself about a tool that creates RSS feeds from a Subversion repository. Most of these solutions require setting up post commit hooks to generate the RSS file. You get this functionality free with WebSVN — just click the “XML” button.

I need to play a little more with it, but overall from the 10 minutes I spent with it this morning (including installation), I’m liking it.

To see WebSVN in action, you need look no further than the Debian SVN repository.

SourceForge to Offer Subversion Service

Sourceforge has announced that the work is under way to offer Subversion as a service on the site.

An excerpt from the strategic projects document follows:

Subversion Service: The research, analysis, and support gear-up needed to implement a Subversion service at SourceForge.net is now in progress. As with all SourceForge.net services, extensive analysis and testing must be performed to verify suitable levels of stability and scalability before a service can be rolled-out. We are expecting the initial phases of this effort to last several weeks, to be followed by the implementation of a testing environment which will be used for a live beta test by specific selected projects. Pending successful scalability testing, service details will be finalized and service will be offered to all projects. (Last updated: 2005-03-02 Pacific)

Subversion Wins 2004 Jolt Award

Subversion has won the 2004 Jolt award in the “Change and Configuration Management Tools” category. The announcement can be found here.

Over the past year or so, many large projects have moved over from CVS to Subversion, including the Apache, Samba and Mono projects. A full list can be found on their testimonial page.

It’s very cool to see the tool get its “props”. The team has done a great job in building a great tool. Congratulations to the Subversion team!

Pragmatic Version Control with Subversion

Pragmatic Version Control Using SubversionLast week I received my copy of Pragmatic Version Control Using Subversion, which I had preordered from Amazon.com.

As I’ve written before, I’ve been a big fan of the Pragmatic Programmer series of books for a while and when Pragmatic Version Control Using CVS came out a while back I was hoping that it was just a matter of time before a version of the book focused on Subversion would be released.

This is a good practical reference book for people just starting out with version control and Subversion. Chapter 2 is where the fun really starts, with an explanation of version control and it’s basic concepts, from the repository, through working copies, tags, branching and merging. There is also a very good explanation of locking models present in different tools and when and why you would use them. The use of scenarios to illustrate the point makes the concepts easy to understand, even for a beginner.

Chapter 3 is the ‘Getting Started’ chapter. This chapter covers installation and all the basics needed to get started including creating your first project, committing to the repository, resolving conflict — at a high level. The installation section basically covers checking your machine to see if you already have the tool installed. If it doesn’t there is a whole Appendix on installation, securing the server and administration that you are referred to.

Chapters 4-10 gets into the nitty gritty of using Subversion and covers everything from the basic commands to repository organization, vendor branches, tagging and branching. These chapters are very good for the beginner.

In the beginning of Chapter 4, the author articulates the philosophy of the book. An excerpt follows:

We think version control is one of the three essential technical practices; every team needs to be proficient in all three (the others are Pragmatic Unit Testing and Pragmatic Project Automation). Every team should be using version control — all the time, and for everything they produce. So we have to make it simple, obvious, and lightweight (because if we don’t people will eventually stop doing it).

The book I have in front of me definitely holds to the philosophy. It is a very well written book that, as all books in the Pragmatic series do, gives extremely practical advice on using version control, and making it simple enough that it looks like it is something you can sustain.

I would recommend this book for those who are just starting out and want to get something up and running quickly. One of the most important things in implementing version control, from my experience, is not learning the tool but absorbing the concepts. If you do not understand the basic concepts, the process can be quite difficult. Pragmatic Version Control Using Subversion does a really good job of explaining the base concepts in a simple to understand manner while also giving you the step by step of how to perform tasks that you will use in every day life.

If you are looking for really advanced topics such as development with the Subversion libraries, this is not the book to pick up. This is strictly for those who want to use version control for their projects and want to get it going quickly.

For the more advanced, I would highly recommend Version Control with Subversion, written by the Subversion development team, or Practical Subversion by Garrett Rooney (also a Subversion contributor).