You are not logged in. Click here to log in.

codebeamer Application Lifecycle Management (ALM)

Search In Project

Search inClear

Using Managed Subversion, Git & Mercurial Repositories

Watch a video on a Git or Mercurial/Subversion Repository here.

What is a Managed Repository?

codeBeamer's Managed Repository technology provides an easy-to-use, consistent, provider-independent repository management tool with project-, group- and role-based administration capabilities, across multiple repositories. The scope of control is definable from the repository level down to the directory level. The unified project/role/group based access is comparatively very efficient at organizing developers into teams, groups, projects and communities.

Managed repository capabilities are available for Subversion, Git and Mercurial version control systems.

codeBeamer for Windows is shipped with Subversion, Git (since 6.0.3) and Mercurial managed repository capabilities out of the box, however the Linux/Unix version requires pre-installation of the required SCM system(s).

Managed Repository features:

  • Role-based repository access (read/write) configuration on project and directory level (directory level is currently available only with Subversion)
  • Change management, issue and change association for process enforcement
  • Associations between commits and tracker items
  • Repository user/password maintenance and authentication
  • Source code browsing with history and diff information
  • Commit browsing (who modified what, when)
  • Email notifications on commits
  • Commit statistics with trends

See Version Control: Subversion (SVN), Git, Mercurial
See Tracing Source Code Changes to Requirements, Task and Bugs

Creating Managed Repositories when Creating a New Project

Managed repositories can easily be created in codeBeamer. You can create a managed repository when creating a project:

  1. Select the Projects tab
  2. Click on the New Project link
  3. Name the project
  4. Add a description – you can use wiki markup here if desired.
  5. Click on the Next button, the wizard will show the list of Version Control systems available. Choose yours from the list.
  6. Select Create New Managed Repository
  7. Set your repository name (or leave it as it is)
  8. Click Create New Managed Repository
  9. Use the suggested repository name or create a new one, and if desired, upload a dump/bundle file using Load Dump File and Browse
  10. Click Finish

Explore your new project – it will be created immediately. However if a dump/bundle file is uploaded, then repository creation might continue in the background.

Creating Managed Repositories for Existing Projects

Managed Repositories can be also created/added to already existing projects. To do this, follow these steps:

  1. Select the SCM Repositories tab
  2. Click on New Repository tab
  3. Select the VCS type you want to use (managed repositories are only supported for Subversion, Git and Mercurial) and click on Configure
  4. Select Create New Managed Repository and click Next
  5. Set your repository name (or leave it as it is) and select a dump/bundle file to upload if desired.
  6. Click Finish

For information on creating dump/bundle files see the VCS specific subsections of this document.

Sharing Managed Repositories

codeBeamer's managed repository service is designed for distributed, internet-based development teams. The managed repository service provides project managers with a complete web-based set of role-based repository access control tools. With managed repositories codeBeamer reflects the project member repository permissions (view and commit) into a repository authorization file. For example, if a project member's role has:

  • Checkout / Clone permissions, then the specific user will get "r" (read) permission on the repository.
  • Fork permission, then the specific user will get "r" (read) permission on the repository to fork (server side cloning) it. This permission is useful for users who are not authorized to make changes on a (bless) repository however should provide changes that an integrator can merge back into the (bless) repository. This permission is relevant only for Git and Mercurial (DVCS) repositories.
  • Commit / Push permission, then the user will get "rw" (read and write) permissions on the repository.

If permissions of a role are modified or a user is added to or removed from a project, the repository permissions will be automatically synchronized.

Managing Access Permissions by Roles

Plan your project's VCS access using Basics: Projects, Roles, Groups, Members and Users with different permissions using Authentication and Access Control in codeBeamer.

For example:

  • if you wish your off-shore developers to have different access rights than your local developers (e.g. offshore developers work on the database, and local work is web-server related), then you can control this using roles.
  • if there is a code-freeze in one development area, you can implement a temporary role-permissions edit
  • if you wish your technical writers to be able to examine, but not inadvertently edit the repository, you can implement a role-based read, but not permit writes.

The users are assigned to different roles, and the roles are assigned different permissions. The permissions can be as fine- or coarse-grained as desired: from repository to directory-level access (directory-level access control is available only for Subversion).

The roles are assigned to users in the Members area (tab) of the project.

Figure: Assigning Roles to Users

After the roles and users are configured the administrators can configure the access to the SCM repositories by assigning the appropriate permissions to the roles. This can be configured for each repository using the Permissions tab on the Repository admin page:

Configuration note

In the background codeBeamer uses a script to establish the communication between the Subversion repository and the codeBeamer instance. This script is generated on every codeBeamer startup based on the actual configuration. One of the most important inputs of this script is the codeBeamer server URL. This URL is set based on the mail configuration in general.xml. More specifically:

  • the localname attribute will be used as the host name
  • the serverPort attribute will be used as the port
  • the serverScheme attribute will be used as the same

Take this example configuration:

	<mail serverPort="8080" serverScheme="https" usePersonal="true" localname="example.com">

This configuration defines the following URL: https://example.com:8080. For this the scmloop script will assume that the codeBeamer server is accessible on this url.

If these attributes are not configured explicitly codeBeamer uses the default URL, which is the is the following: http://localhost:8080

This url can be configured manually in general.xml or under the System Admin > Outgoing Email Connection menu. The last section on the configuration page shows the relevant properties: