Sunday, October 30, 2011

Subversion Best Practices: Repository Structure

Maintaining a Subversion repository can become a complex task, and implementing the right project layout from the very beginning is crucial. As Subversion doesn’t impose a strict file structure, users are free to tailor Subversion repositories to their project’s needs. Users can organize Subversion on a ‘one project per repository’ basis or create multiple projects within the same repository; and have considerable freedom when it comes to how they use Subversion’s trunk and branches. In this post, we’ll look at some guidelines and best practices on how to keep Subversion files, for users who are embarking on a new project in Subversion.

Multiple Projects: Single Repository vs. Multiple Repositories

In modern software development, it’s normal for teams to be working on multiple projects simultaneously. If this sounds like your organization, the first question you’ll need to answer is: should I set up a single repository for multiple projects, or create one repository per project? Although the experience will be slightly different for each project, there are some general benefits and drawbacks to each approach.

Single Repository

Single repositories are typically suited to organizations managing multiple, small projects that require cross references, cross tracking, etc.

Positives:

    there is a single location where all the code is stored, even for projects you aren’t directly involved in.
    ability to reuse common libraries.
    lack of duplicated maintenance (e.g only one repository needs to be backed up.)
    the ability to move data between projects more easily, and without losing any versioning information.
    all projects share the same repository history.
    typically less administration – new projects can be created without creating a new repository, and without the help of sysadmin.
    you can delete entire projects without losing the record from Subversion.


Read more: Blogging from Disco
QR: ?=kt_tw

Posted via email from Jasper-Net