{"id":703,"date":"2008-07-02T13:05:17","date_gmt":"2008-07-02T12:05:17","guid":{"rendered":"http:\/\/www.itwriting.com\/blog\/703-whats-new-in-subversion-15.html"},"modified":"2008-07-02T13:05:17","modified_gmt":"2008-07-02T12:05:17","slug":"whats-new-in-subversion-15","status":"publish","type":"post","link":"https:\/\/www.itwriting.com\/blog\/703-whats-new-in-subversion-15.html","title":{"rendered":"What\u2019s new in Subversion 1.5"},"content":{"rendered":"<p>The team behind the open source SCM (Software Configuration Management) tool <a href=\"http:\/\/subversion.tigris.org\">Subversion<\/a> released version 1.50 last month. Karl Fogel, president of the Subversion Corporation, says:<\/p>\n<blockquote>\n<p>Measuring by new features alone, Subversion 1.5 is our biggest release since version 1.0 became available in February 2004.<\/p>\n<\/blockquote>\n<p>I am a contented Subversion user, so took a look at the changes. Top of the list is \u201cmerge tracking\u201d, though it is described as \u201cfoundational\u201d which means that although the basic support is there, there is performance and feature work which remains to be done. From the user\u2019s perspective, the difference is that branching and merging is just easier than before, as <a href=\"http:\/\/blog.red-bean.com\/sussman\/?p=92\">explained by Ben Sussman<\/a>:<\/p>\n<blockquote>\n<p>Notice how I <em>never<\/em> had to type a single revision number in my example: Subversion 1.5 knows when the branch was created, which changes need to be synced from branch to trunk, and which changes need to be merged back into the trunk when I\u2019m done. It\u2019s all magic now. This is how it should have been in the first place.<\/p>\n<\/blockquote>\n<p>Other changes include sparse checkouts (when you only want to grab a small part of a repository), and <a href=\"http:\/\/svnbook.red-bean.com\/nightly\/en\/svn.advanced.changelists.html\">changelists<\/a>, a client feature which lets you tag a set of files under a changelist name and work on them as a group. There are also improvements aimed at making Subversion better suited to large-scale deployments using multiple servers. Subversion is still a centralized rather than a distributed SCM system, but 1.5 is better suited for use in a distributed manner. No doubt the Subversion team is aware of the increasing interest in <a href=\"http:\/\/git.or.cz\/\">Git<\/a>, a distributed system. There are also numerous bug-fixes and performance tweaks. The changes are <a href=\"http:\/\/subversion.tigris.org\/svn_1.5_releasenotes.html\">described here<\/a>.<\/p>\n<p>I want to move to Subversion 1.5 but it is not that easy. Compatibility is good, in that older clients work with 1.5 servers and vice versa, the main proviso being that you cannot mix several versions of the Subversion client with the same working copy. That is not likely to be a problem for most users.<\/p>\n<p>The difficulty I encountered is that mainstream Linux distributions still have older versions of Subversion in their stable repositories. Ubuntu, for example, has version 1.4.4. My most-used Subversion repositories are on a Debian server, which also has an old version. I don\u2019t want to switch the server to <a href=\"http:\/\/www.debian.org\/releases\/unstable\/\">sid<\/a>, Debian\u2019s development distribution, and mixing packages is often problematic. I could do a manual installation I guess; but instead I will be patient.<\/p>\n<p>I did install 1.50 on Windows, for an intranet repository. I used the <a href=\"http:\/\/www.collab.net\/downloads\/subversion\/\">Collabnet download<\/a>. All I needed to do was to inform the installer of the location of my existing repository, and then copy a few lines from the old Apache 2.0 configuration file to the new Apache 2.2 configuration file. Everything works fine. I also updated <a href=\"http:\/\/tortoisesvn.tigris.org\/\">TortoiseSVN<\/a> on the Windows clients.<\/p>\n<p>One of the advantages of Subversion (or any SCM) repositories over synched folders like those in Microsoft\u2019s <a href=\"https:\/\/www.mesh.com\">Live Mesh<\/a> or Apple\u2019s <a href=\"http:\/\/www.apple.com\/mobileme\/\">MobileMe<\/a> (as I understand it) is that you get version history. I regard this as a key feature. The problem with synchronization is that you might overwrite a good copy with a bad one. It is easy to do; it might be caused by user error, or a bug in your word processor, or a failing hard drive. Automatic synch (un)helpfully replicates the bad copy all over. Versioning means you can just rollback to the good one.<\/p>\n<div class=\"wlWriterSmartContent\" id=\"scid:0767317B-992E-4b12-91E0-4F059A8CECA8:c70d3313-e50a-4839-a167-d7d07a028760\" style=\"padding-right: 0px; display: inline; padding-left: 0px; float: none; padding-bottom: 0px; margin: 0px; padding-top: 0px\">Technorati tags: <a href=\"http:\/\/technorati.com\/tags\/subversion\" rel=\"tag\">subversion<\/a>, <a href=\"http:\/\/technorati.com\/tags\/tortoisesvn\" rel=\"tag\">tortoisesvn<\/a>, <a href=\"http:\/\/technorati.com\/tags\/scm\" rel=\"tag\">scm<\/a>, <a href=\"http:\/\/technorati.com\/tags\/ubuntu\" rel=\"tag\">ubuntu<\/a>, <a href=\"http:\/\/technorati.com\/tags\/debian\" rel=\"tag\">debian<\/a>, <a href=\"http:\/\/technorati.com\/tags\/apache\" rel=\"tag\">apache<\/a>, <a href=\"http:\/\/technorati.com\/tags\/microsoft\" rel=\"tag\">microsoft<\/a>, <a href=\"http:\/\/technorati.com\/tags\/apple\" rel=\"tag\">apple<\/a>, <a href=\"http:\/\/technorati.com\/tags\/live+mesh\" rel=\"tag\">live mesh<\/a>, <a href=\"http:\/\/technorati.com\/tags\/mobileme\" rel=\"tag\">mobileme<\/a><\/div>\n","protected":false},"excerpt":{"rendered":"<p>The team behind the open source SCM (Software Configuration Management) tool Subversion released version 1.50 last month. Karl Fogel, president of the Subversion Corporation, says: Measuring by new features alone, Subversion 1.5 is our biggest release since version 1.0 became available in February 2004. I am a contented Subversion user, so took a look at &hellip; <a href=\"https:\/\/www.itwriting.com\/blog\/703-whats-new-in-subversion-15.html\" class=\"more-link\">Continue reading <span class=\"screen-reader-text\">What\u2019s new in Subversion 1.5<\/span> <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[8,44,52,55,62,79,80,91,97],"tags":[],"class_list":["post-703","post","type-post","status-publish","format-standard","hentry","category-apple","category-internet","category-linux","category-microsoft","category-open-source","category-software","category-software-development","category-ubuntu","category-windows"],"_links":{"self":[{"href":"https:\/\/www.itwriting.com\/blog\/wp-json\/wp\/v2\/posts\/703","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.itwriting.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.itwriting.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.itwriting.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.itwriting.com\/blog\/wp-json\/wp\/v2\/comments?post=703"}],"version-history":[{"count":0,"href":"https:\/\/www.itwriting.com\/blog\/wp-json\/wp\/v2\/posts\/703\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.itwriting.com\/blog\/wp-json\/wp\/v2\/media?parent=703"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.itwriting.com\/blog\/wp-json\/wp\/v2\/categories?post=703"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.itwriting.com\/blog\/wp-json\/wp\/v2\/tags?post=703"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}