Shared repository - techtalk/SpecLog-Resources GitHub Wiki
Shared repositories are stored on a SpecLog server and can be accessed and modified by multiple clients at once.
In order to work with shared repositories, the client needs to:
The following options are available to create a shared repository:
- Select Create repository from the main menu and choose to create a new shared repository (Create as shared repository option)
- Select Publish repository from the main menu to publish a stand-alone repository as a shared repository
To set up the connection to a shared repository:
- Register the necessary user token files.
- Select Connect to shared repository from the main menu.
- Enter the Server URL.
- Click on List repositories to list the repositories on the server.
- Select the desired repository from the list. A Repository file name is suggested automatically. This is the file used to store the local cache of the repository.
- Click on Connect.
Once you have connect to the shared repository, you can connect to the shared repository again by opening the local repository file.
When working with a shared repository, a local copy of the repository is stored in the .speclog
file entered as the Repository file name when connecting to the repository. This local copy is continuously synchronised with the server while a connection is available. You can continue working on your client even without a connection to the server, in which case any changes you make will be synchronised with the server once the connection is re-established.
Conflicts can arise when synchronising repositories if an element in the repository has been edited by another user since your last synchronisation. For example, if you are offline and edit a user story, and another user edits the same user story and synchronises their changes in the meantime, your changes cannot be synchronised automatically. If your changes were applied automatically, this would overwrite the changes made by the other user in the meantime. In the case of such conflicts, SpecLog notifies you of the conflicts but does not update the element. You can then review the updated element (including the changes made by other users in the meantime) and edit the element to add your own changes if necessary.
The synchronisation status is indicated in the lower right corner of the client:
Click on the synchronisation indicator to toggle automatic synchronisation on/off:
In addition to storing the local state of the repository, the local repository file also stores user-specific settings such as currently opened workspaces and the position and state of the widgets.
Whenever you re-open a shared repository, SpecLog attempts to reconnect to the server again, even if synchronisation was previously turned off.
When reopening a shared repository file, the client only downloads the changes made since the last synchronisation. When connecting to a shared repository, the client downloads the entire repository from the server. You should therefore open the local repository file when working with shared repositories instead of connecting to the server each time.
The following optimisations are in place to speed up the synchronisation process:
-
The server regularly generates a snapshot of the repository that is used to initialise clients downloading the full repository.
-
The client can request changes from the server in batches. The default batch size is 100, but can be overridden in the
SpecLog.exe.config
file on the client using theCommandBatchSize
setting:<appSettings> <add key="CommandBatchSize" value="100"/> <!-- optional; integer, default: 100 --> </appSettings>