Cette approche fonctionne pour moi: -
1) Créer un script shell qui vérifie la branche commis contre un paramètre. Je stocke cela dans CVSROOT pour plus de commodité, mais il peut être n'importe où sur le serveur CVS.
#!/bin/bash
if [ -f CVS/Tag ]
then
TAG=`cat CVS/Tag`
else
TAG=THEAD
fi
if [ "$TAG" == "T$1" ]
then
echo Cannot commit to $1
exit 1
else
echo Commit ok
fi
exit 0
Modifiez ensuite le fichier commitinfo pour exécuter ce script pour une branche particulière: -
ALL /cvs/repos/CVSROOT/checkbranch.sh YOUR-BRANCH-NAME-HERE
Cela fera alors le script à exécuter pour tous checkins. Il passera le nom de la branche en tant que paramètre. Le script compare le paramètre à la branche pour le code en cours d'archivage et renvoie une erreur si elle correspond. Si vous voulez verrouiller plusieurs branches, ajoutez plusieurs lignes à commitinfo.
De toute évidence, si un développeur veut vraiment valider quelque chose, il peut pirater le fichier commitinfo, mais il évite les erreurs plutôt que les tentatives délibérées de casser des objets.
Pourriez-vous s'il vous plaît me dire comment je pourrais faire cela? Une petite alimentation à la cuillère ne blesse personne ;-) – Preets
Si vous utilisez windows, rendez le répertoire du référentiel disponible seulement, sous linux, utilisez chmod pour changer l'autorisation d'accès. Cela permettra d'éviter les commits "accidentels". –