Partage et import du travail

Partage et import du travail

La fonction de partage dans RIM-Nat permet aux utilisateurs de générer un code d’état de travail (workstate) qui permet à d’autres utilisateurs d’importer une copie du travail de l’utilisateur dans leur propre environnement de travail, facilitant ainsi le partage et l’agrégation de travail entre les utilisateurs.

Génération de code d’état de travail

Pour partager le contenu de la branche active de la scène, utilisez l’option Partager dans le menu principal.

Menu de partage

Cette option ouvre une fenêtre qui génère un code d’état de travail unique pour la branche active.

Fenêtre de partage

⚠️
Une branche = un code. Le code donne accès au dernier enregistrement de la branche de travail actuelle. Il correspond à l’état de la branche au moment de l’import du code, pas de sa génération. Si un code est partagé, puis que des actions sont à nouveau enregistrées dans la même branche, elles seront accessibles aux utilisateurs qui utiliseront ensuite ce code.
⚠️
Les modifications apportées à la branche associée au code après l’import par un autre utilisateur ne lui seront pas accessibles, sauf s’il réimporte le code.

Utilisation du code d’état de travail

Le code d’état de travail généré peut être transmis à d’autres utilisateurs de RIM-Nat, qui pourront l’utiliser pour importer la version partagée dans leur propre projet.

Pour importer le contenu associé à un code d’état de travail, utilisez l’option Importer dans le menu principal.

Menu d'import

Cette option ouvre une fenêtre dans laquelle vous pouvez saisir le code d’état de travail.

Fenêtre d'import

Exemple de flux de partage

Voici un exemple de flux de travail collaboratif utilisant la fonction de partage des états de travail :

  1. L’utilisateur A accède au projet : il arrive sur une scène contenant les objets de la scène partagée.
  2. L’utilisateur A réalise des actions et les sauvegarde (actions A1 et A2 dans le diagramme ci-dessous).
  3. L’utilisateur B accède au projet : il arrive sur une scène contenant les objets de la scène partagée.
  4. L’utilisateur B réalise des actions et les sauvegarde (actions B1 et B2).
  5. L’utilisateur A génère un code de partage et le transmet à l’utilisateur B.
  6. L’utilisateur B importe le code. Le contenu de A2 se cumule à son travail personnel : A2 + B2.
  7. L’utilisateur A réalise des actions et les sauvegarde (A3 et A4).
  8. Un nouvel utilisateur C importe le code : il obtient le contenu de A4, qui se cumule à son travail personnel : A4 + C1.
%%{
   init: { 
      'logLevel': 'debug', 
      'theme': 'base', 
      'gitGraph': {
         'showBranches': true, 
         'showCommitLabel': false,
         'mainBranchName': 'Scene-Partagee'
      },
      'themeVariables': {
         'gitInv0': '#ff0000'
      }
   }
}%%

gitGraph
  checkout Scene-Partagee
  commit id:"." tag:"Accès au projet"

  branch Utilisateur-A
  branch Utilisateur-B
  branch Utilisateur-C

  checkout Utilisateur-A
  commit tag:"A1"
  commit tag:"A2"

  checkout Utilisateur-B
  commit tag:"B1"
  commit tag:"B2"

  checkout Utilisateur-B
  merge Utilisateur-A tag: "B2 + A2" type: HIGHLIGHT
  commit tag:"B3"

  checkout Utilisateur-A
  commit tag:"A3"
  commit tag:"A4"

  checkout Utilisateur-C
  commit tag:"C1"
  merge Utilisateur-A tag: "C1 + A4" type: HIGHLIGHT

  checkout Utilisateur-A
  commit tag:"A5"

Fusion du travail personnel

La fonction de partage permet non seulement de fusionner le travail de différents utilisateurs, mais elle permet également à un même utilisateur de fusionner le contenu de branches personnelles.

  1. L’utilisateur réalise des actions et les sauvegarde dans une branche A (actions A1 et A2).
  2. L’utilisateur sauvegarde sous une nouvelle branche B.
  3. L’utilisateur réalise des actions et les sauvegarde (actions B1 et B2).
  4. L’utilisateur génère un code de partage depuis la branche B.
  5. L’utilisateur retourne dans la branche A et importe ce code : il obtient le cumul des branches A et B.
%%{
   init: { 
      'logLevel': 'debug', 
      'theme': 'base', 
      'gitGraph': {
         'showBranches': true, 
         'showCommitLabel': false,
         'mainBranchName': 'Version-A'
      },
      'themeVariables': {
         'gitInv0': '#ff0000'
      }
   }
}%%

gitGraph
  commit tag:"A1" 
  commit tag:"A2" 

  branch Version-B
  commit tag:"B1"
  commit tag:"B2"

  checkout Version-A
  merge Version-B tag:"A2 + B2" type: HIGHLIGHT

Fusion du travail de plusieurs utilisateurs

La fonction de partage permet aux utilisateurs de combiner leur travail individuel. En combinant cet usage avec la fonction de scène partagée, il est possible de créer un flux de travail collaboratif où chaque utilisateur travaille dans sa propre branche, avec un administrateur qui fusionne le travail de tous les utilisateurs dans une branche personnelle, appose sa validation, puis met à jour la scène commune à tous les utilisateurs.

Dans cet exemple, l’utilisateur A est l’administrateur du projet.

  1. L’utilisateur A travaille dans sa propre branche et réalise des actions qu’il sauvegarde (actions A1 et A2).
  2. L’utilisateur B travaille dans sa propre branche et réalise des actions qu’il sauvegarde (actions B1 et B2).
  3. L’utilisateur C travaille dans sa propre branche et réalise des actions qu’il sauvegarde (actions C1 et C2).
  4. Les utilisateurs B et C génèrent des codes de partage et les transmettent à l’utilisateur A.
  5. L’utilisateur A importe ces codes et obtient ainsi le cumul du travail A2 + B2 + C2.
  6. L’utilisateur A valide le contenu de la scène finale et met à jour la scène partagée.
%%{
   init: { 
      'logLevel': 'debug', 
      'theme': 'base', 
      'gitGraph': {
         'showBranches': true, 
         'showCommitLabel': false,
         'mainBranchName': 'Scene-Partagee'
      },
      'themeVariables': {
         'gitInv0': '#ff0000'
      }
   }
}%%

gitGraph
  checkout Scene-Partagee
  commit id:"." tag:"Création du projet"

  branch User-A
  branch User-B
  branch User-C

  checkout User-A
  commit tag:"A1"
  commit tag:"A2"

  checkout User-B
  commit tag:"B1"
  commit tag:"B2"

  checkout User-C
  commit tag:"C1"
  commit tag:"C2"

  checkout User-A
  merge User-B tag:"Import B" type: HIGHLIGHT
  merge User-C tag:"Import C" type: HIGHLIGHT

  checkout Scene-Partagee
  merge User-A tag:"Mise à jour de la scène partagée" type: HIGHLIGHT
Dernière modification par Loïc Roybon