Perforce, éditeur californien fondé par Christopher Seiwald, un ancien développeur de la société Ingres, a conçu une solution pour gérer les configurations logicielles et le développement d'applications en équipes, disponible sur près de 50 plates-formes (Linux, FreeBSD, Solaris, OS/400, Windows...). Nommée Perforce Software Configuration Management System (SCM), l'offre s'appuie sur un serveur de bases de données relationnelles pour gérer les codes sources et les méta-données associées. Optimisé pour les besoins des équipes de développement, le serveur est livré entièrement paramétré. Seules les dernières versions des fichiers sources sont conservées dans un format texte (RCS), les versions précédentes étant stockées sous forme de fichiers binaires compressés. Les utilisateurs ont à leur disposition une interface graphique cliente dont la présentation reste identique quel que soit le système d'exploitation (Mac OS, Windows, Unix...). Pour répondre à des besoins plus spécifiques, ils peuvent accéder au serveur par lignes de commandes. Un accès Web est également proposé, destiné avant tout à la consultation à distance de l'historique des modifications. Détection des conflits La solution autorise le travail en mode déconnecté, une synchronisation avec le serveur permettant d'intégrer les modifications effectuées de cette façon. Des serveurs proxy peuvent être mis en place pour les équipes distantes : ils mettent en cache les fichiers volumineux afin de réduire les délais de récupération des données. Toutes les opérations de synchronisation sont sécurisées par des mécanismes transactionnels. Perforce SCM intègre des outils de détection des conflits, nécessaires quand plusieurs utilisateurs travaillent simultanément sur le même fichier (possibilité autorisée par défaut mais pouvant être désactivée). Il supporte la création d'embranchements : les modifications effectuées dans une branche, par exemple la correction d'une erreur de programmation, peuvent être réintégrées par la suite à toutes les autres branches liées. Enfin, de nombreuses options permettent de personnaliser la solution, notamment des déclencheurs (triggers) servant à lancer des scripts quand certains événements adviennent (authentification d'un utilisateur, mise à jour d'un répertoire...). L'éditeur compte parmi ses clients des entreprises comme SAP, nVidia ou encore Business Objects.