How does Subversion Compare To XYZ Version Control System? – Aggregation of discussion lists and email threads comparing Subversion to other version control systems.
Category Archives: Subversion
Zdot Podcast : Why Subversion Rocks
Surfing around this morning I found a podcast that talks about Subversion. I’m in agreement with all of the points he makes in this podcast. As anyone who reads this site somewhat regularly would know, I am a big Subversion fan since the early pre-release days. It was cool to listen to someone who gets as excited about this product as I do.
An outline of some of the things talked about:
- Challenges encountered in using CVS with Java
- Early Adoption – Version 0.18
- The Subversion Teams’ Process Maturity
- API and database format compatibility commitment
- Compatibility between clients and server versions of software
- Recommendation of the Pragmatic Version Control with Subversion
- Quick description of TortoiseSVN
- Subclipse Eclipse Plugin – discussion of features
- Reasoning behind running Subversion on the Apache Webserver
- Integration with Apache Authentication Modules (specific example was integration with ActiveDirectory)
- ViewCVS – Repository Viewer
- Tool set growing around Subversion
While this podcast focuses explicitly on the Subversion tool and ViewCVS module, there are a number of other tools that you can use in your environment to lower your cost and increase your productivity, such as CruiseControl.
In a recent study I performed on my development groups process improvement over the past 5 years, we found that we had cut the cost of managing our build and release process by approximately 92% by incorporating Subversion and related tools like CruiseControl, ViewCVS, and other custom software (and major process changes that accompany them) to integrate and automate our release management processes. This savings does not include the reduction in licensing costs that come with using Open Source Software in lieu of proprietary software. They are time and people costs only. Now, this has been our experience. Your individual mileage may vary.
If you’re looking for a new version control tool, this podcast could be a source of information that can help you in your decision.
Check it out.
Some Clearcase vs. Subversion Comparisons
Aside
Subversion 1.2.1 released.
Aside
Subversion 1.2.1 released. On July 5 the Subversion team announced version 1.2.1 of the Subversion version control system.
The ChangeLog for this release is available from the announcement above.
Subversion 1.2.1 released.
The Subversion team has released version 1.2.1 of their version control system.
The following changes are included in this release:
User-visible-changes:
– Client:
* fixed: ‘svn lock’ on switched file locks wrong thing (issue #2307)
* fixed: ‘svn (un)lock’ errors on multiple targets (r14736, 14775)
* fixed: ‘svn (un)lock’ problems with URI-unsafe names (issue #2314)
* fixed: ‘svn (un)lock’ not caching authentication (r15088)
* fixed: ‘svn unlock’ loses executable bit (r14859, r14923, r14939)
* fixed: ‘svn unlock URL’ segfault (r14893)
* fixed: ‘svn commit’ failure on XML-unsafe locked paths (issue #2335)
* fixed: recursive directory copy bug (issue #2343)
* fixed: don’t initialize RA library in ‘svnversion’ (r14755)
* fixed: svn-push segfault (r14732)
* various translation updates for localized client messages– Server:
* fixed: ‘svn log’ performance regression, general (r14116, 14772, 14759)
* fixed: ‘svn log -v’ performance regression, FSFS-specific (r15016)
* fixed: mod_dav_svn bug sets content-type incorrectly (r15046)Developer-visible-changes:
* fixed: win32 innosetup’s add/repair/remove features (r14830)
* fixed: OBOE with ‘limit’ parameter of svn_repos_get_logs3(). (r15119)
* redhat RPM fixes (r15050)
* perl bindings:
– accessors for svn_lock_t (r15082)
– call utf_initialize, adjust global pool usage (r15076, r15080,
r15081, r15117)
You can download the software at one of the following links:
http://subversion.tigris.org/downloads/subversion-1.2.1.tar.gz
http://subversion.tigris.org/downloads/subversion-1.2.1.tar.bz2
http://subversion.tigris.org/downloads/subversion-1.2.1.zip
Building Subversion 1.2 on Solaris 9
I’ve just spent a couple of days trying to get Subversion to build on a Solaris 9 environment. For some reason, it wasn’t as easy as it has been in the past and I’ve had a boat load of trouble, so I wanted to document the final solution I came to.
The Source Control System
We are running Solaris 9 and access the Subversion repository via HTTP/HTTPS through Apache. This means that I have to compile in SSL support for the client, in addition to mod_svn_dav support for the Apache Server. We also use the mod_svn_authz module for access control to the repository.
Software installed On The System
The following software is installed on the system:
Description of the Problem
The normal process I use for building these components is the following:
- Download the source tarball
- Untar the contents of the tarball to the a /tmp/subversion directory
- Configure the software with the following commands:
./configure --with-ssl --with-berkeley-db=/usr/local/BerkeleyDB4.2 --with-apxs=/usr/local/apache2/bin/apxs make
- Build the software with the make command
The software builds until it hits the neon module, after which I would receive pages of the following errors:
make[1]: Entering directory `/tmp/subversion-1.2.0/neon'
cd src && make
make[2]: Entering directory `/tmp/subversion-1.2.0/neon/src'
/bin/bash ../libtool --quiet --mode=link gcc -rpath /usr/local/lib
-version-info 24:7:0
-o libneon.la ne_request.lo ne_session.lo ne_basic.lo ne_string.lo ne_uri.lo
ne_dates.lo ne_alloc.lo ne_md5.lo ne_utils.lo ne_socket.lo ne_auth.lo
ne_cookies.lo ne_redirect.lo ne_compress.lo ne_207.lo ne_xml.lo
ne_props.lo ne_locks.lo ne_acl.lo
ne_openssl.lo -lssl -lcrypto -lnsl -lsocket
-lz /tmp/subversion-1.2.0/apr-util/xml/expat/lib/libexpat.la
Text relocation remains referenced
against symbol offset in file
0xd44 /usr/local/ssl/lib/libssl.a(t1_enc.o)
0xd48 /usr/local/ssl/lib/libssl.a(t1_enc.o)
0xd4c /usr/local/ssl/lib/libssl.a(t1_enc.o)
0xd50 /usr/local/ssl/lib/libssl.a(t1_enc.o)
0xd54 /usr/local/ssl/lib/libssl.a(t1_enc.o)
0xd58 /usr/local/ssl/lib/libssl.a(t1_enc.o)
0xd5c /usr/local/ssl/lib/libssl.a(t1_enc.o)
0xd60 /usr/local/ssl/lib/libssl.a(t1_enc.o)
0xd64 /usr/local/ssl/lib/libssl.a(t1_enc.o)
0xd68 /usr/local/ssl/lib/libssl.a(t1_enc.o)
When I saw the errors streaming across the screen, I remembered that I had gotten them before. To fix them previously, I changed into the neon directory and typed the following:
./configure --with-ssl --disable-shared
This had previously fixed the problem (I have no idea why). This time it didn’t and after rebuilding I had the same results.
Finally Getting Things To Build
On a fluke, I decided to run the autogen.sh shell script file in the neon directory and reconfigure neon, enabling shared libraries. Then I went back up to the root of the tree and built again. This time the software built cleanly and all tests ran successfully.
Installing The Software
Since I finally had a clean build and all tests had ran successfully, I decided to go ahead and install it. Upon installing it I received errors that linking failed on the shared libraries being installed and I had to relink everything. This pretty much rendered my source control unuseable until I could figure out why linking failed. Just to be clear, this was not on the production repository box, but on another Solaris machine.
I went through my /usr/local/bin and /usr/local/lib directory and removed every libsvn* shared library, all apr and apr-util shared libraries and all neon libraries that were present on the system. Once this completed, I was able to install the software successfully.
One of the symptoms of old libraries in the path or linking errors is the ‘undefined symbol’ error some have reported on the mailing list when upgrading. When you run into an error like this, you might want to try finding and removing all of these libraries as stated above, as this is an error I was getting as well. Removing the old directories and running make install fixed the problem.
Conclusion
This install was pretty painful. I attribute most of the pain to the fact that I was doing most of this work between meetings, so the constant start / stop took a toll on entering “flow state” to really think about the problem. As I was experiencing these problems, I couldn’t find any really good write ups on installation of the Subversion software on Solaris, so I figured I’d throw this together in the event that someone else was experiencing this level of frustration. Plus, I figure it will help me next time I need to do this to have an actual documented process to follow.
A summary of what I did follows, for those who don’t want to wade through this whole post again:
- After exploding the tarball, change to the neon directory and run autogen.sh
- Run the configure script with your desired options
- Build the software
- Run make check and ensure all of your tests pass
- Take the server down
- Back up your current installation
- Remove your old Subversion, apr, and neon libraries from the installed version
- Install the software
- Bring the server up
- Test
On the bright side, I also upgraded a SuSE 9.1 box to the new software. This took about five minutes after I found these RPM packages for SuSE 9.1.
Subversion 1.2 released.
The much anticipated release of Subversion 1.2 is here. This version includes many changes, including the support for file locking and full autoversioning (WebDAV/Web Folders) support in addition to many performance improvements and Ruby bindings to name a few.
A full list of changes are available in the release notes.
Downloads are available from the download area.
Subversion 1.2 Release Candidate 3 released.
The Subversion team has announced the release of the third release candidate for the latest version of their version control system.
The software can be downloaded from the download section of the projects web site.
Update:
The Win32 Binaries are also now available.
Subversion 1.2.0 Release Candidate 2 released.
I’m a little behind on this one, but on April 25, the Subversion team announced the release of Subversion 1.2.0 release candidate 2.
Since I’m so late in getting this up here, the Win32 binaries are also available, according to this announcement on the mailing list.
If you are curious as to the changes in 1.2.0, check out the release notes.
For downloads, you can pull binaries and source from the project download area.
Subversion Tutorial on DevX
Wellie Chao has published a four page Subversion tutorial on the devx.com web site.
It’s an extremely high level tutorial that doesn’t get into a whole lot of detail, but useful for the beginner just starting out.