Contents
- Compatibility
-
General Functionality
- Is there any version dependency between CodeBeamer, Subversion and CB2SVN?
- Does CB2SVN require matching !CodeBeamer and Subversion matching user id's and does it require matching password?
- Does CB2SVN require LDAP to match the id's and passwords?
- Is there any way of filtering the list of CodeBeamer issues when doing an Svn commit? E.g. by assigned user. The idea being, that a developer only sees those issues assigned to him.
- Are the changes to Subversion and CodeBeamer atomic?
- What happens when a user (who does not have CB2SVN installed) tries to commit to a repository with the integration enabled?
- Is there a way to centralise the configuration file to prevent users from modifying options such as ‘commit on error’
- Does making a Svn commit against a tracker item resolve that tracker item?
- Can you give an idea of how much load CB2SVN puts on either server?
- Can CB2SVN cater for users who logon to more than one computer?
- Why are tracker items sometimes not move to the next state?
- Geographic Distribution
- Security
- Troubleshooting
- Licensing
Compatibility
What is the minimum version of CodeBeamer you need to use CB2SVN?
CB2SVN uses the CodeBeamer Open API to communicate between CodeBeamer and Subversion. CB2SVN has been tested with CodeBeamer 5.3. However, CB2SVN will work with any CodeBeamer release that provides the same API as CodeBeamer 5.3.
We are using Subversion client ‘x’. Will we need to use something else to work with CB2SVN?
No, CB2SVN is 100% client-independent meaning you can carry on using your favourite Subversion client. CB2SVN installs one small executable and configuration files on the user’s machine. No operating system or client modifications are required.
How can I use CB2SVN with an existing project using !CodeBeamer and Subversion?
This is very easy to achieve. Upon setup, CB2SVN will dynamically query your CodeBeamer database as if it was installed from the initiation of your project.
General Functionality
Is there any version dependency between CodeBeamer, Subversion and CB2SVN?
CB2SVN is compatible with Subversion 1.5.x or higher.
CB2SVN is tested against particular versions of CodeBeamer but in principle the CodeBeamer implementation part of the system should be supported for any version of CodeBeamer (provided Intland do not change the API).
Does CB2SVN require matching !CodeBeamer and Subversion matching user id's and does it require matching password?
Actually the implementation of CB2SVN can cater for different user id’s and thus passwords. On the client, the user is asked for account details for CodeBeamer which are then cached. The alternative configuration option is to have matching account names.
Does CB2SVN require LDAP to match the id's and passwords?
No CB2SVN does not require LDAP to operate.
Is there any way of filtering the list of CodeBeamer issues when doing an Svn commit? E.g. by assigned user. The idea being, that a developer only sees those issues assigned to him.
CB2SVN will run reports based on the CodeBeamer login credentials provided with the client configuration. This means that reports are run within the context of that user, and any <CURRENT_USER> elements in reports are interpreted accordingly.
Are the changes to Subversion and CodeBeamer atomic?
Because CB2SVN bridges the gap between two completely separate databases, it would theoretically be possible for a crash to cause a write to CodeBeamer and not to Subversion. However, the probability of this happening is minimal.
What happens when a user (who does not have CB2SVN installed) tries to commit to a repository with the integration enabled?
CB2SVN will allow the administrator to control the behaviour and allow the commit to pass through or fail.
Is there a way to centralise the configuration file to prevent users from modifying options such as ‘commit on error’
There are two different configuration files. CB2SVN ‘client’ manages issues such as the compatibility of the user’s name (Subversion and CodeBeamer require this). The server config file holds the value regarding ‘commit on error’. This server config file is central and holds anything that is controversial and should not be changed by users.
Does making a Svn commit against a tracker item resolve that tracker item?
A Subversion commit with CodeBeamer2Svn does not automatically resolve tracker items. However, if the option allow_next_state is switched on in the server configuration, users can choose to move tracker items to the next state based on the definition of next state in the cb_workflow_matrix.
If allow_next_state is switched on, clicking on an item twice in the CodeBeamer2Svn client GUI will move the tracker item selected to the next state.
Can you give an idea of how much load CB2SVN puts on either server?
Very little load. When you consider that CB2SVN effectively passes small text strings from server to client and back again, the communication and processing for this is very small.
Can CB2SVN cater for users who logon to more than one computer?
CB2SVN is designed to work for ‘roaming’ users e.g.
- User logs onto two computers Alpha and Beta
- User performs an SVN commit on computer Alpha
- CB2SVN will display the dialog window on both computer Alpha and Beta
User selects a CodeBeamer ticket from the CB2SVN dialog on computer Beta
- CB2SVN closes both dialog windows on both computer Alpha and Beta
Why are tracker items sometimes not move to the next state?
When a user clicks on a tracker items twice in the CodeBeamer2Svn client GUI, CodeBeamer2Svn will move the item to its next state. However, some state transitions in CodeBeamer require some fields to be set. For example, a Resolution must be selected for a tracker item before it can be resolved.
It is the user's responsibility to ensure that required fields are set prior to the state transition.
Geographic Distribution
We are running in a geographically distributed environment. Are there performance issues associated with off-shore access?
In comparison to registering Subversion commits via a CodeBeamer record manually, CB2SVN will speed up the process in comparison with opening the CodeBeamer web client for example.
The amount of information that travels through communication channels is very small and a lot of this process is performed at the server end. As with a lot of multi-sited software, there will always be slight delays, but one should measure these in milliseconds rather than multiple seconds.
Security
Which protocols are used to communicate between the CB2SVN client and the server – are these secure?
CB2SVN uses TCP. We believe CB2SVN is secure, working with CodeBeamer tracker item id's and file names rather than raw data. Further to this, you can configure the port that the CB2SVN server listens on, and ensure this is the only incoming port that is required to be accessible by the client.
What firewall changes do we need to make to allow communication to occur between segregated networks?
CB2SVN allows for routing on any user defined port. The configuration files on the client and the server require a port number in order to communicate and would involve opening any relevant firewalls first.
Troubleshooting
Connection Refused Error
I'm getting the following error, what's the problem?
connection failed for reason: [Failure instance: Traceback (failure with no frames): <class 'twisted.internet.error.ConnectionRefusedError'>: Connection was refused by other side: 10061: Unknown error.
This is usually because there is a firewall blocking the port.
You may have a machine-specific firewall service protecting either the Client, Server or both machines. The easy way to test this is to disable any firewall services (such as Windows Firewall) that are enabled and run CB2SVN again. If this works, re-enable your firewall and try opening the port that you have configured (remember the client must talk to the server and the server has to be able to talk back to the client).
Other than machine-specific firewalls, you may also have a corporate network firewall which is monitoring traffic between 2 remote networks (e.g. you have a developer in Chicago who is trying to use a server in London). Consult your network security group for more information.
How can I automatically restart clients when they shut down?
Clients automatically shut down if they detect a broken connection to the server. Common causes for clients to shut down are:-
- The server was terminated.
- The client machine's IP address changed, e.g. because the user opened a VPN (Virtual Private Network) connection or switched between wired and wireless networks.
- Network cables being temporarily unplugged.
If you are a laptop user who regularly switches between wired and wireless networks or if you are a regular user of VPN, you may want to write a script that restarts the client when it shuts down.
On Windows, such a script would looks as follows:-
@ECHO OFF
:START
start /wait "c:\Program Files\Clearvision\cb2svn\client\cb2svn_client.exe"
REM Wait for five seconds before restarting the client
ping -n 6 127.0.0.1 > nul
ECHO Restarting client
GOTO STARTOn Linux, the following script would restart the client automatically:-
while (true)
do
/opt/clearvision/cb2svn/client/cb2svn_client
# Wait for five seconds before restarting the client
sleep 5
echo "Restarting client"
doneDepending on preference, you may want to consider features such as limiting the number of reconnection attempts within a certain time frame (e.g. if it has tried to reconnect more than 5 times within the space of a minute, then wait a few minutes before trying again).
Licensing
How can I track which users are using the product?
The best approach to track the number and who is using the tool is via the log file. Write a small script to parse the log file looking for the following;
The user will need to switch to INFO log level to get the information required.
When a user logs in, the following message is displayed.
INFO >>> LOGIN userid="user1" from client at IP="192.168.1.56"
When the connection is closed, the following message is displayed:-
INFO <<< LOGOFF userid="svn" from client at IP="192.168.1.56"
After every logon message, a summary is displayed showing the users connected to the server at that time. This is probably the best information for the user to scan for as it gives clear information on who is connected at that particular point in time:-
- INFO ... current users=['user1:192.168.1.56', 'user1:192.168.1.54', 'user2:192.168.1.18'], number_of_clients=3
In the example above, the same user user1 is connected from two different machines indicated by the two IP addresses, and a different user user2 is also connected.
NOTE - Ignore the field value 'number_of_clients=3', this is for internal use only.
Is the license based on number of users or connections?
A license is consumed every time a connection is made to the server i.e. if the same user logs in on two different clients, this will consume two licenses. The log file will record the user and the client IP address.