Bien qu'il s'agisse d'une vieille question avec une réponse acceptée, je pense qu'il y a encore de la place pour une autre.
Tout d'abord, permettez-moi de dire d'emblée que je ne pense pas que les fonctionnalités soient le bon outil pour cette tâche, et je proposerai un autre ensemble d'outils.
Une condition préalable à la collaboration en équipe est d'avoir un serveur intermédiaire pour tester les versions de développement du projet distinct de votre serveur de production. Tout le code de développement est testé sur le serveur de transfert et n'est envoyé au serveur de production que lorsqu'il est stable et prêt à être déployé. Cependant, les développeurs ne travaillent pas directement sur le serveur de transfert. Chaque développeur travaille sur son propre poste de travail, en utilisant un contrôle de révision et une gestion de code source (SCM) pour coordonner son travail avec le reste de l'équipe.
Le système SCM permet aux membres de l'équipe de travailler en parallèle sur différentes branches du code sans interférer les uns avec les autres. Seul le maître branche est déployé sur le serveur de mise en scène à des fins de test.
Pour mettre en miroir la base de données entre la production, le transfert et les postes de travail, il existe un module nommé Sauvegarde et migration qui peut être utilisé si vous êtes sur un hébergement partagé et ne gérez pas votre propre base de données. Si vous gérez votre propre serveur de base de données, c'est le seul projet sur ce serveur, et vous utilisez mysql , la paire de commandes suivante est pratique:
Jeter:
mysqldump --all-databases --opt -u root -p > DUMP.sql
Restaurer:
mysql -u root -p < DUMP.sql
Si la vôtre n'est pas la seule base de données sur ce serveur, scriptez une version de mysqldump
(ou l'équivalent si vous n'utilisez pas mysql ) qui sauvegarde vos bases de données uniquement.
Définissez une stratégie selon laquelle c'est la base de données du serveur de production qui est maître. Le serveur de transfert et les postes de travail doivent être une copie de la base de données de production, et non l'inverse.
Notez que Drupal 7 conserve tous ses paramètres d'administration dans la base de données. Cela signifie que la mise en miroir de la base de données entre le site de production, le site intermédiaire et les postes de travail fera migrer les paramètres admim sans fonctionnalités .
Maintenant, pour partager le code:
La manière standard de partager du code entre les membres d'une équipe de développement est d'utiliser le système SCM. Drupal se trouve être géré par défaut avec un tel système nommé git .
Git permet l'utilisation de référentiels locaux ou distants. Si les membres de l'équipe se trouvent dans le même espace physique, vous pouvez configurer un référentiel local sur votre serveur de transfert. S'ils sont répartis géographiquement, vous pouvez configurer un référentiel distant. Si cela ne vous dérange pas que d'autres aient un accès en lecture à votre code en cours de développement, vous pouvez utiliser un sandbox sur Drupal.org comme référentiel distant. Vous pouvez également utiliser une zone de projet sur GitHub . GitHub n'est pas seulement un référentiel, mais est livré avec quelques outils de collaboration, et autorise les référentiels publics et privés.
Fondamentalement, un système SCM permet aux membres de l'équipe d'extraire le code source et la documentation du référentiel partagé par les membres de l'équipe, puis de les réinsérer après avoir travaillé dessus. Le SCM garde une trace des changements et s'il y a un conflit (c'est-à-dire que quelqu'un essaie de pousser du code qui ne contient pas les changements qu'un autre membre de l'équipe a commis), il vous le dira et suggérera également un moyen de résoudre ce conflit.
Habituellement, avec une communication cordiale sur la répartition des tâches entre les membres de l'équipe, il n'y aura pas de conflits. Mais avec le système SCM qui garde la trace des choses, les conflits deviennent gérables même si des erreurs sont commises ou une communication échoue.
Il existe de nombreux tutoriels sur la prise en main et l'utilisation de git (GIYF). J'en recommanderai deux: le site Web git-scm et Pro Git par Scott Chacon.