Shared Repository

Stephen McCafferty edited this page May 8, 2017 · 12 revisions

Shared repositories are stored on a SpecLog server and can be accessed and modified by multiple clients at once.

Managing permissions for shared repositories

In order to work with shared repositories, the client needs to:

Creating shared repositories

The following options are available to create a shared repository:

Connecting to shared repositories

To set up the connection to a shared repository:

  1. Register the necessary user token files.
  2. Select Connect to shared repository from the main menu.
  3. Enter the Server URL.
  4. Click on List repositories to list the repositories on the server.
  5. 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.
  6. 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.

Synchronization and Working Offline

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: Synchronization status

Click on the synchronisation indicator to toggle automatic synchronisation on/off: Synchronization status

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.

Tuning client synchronization performance

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:

  1. The server regularly generates a snapshot of the repository that is used to initialise clients downloading the full repository.

  2. 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 the CommandBatchSize setting:

        <appSettings>
                   <add key="CommandBatchSize" value="100"/>              <!-- optional; integer, default: 100   -->
        </appSettings>
    
Clone this wiki locally
You can’t perform that action at this time.
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.
Press h to open a hovercard with more details.