20080620

Checkout svn 1.5

Subversion 1.5 has been released. For the server/repo side the changes are:
  • Merge Tracking - svn now sets a property [mergeinfo] to track what changesets/revisions resulted from a merge activity. What this means is that the 'safe' merging technique of first trunk to branch and then branch to trunk is more efficiently handled.
  • Better FSFS - svn now provides the administrator with the enough flexibility to work around the limitations of various filesystems. Basically the repository files can be split up and spread around as things get large (e.g. mount a new partition), and OS file caching can be optimised.
  • Scalability Proxy - svn allows the concept of master and slave svn instances (as in 1.4), but now all writes are directed to the master (via webdav proxy) and reads can work from the slave thus keeping things synchronised nicely. This really helps with distributed development and goes some way to providing some of the features of Git and Mercurial.
In addition on the client side:
  • Sparse Checkouts - the way in which you can specify what gets checked out or updated has been made more logically complete. What this means is that you need to issue fewer, more readable commands to checkout defined subsets of a tree than before.
  • Interactive Conflict Resolution - doing a 'svn up' used to then leave you hunting around for the merge to do, now it pops up with a set of options. Useful if your IDE does not have conflict resolution capabilities.
  • Changelists - a way of tagging files (not directories) with a name that is used to create a set of changes that can later be used by a commit or other such command. Again this is something a good IDE will normally do for you (e.g. Mylyn).
  • Relative svn:externals - a long overdue feature that finally permits the use of relative paths (e.g. ../other-project) in externals definitions. Prior to this externals had to use the full path which made usage via VPN or renamed servers of this feature impossible to manage. Now you can specify workspaces as disjoint repository trees and freely re-organise the repo without trashing all you externals definitions (as long as they were expressed well in the first place). Perhaps in the next version they will go even further and outlaw all absolute paths (replace external hosts with symbolic internal name?).
What else...? Bug fixes and security enhancements of course - oh and if you are still using 1.3 then you just lost your support.
Blogged with the Flock Browser

No comments: