Monday, 25 February 2008

Perforce Versus Subversion ?

The two leading light-weight source control tools on the market at the moment ? What are their pros and cons ?

What they have in common:

  • database backend
  • atomic transactions
  • fast branching and labeling operations
  • work over TCP/IP
  • client/server architecture
  • multi-platform support
  • strong command line tools (you can do everything you need on the command line)
Where things differ:

  • Perforce stores all information about developer's sandboxes and checkouts on the server . Perforce uses 'workspaces' (client specs) to track the relationship between checked-out code and its location on the server.
  • With perforce you have to open a file for edit before you can work on it
  • You can't move things around in the repository
  • Supports multiple change lists (you can break up your commit into smaller chunks)
  • Doesn't version directories
  • Can checkout single file
  • Limited integration with eclipse
  • Merge tracking
Subversion

  • SVN Creates .svn directories in developer's sandboxes on checkout.
  • You can move things (files, directories) around in the repository directly
  • Branching and tagging are all 'copy' operations
  • Subversion works offline
  • Have to checkout a directory (not a single file)
  • No easy way to split a commit into chunks with their own message
  • Does version directories (implications for refactoring)
  • Slick integration with eclipse
  • Merge tracking (coming)

No comments:

Powered by Blogger.