Partitions

Partitions: What's this?

articy:draft's multi-user approach centers around so-called partitions. To allow multiple users to work on the same project simultaneously and at the same time avoid conflicts, confusion or even data loss, users can only work on partitions that are claimed by them. A partition that was "claimed" by an user is exclusively reserved for this team member and can only edited by him/her.
 
Even though you don't really need to worry about that, the following helps understanding the functionality of the multi-user mode: Each partition is represented by a single file in your local project folder. This file contains the partition's content, including the sub-structure and all topological information necessary to reconstruct the branch of the project structure "below" the partition. The same partition file is also stored in the server repository, safely guarded by either Perforce or Subversion. articy:draft synchronizes these two file versions, to upload your changes to the server on the one hand, and to download the newest data to your local project folder on the other. Now that you know that each partition is a file, it's easy to understand why repartitioning can only be done in exclusive mode: On file has to be split into two files, both on the server and across all clients, which requires all clients to perform the exact same set of operations on their local data. To make this failure-proof, articy:draft enforces a workflow that guarantees writing permissions on all files involved.


Locking state icons

Througout the entire application, articy:draft displays locking state icons to indicate whether an object is locked or not:
- The object is a partition and available (read-only for you, but can be claimed).
- The object is a partition and claimed by someone else (read-only for you).
- The object is a partition and claimed by you (can be edited).

- Your local copy of the object is outdated, you don't have the latest changes somebody else has made. Update required!.

- The object is a child of a partition that is available (read-only for you, but can be claimed).
- The object is a child of a partition that is claimed by someone else (read-only for you).
- The object is a child of a partition that is claimed by you (can be edited).

Claiming state icons in navigator and in the tiles view


Claiming state icons in the navigator 1 and in the tiles view 2.

Claiming state icons in flow view


Claiming state icons on flow fragments in the flow view 3.

Child objects within partitions

While partitions have a circular claiming state icon, children have an upwards arrow to indicate that their claiming state depends on the one of a partition further up in the hierarchical project structure:

- The object is a partition.
- The object is a child of a partition; it inherits the claiming state from its partition.

Working with partitions

Partition commands

You can access partition commands (such as "update and claim" and "publishing and unclaim") in two different ways:

There's a section in the toolbar 4 with buttons for partition commands. Selecting an object makes partition command buttons in the toolbar become visible. The same commands can be found in all objects' context menus 5.

"Update"

- Your local copy of the object is outdated, you don't have the latest changes somebody else has made. Update required!.


If the above icon appears next to a partition in the navigator, make sure you update the partition. Updating means downloading the most recent version from the articy:server. The partition will not be claimed! Select the following button from the partition commands:

Click "Update" to download the latest version from the server. You can also click the update project menu entry in the main menu to get the latest versions of all partitions ("sync to head").

Select "Update project" from the main menu to bring your entire local project folder up-to-date.

"Update and claim"

You can claim available partitions for your exclusive access. The partition will then be read-only ("locked") for all other users. Before you can start editing, the latest version is automatically retrieved from the server. That's why it is called update and claim.

Click "update and claim" to start editing on the most recent partition version.

"Publish and keep claim"

Sends your local changes to server, but keeps the claim on the partition so that you can continue working.

Click the "Publish and keep claim" button to upload your changes to the server.


When publishing a partition you may want to enter a message of your own that explains your changes to the other members of the team. This message is written as "commit message" to the underlying repository system and can also be browsed with the repository's toolset (e.g. P4V for Perforce or TortoiseSVN for Subversion).

For your convenience, articy:draft tracks all changes and suggests them as pre-filled text for this custom commit message. Both features, custom commit messages as well as automatic pre-filling, can be switched-off in the general project settings.

To gain an overview over the last changes on a certain partition see open change history


"Publish and unclaim"

Same as above, but with unclaiming the partition. Perform this command if you have finished editing the partition and wish to make it available again for other users.

Click "Publish and unclaim" to send your changes to the server and unclaim.

Claiming / Unclaiming commands are accessible on hover over an object entry in the Navigator.


"Enforced unclaiming"

This option is only available for project administrators.

If another team member cannot unclaim a partition himself, you can unclaim it using this command. Please note that changes made by the team member are stored locally on their machine only and will be lost. Use this command with care and only in cases of emergency.

Click the "Enforced unclaiming" button to discard another user's changes and break their claim.



"Discard changes to partition"

Changes made to objects are stored locally until you decide to "publish" them (see above).

If you wish to discard your changes to a partition and roll back to the original server version, you can select "discard changes to partition"



"Discard all changes"

The project partition provides a variant of "discard" that actually performs a "discard changes to partition" on every partition, that is currently claimed by the user.

 
Discarding changes never removes claims from partitions.




"Open change history"

Clicking this icon opens a dialog window that shows the 50 last published changes to this partition.



Change history

Every partition now has a 'open change history' button. This opens a dialog window that shows the revisions of the last publishing actions along with the custom commit messages, the name of the changing team member and the change date.





Creating partitions / changing the project partitioning


User-created objects aren't automatically considered "partitions", which means that they cannot be claimed individually. By default, only the top-level folders are partitions. If you require a finer granularity, you need to repartition your project. This can be done solely by a project administrator.
To open the repartition dialog click on this button 6 in the Navigator toolbar:


Within the repartition dialog you can turn mere folders and container objects like flow fragments into partitions 7. To turn an object into a partition you must claim it. Of course, you can also cancel current partitions to turn them back into usual objects.
All repartition actions are added to the queue on the right 8. To apply all actions within the queue click on "Apply all partition actions" 9.
If you want to keep the currently claimed partitions, you can enable the corresponding option 10.