| | Branching and merging are two inherently related functions that are due for a long-awaited upgrade in Subversion 1.5. In this article John Ferguson Smart explains branching and merging in Subversion and shows you how these functions can scale from simple to complex as your code base evolves. He then introduces the new merge features to be introduced with Subversion 1.5, which will make tracking updates and resolving merge conflicts easier than ever in your rapidly changing code. | In the interest of excellent version control, this article introduces you to four leading open source version control systems. The veteran system is CVS, so I'll start with that, followed by its would-be replacement, Subversion. Next, I'll introduce you to Bazaar and Mercurial, two systems that take a distributed rather than a centralized approach to SCM. The actions involved in version control don't vary much from system to system, so I'll use a single example (the Java Petstore application from Sun) to walk you through common development scenarios using each product. I'll offer some observations about each, and then leave you to make your own decision based on what you've learned. | This chapter is a short, casual introduction to Subversion. If you're new to version control, this chapter is definitely for you. We begin with a discussion of general version control concepts, work our way into the specific ideas behind Subversion, and show some simple examples of Subversion in use. | In February 2000, they contacted Karl Fogel, the author of Open Source Development with CVS (Coriolis, 1999), and asked if he'd like to work on this new project. Coincidentally, at the time Karl was already discussing a design for a new version control system with his friend Jim Blandy. In 1995, the two had started Cyclic Software, a company providing CVS support contracts, and although they later sold the business, they still used CVS every day at their jobs. Their frustration with CVS had led Jim to think carefully about better ways to manage versioned data, and he'd already come up with not only the name Subversion, but also with the basic design of the Subversion repository. When CollabNet called, Karl immediately agreed to work on the project, and Jim got his employer, RedHat Software, to essentially donate him to the project for an indefinite period of time. CollabNet hired Karl and Ben Collins-Sussman, and detailed design work began in May. With the help of some well-placed prods from Brian Behlendorf and Jason Robbins of CollabNet, and Greg Stein (at the time an independent developer active in the WebDAV/DeltaV specification process), Subversion quickly attracted a community of active developers. It turned out that many people had had the same frustrating experiences with CVS, and welcomed the chance to finally do something about it. | This chapter is a short, casual introduction to Subversion. If you're new to version control, this chapter is definitely for you. We begin with a discussion of general version control concepts, work our way into the specific ideas behind Subversion, and show some simple examples of Subversion in use. | When discussing the features that Subversion brings to the version control table, it is often helpful to speak of them in terms of how they improve upon CVS's design. If you're not familiar with CVS, you may not understand all of these features. And if you're not familiar with version control at all, your eyes may glaze over unless you first read Chapter 2, in which we provide a gentle introduction to version control in general. | PHP is a great Web programming language to use when creating dynamic Web sites, such as blogs. This tutorial explains how to build a blog from scratch, while storing data using flat files. The Web site will be backed up on a remote system using Subversion, protecting data in the event of a Web-site crash. Subversion is growing in popularity, and it is a great candidate to back up the Web site. With Subversion, it's also possible to roll back the Web site to earlier versions of the blog if your server crashes, or if you just didn't like last week's rambling. | | Subversion is a new open source, version control system that supports database and file-system repositories that can be accessed locally or over the network. As well as providing the usual diff, patch, tag, commit, revert, and branch functionality, Subversion adds the ability to track moves and deletes. Furthermore, it supports non-ASCII text and binary data, all of which makes it very useful not just for traditional programming tasks but also for Web development, book authoring, and other domains that have not traditionally adopted version control. | Subversion (SVN) is an open source version control system that facilitates storage, access, and parallel development of source, scripts, binaries, and other file types. While Subversion is very popular, many of its users have experienced unacceptably long wait times when importing or checking-in binaries, as well as exporting or checking them out. Fortunately, once you understand what causes this particular performance problem, it is possible to avoid it in your system. | To illustrate how StatCVS works, we need to find a project with an interesting CVS history and generate some activity reports. The developerWorks project Jikes (see Resources) has been around for a while, has numerous developers, and has a public CVS repository, so it's a good fit. | Of course, all of this only works if the file in question is in a format that Subversion understands well enough that it can merge the changes automatically. At the moment, that means the file must be textual in nature. Changes to binary files such as image files, sound files, Word documents, and so forth can't be merged automatically. Any conflicts with such files will have to be handled manually by the user. To assist in that merging, Subversion provides you with copies of the original version of the file you checked out, your modified version, and the new version from the repository, so you can compare them using some other tool. | Subversion is a very trendy open source product and it is no exception to the mistaken notion that open source products are free. Even reading the manual takes time and therefore ultimately costs money. The best way to minimize the cost of an open source product is to know both why you’re using it and how to use it. In this article, I show you five important steps to take with Subversion to get the most out of the deployment and to reduce the cost of ownership. The goal is to keep you and your CFO happy! |
|