Utilisation de plusieurs postes et contextes

Présentation des contextes et de la façon de les utiliser pour développer le même code sur plusieurs postes.

Si vous développez des logiciels pour plusieurs plateformes ou des logiciels répartis pour des systèmes distants (que vous utilisiez un ensemble homogène ou hétérogène de postes), vous pouvez utiliser le support multi-contexte fourni par les projets C/C++ locaux/distants pour cibler vos projets entre plusieurs postes.

Un contexte est une association nommée entre un répertoire situé sur un hôte et une collection de données qui lui est associée et que l'interface IDE va utiliser en cas d'interaction avec ce contexte. Généralement, chaque projet C/C++ local/distant est associé à un contexte pour chaque machine à cibler. Un contexte pointe vers le répertoire de la machine cible dans lequel les fichiers source du projet sont stockés. Ces contextes peuvent cibler des postes distants ou votre poste local. L'utilisation du contexte local facilite le développement de vos applications en local, que vous soyez en mode en ligne ou déconnecté. Pour plus d'informations sur les différences entre ces types de contexte, voir Utilisation de contextes distants et Utilisation de contextes locaux.

Pour utiliser pleinement le support multi-contexte, votre projet doit être un projet synchronisé. Un projet synchronisé est un projet possédant un contexte local et un ou plusieurs contextes distants avec lesquels il est synchronisé. Initialement, à la création du projet, ce dernier possède un contexte distant avec lequel il est synchronisé, mais vous pouvez en ajouter d'autres à tout moment, via la vue Contextes distants. Si vous sélectionnez le projet, vous voyez s'afficher la liste des contextes actuellement associés au projet et vous pouvez utiliser la vue pour ajouter des contextes supplémentaires. Avec un projet synchronisé, une copie de vos fichiers est conservée sur le poste local et sur chaque poste auquel le projet est connecté. Lorsque vous éditez un fichier, vous éditez la copie locale. Lorsque vous enregistrez le fichier, les modifications sont transmises à un ou plusieurs des postes distants (selon les paramètres de synchronisation définis dans la vue Réconciliateur distant) et les copies distantes sont mises à jour. Si vous effectuez une modification directement sur une copie distante, cette modification sera détectée par le Réconciliateur distant et pourra être resynchronisée sur la copie locale (si vous modifiez à la fois les copies locale et distante, il est possible de fusionner les conflits à l'aide d'un outil de fusion). Généralement, seuls les fichiers texte sont synchronisés ; les fichiers obtenus à partir d'une génération tels que les fichiers objet et les exécutables sont uniquement conservés sur le poste sur lequel ils ont été générés et ne sont pas copiés en retour sur le client. La copie locale des fichiers est la copie maître. Si vous êtes déconnecté, vous pouvez cependant éditer les copies locales. Une fois que vous êtes reconnecté, les modifications sont transmises aux copies distantes. Les systèmes de contrôle de version intégrés, tels que Rational Team Concert, utilisent la copie locale. Si vous utilisez le mode hors ligne, toutes vos connexions sont déconnectées et tous les projets passent à l'utilisation d'un contexte local afin de faciliter le développement local pendant que vous êtes hors ligne.

Si votre projet n'est pas encore un projet synchronisé mais que vous souhaitez utiliser le support multi-contexte, vous pouvez le convertir en un projet synchronisé en sélectionnant "Associer un emplacement local" dans le menu contextuel du projet. Un assistant s'ouvre alors et vous permet d'associer un contexte principal initial à votre projet.

Lorsqu'un projet possède plusieurs contextes distants, l'un d'entre eux doit être le contexte principal. Lorsque vous exécutez des actions dans l'interface IDE (par exemple, lancement d'une génération), la commande est envoyée au contexte principal. Vous pouvez changer de contexte principal à tout moment. Le Réconciliateur distant effectue uniquement une synchronisation avec le contexte principal, mais il mémorise tous les fichiers qui ont été mis à jour ; ainsi, lorsque vous changez de contexte principal, le Réconciliateur lui transmet automatiquement toutes les modifications depuis la dernière définition du contexte en tant que contexte principal. Ce comportement vous permet d'être déconnecté des contextes autres que le contexte principal. En effet, vous pouvez ne pas souhaiter être connecté en permanence à tous vos contextes distants.

Lorsque vous basculez vers un contexte pour la première fois (c'est-à-dire lorsque vous en faites votre contexte principal), vous voyez s'afficher un assistant qui vous permet de configurer le mode d'interaction avec ce projet.

Selon le matériel et la plateforme de système d'exploitation ciblés par le contexte, vous verrez s'afficher des options différentes concernant la chaîne d'outils de compilation à utiliser dans ce contexte pour la génération et l'analyse, ainsi que certaines options d'indexation. L'assistant configure alors de façon adéquate une configuration de service pour le contexte afin d'indiquer à l'interface IDE qu'elle devra se procurer ses divers services (tels que la génération et l'indexation) auprès de ce poste. Il crée également une configuration de génération correspondant au contexte afin que vous puissiez configurer votre projet pour qu'il effectue des générations adaptées à ce contexte, avec différentes variables d'environnement, commandes/cibles de génération et diverses autres informations. Lorsque vous passez d'un contexte à un autre, l'interface IDE mémorise les configurations de service et de génération que vous utilisiez au moment du passage du premier contexte au suivant. Ensuite, si vous revenez au premier contexte, ces mêmes configurations de service et de génération sont à nouveau utilisées. Ainsi, vous ne voyez s'afficher l'assistant que lors du premier passage à un nouveau contexte que vous n'avez pas encore visité.

Lorsque vous utilisez un contexte principal donné, vous pouvez éditer, naviguer, générer, déboguer, exécuter une couverture de code et des analyses de performances sur votre application. Toutefois, il existe certaines limitations selon le matériel et le système d'exploitation de la plateforme ciblée par votre contexte et certains outils peuvent se comporter différemment ou être indisponibles pour certains contextes. Pour plus d'informations sur les différences entre ces différents types de contexte, voir Utilisation de contextes distants et Utilisation de contextes locaux.


Commentaires en retour