{i} This page does not meet our wiki style guidelines. Please help improve this page by cleaning up its formatting.

Extension Share

(Cette page est une traduction de l'original en Anglais ShareExtension)

Cette extension est distribuée avec Mercurial 1.3 et plus

Auteur : Matt Mackall

Vue d'ensemble

Cette extension autorise le partage d'une portion définie (ie. l'historique) d'un dépôt avec un ou plusieurs autres dépôts accessibles localement tout en maintenant un état indépendant de l'espace de travail. Ceci peut permettre de créer un répertoire de travail pour une branche plus rapidement et ceci à moindre coût. Ceci peut être aussi utilisé pour un mode de collaboration simple où tous les commits apparaissent immédiatement dans l'historique du répertoire partagé sans avoir besoin à des push et pull.

$ hg share project project-branch
updating working directory
1040 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ hg share /path/to/network/project  # crée 'project'
5298 files updated, 0 files merged, 0 files removed, 0 files unresolved

Mise en garde

Notez qu'une opération effectuée sur tout dépôt partagé affectera immédiatement tous ses pairs. En fait, c'est comme si commit faisait un push instantanément et atomiquement au dépôt parent et à tous ses descendants (i.e. tous les autres clones partagés du même parent). Mais, biensûr, il n'y a de push : commit écrit simplement dans le répertoire partagé par tous les pais .hg/store.

En particulier, les opérations qui détruisent ou modifient l'historique -- strip, rebase, etc. -- vont aussi détruire ou modifier l'historique dans tous les pairs clonés. Par exemple, si vous enlever trop de révisions dans un clone partagé, pouf ! Vous avez aussi supprimé ces révisions de tous ses pairs. Si vous faites des expériences avec des opérations destructives, vous devriez faire un clone total et jouer à l'intérieur de celui-ci en premier.

De même, réfléchissez intensivement à l'interaction entre les files Mercurial (MqExtension). Puisque .hg/patches n'est pas partagé entre les dépôts, il est possible que différents dépôts partagés aient des files de patchs différents. Cependant, les commandes MQ comme qpush et qpop créent et détruisent l'historique, ainsi, faire des push/pop sur des patchs va affecter tous les pairs clonés. Il n'est probablement pas une bonne idée de mixer MQ et les clones paragés. Si vous le faites, vous devriez définitivement interdire des push/pop sur les patchs dans un clone alors qu'un autre clone a les patchs d'appliqués.

En bref, il s'agit d'une petite modification qui affecte grandement l'usuel contrat "les clones sont indépendants" de Mercurial. Assurez vous de bien comprendre ce qu'il se passe avant de vous tirer une balle en pleine tête.

Configuration

Configurez votre .hgrc pour autoriser l'extension en ajoutant les lignes suivantes :

[extensions]
share =

Voir aussi


CategoryFrench

FrenchShareExtension (last edited 2012-11-04 02:32:02 by mpm)