CVS
Je gère le DDL des structures de mes bases, ainsi que le code des sprocs et fonctions dans CVS. Pour se faire, j'ai d'abord utilisé WinCVS avec le script Python que vous trouverez ci-dessous. Après quelque temps, j'ai basculé vers une solution intégrée au Query Analyzer, en utilisant la possibilité d'intégrer des outils au menu. Cette dernière méthode est en plus très facile à implémenter.
Premièrement, créez un batch avec les commandes CVS. Comme exemple, le code suivant déploie le code de la fenêtre active sur un serveur de développement et de production, pour s'assurer que le code est à jour dans les deux environnements, et ensuite fait un commit dans CVS, puis met à jour la copie locale :
osql -S PRODUCTION_SERVER -d %1 -E < %2 osql -S DEVELOPMENT_SERVER -d %1 -E < %2 cvs -d :pserver;username=me;password=pwd;hostname=cvsserver:/usr/local/cvs -r commit %2 cvs -d :pserver;username=me;password=pwd;hostname=cvsserver:/usr/local/cvs -r update %2
Bien entendu, vous devriez choisir un meilleur moyen de gérer le login vers CVS, en utilisant SSH par exemple. Ce code implique aussi que vous ne faites pas des checkout en lecture seule, sinon vous devriez ajouter un CVS edit à chaque sauvegarde. Ca ne semble pas très utile dans ce scénario.
Ensuite, dans le menu de Query Analyzer, allez dans Tools → Customize… et ajoutez un outil avec les paramètres suivants :
Command : C:\path\mybatch.cmd Arguments : $(Database) $(FileName)$(FileExt) > c:\apath\log.txt Initial Directory : $(FileDir)
Et voilà, c'est fait ! Vous avez ensuite simplement à sauver votre fichier dans le bon répertoire où vous maintenez vos copies locales de fichiers gérés par CVS, et de lancer cette commande dans le menu Tools pour publier dans CVS.
La même chose en Python
Vous pouvez également utiliser Python, ce qui vous permet aussi d'ajouter un commentaire au commit CVS. Le commentaire est demandé dans un InputBox. Vous trouverez le code source ici : commit.py. Vous pouvez l'appeler depuis un fichier batch en passant les paramètres, comme ceci :
python c:\mypath\commit.py %1 %2
et l'ajouter dans Query Analyzer de la même façon.
WinCVS
Le script Python pour WinCVS :
CommitSelectedToDB.py
Ajoute une commande dans WinCVS pour envoyer automatiquement une commande DDL vers SQL Server. A mettre la le répertoire Macros du chemin d'installation de WinCVS : CopyToDocDir.py Ceci au cas où quelqu'un utiliserait les mêmes outils: j'ai géré la documentation des sprocs avec NaturalDocs. Ce script copie les fichiers sélectionnés dans un répertoire partagé qui permet à NaturalDocs de l'utiliser dans sa génération. A la fin, il appelle un job SQL pour régénérer la documentation. Je l'ai utilisé sur une machine où NaturalDocs était sur la même machine que le serveur SQL.



