We’re experimenting with various new review styles. One is to compare two products, both good of their type, and look at the different purposes each is fit for – there’s an example (for Perforce and Subversion) here.
We think this makes it easier to get a feel for the products in context and moves away from the “this product is great, if you like this sort of thing” style, rather forced on you if you are looking at a single product. But, no – we won’t be doing “group reviews” with a vaguely favourable few lines on each product….
We’re also accepting vendor feedback via the blog, which gives readers a chance to comment too. For instance, Perforce takes exception to a couple of points in Tim Anderson’s review, although I don’t think they make a material difference to his overall (generally favourable) conclusions.
The comments come from Dave Robertson, director of European Operations Perforce Software: “The review says, ‘It's also true that Perforce fully supports parallel working, though unlike Subversion it does not positively encourage it.’ This isn’t correct. From day one, Perforce's inter-file branching architecture was built to encourage branching and parallel edits on files and codelines in contrast to how other contemporary SCM systems handled this. Ten years on, Subversion has come along with its own version of this idea.
“The review also stated that ‘Perforce falls in between old-style locking and Subversion's liberalism. Perforce marks working files read-only unless you check them out for edit. Multiple users can check-out the same file, but will be warned.’ This describes the default mode of working within Perforce, which is easily changed by changing one option in the product.”
Dave goes on to praise the flexibility and power of Perforce’s approach to Branching and Merging, something of which he is obviously particularly proud: “Perforce maintains all integration history, so users can easily identify pending changes to be merged between files, or select previously applied changes to be removed,” he says, “and Perforce also has the ability to merge code automatically based on user selected parameters… developers can rely on Perforce to ensure that correct changes are identified and moved between branches automatically”.
It’s an interesting area, but Tim Anderson tells me: “I didn't do a deep comparative study of the branching and merging [in both products] as that would have taken up the entire review and more”; and there are limits. If you want to know more about how Perforce works, in considerable detail, I’d suggest taking a look at Laura Wingerd’s excellent Practical Perforce - but that’s about 300 pages, a bit long for a single review.