TFS Synchronisation - techtalk/SpecLog-Resources GitHub Wiki
Required Permissions for Synchronising with TFS
The TFS user assigned to the plugin is used to synchronise data with TFS, and requires the following permissions (group memberships) in TFS:
- Member of the
tfs service accounts
group - In order to impersonate other users (so that the correct user name appears in the history), the account requires the
Make requests on behalf of others
permission (granted by default to users in thetfs service accounts
group) - An access level (e.g. "Basic") that allows access to the Code area in order to link feature files
If you are experiencing problems relating to permissions, we recommend first verifying whether you can access the TFS project with your user account. If so, enter your account details in the plugin's settings and test the synchronisation. Provided you can access the TFS project, the synchornisation service should also be able to synchronise requirements from SpecLog to TFS using your account (although impersonation may not work).
Synchronisation
Resolving Synchronisation Conflicts
If conflicting changes are made in both SpecLog and TFS, the changes in SpecLog take precedence, and those made in TFS are discarded. There is no merge function.
Synchronisation Schedule
Since SpecLog continuously saves user input as update commands (implicit save), and TFS requires changes to a work item to be saved explicitly, the synchronisation plugin synchronises batches of changes in SpecLog with TFS at regular intervals.
Changing this interval affects how quickly changes in SpecLog are synchronised with TFS, as well as the size of the work items' update history (shorter update intervals mean a longer history).
You can configure the synchronisation schedule in the PluginSynchronizationSettings section of SpecLog.server.exe.config
.
Manual Synchronisation
When using V3 of the TFS synchronisation plugin, you can manually synchronise SpecLog with all linked TFS work items. To do so:
- Select Manage repositories from the menu.
- Connect to your server.
- Click on the small right arrow next to the repository you want to synchronise and select Configure plugins.
- Locate the TFS V3 plugin in the list. Click on the small right arrow to access the menu and select Sync all requirements to TFS.
- The requirements in the repository are synchronised with TFS. This may take a while to complete!
Note: Even if no changes are made to the contents of work items in TFS, SpecLog makes a minor change to ensure that the history is updated to include this synchronisation.
Synchronisation Issues
If the V3 plugin's status changes from "Busy" (synchronising) to "Running", but not all requirements have been synchronised, check the server logs for information on any errors. No explicit error messages are displayed in the application itself.
Tags
Tags are added to the Tags
section in TFS. if back-synchronistaion is enabled, tags modified in TFS are also updated in SpecLog. If tags are modified for the same requirement in both TFS and SpecLog in the same synchronisation interval, the changes made in SpecLog are retained and those made in TFS are ignored.
Warning: Do not edit the order of the tags after synchronising, as this can cause issues when subsequently synchronising.
Note: If a SpecLog requirements contains duplicate tags, i.e. the same tag has been assigned more than once, the tag is only displayed once in TFS.
Fields
Fields in requirements in SpecLog (i.e. header, goal, title, actor) are transferred to TFS as follows:
- The field defined as the Header in the requirement card template is synchronised with the
Title
field in TFS. - All fields in the requirement card are synchronised with the
Description
field in TFS, including any field prefixes.
Acceptance Criteria
Acceptance criteria and attachments are written to the Acceptance Criteria field in TFS, and attachments are also listed on the Attachments tab.
Note: You can only delete attachments in SpecLog. If you delete an attachment in TFS but keep the attachment in SpecLog, the attachment will be restored in TFS the next time the requirement is synchronised.
Reordering acceptance criteria in SpecLog does not count as a change and thus will not trigger the synchronisation with TFS. You need to make a manual change to the content to force synchronisation in this case.
Warning: Do not edit acceptance criteria in TFS! Changes made to acceptance criteria in TFS cannot be synchronised with SpecLog even if back-synchronisation is enabled. Changes made in TFS will be overwritten by the contents in your SpecLog repository.
Related Links
TFS Synchronisation Plugin V3
Migrating to SpecLog.TFSPlugin.V3 from Earlier Plugin Versions
Configuring the SpecLog Server Plugin