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
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:
Select the Projects tab
Click on the New Project link
Name the project
Add a description – you can use wiki markup here if desired.
Click on the Next button, the wizard will show the list of Version Control systems available. Choose yours from the list.
Select Create New Managed Repository
Set your repository name (or leave it as it is)
Click Create New Managed Repository
Use the suggested repository name or create a new one, and if desired, upload a dump/bundle file using Load Dump File and Browse
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:
Select the SCM Repositories tab
Click on New Repository tab
Select the VCS type you want to use (managed repositories are only supported for Subversion, Git and Mercurial) and click on Configure
Select Create New Managed Repository and click Next
Set your repository name (or leave it as it is) and select a dump/bundle file to upload if desired.
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.
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:
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