Lorsque l'on développe une application, il arrive que l'on doivent corriger des bugs dans des versions précédentes de l'application. Avec SVN, pas de problème pour récupérer les sources à un moment t. Là où cela devient embêtant, c'est que dans son IDE, il faille aller chercher le
nouveau fichier de projet dans une hiérarchie qui peut être compliquée. De même, certains raccourcis peuvent ne plus être d'actualité, tout comme des éventuels scripts
helpers ...
Cependant, il existe un outil qui peut nous facilité le travail :
subst.
Cette commande fabuleuse permet d'associer un disque virtuel à un répertoire d'un disque local. Par exemple, la commande
$> subst z: c:\projet\version2
nous permet de travailler dans
z: au lieu de travailler dans
c:\projet\version2. Ainsi, si on veux à présent travailler sur la première version du projet, il nous suffit de faire
$> subst z: /d
$> subst z: c:\projet\version1
Et voilà, on travaille toujours sur z:
Autre avantage, les
MRU list restent toujours valides.
Cependant, tout n'est pas rose avec subst. En effet, subst à deux grands défauts :
- le disque virtuel n'a pas de nom, ce qui peut être emmerdant, on ne sais plus vers quoi pointe le disque et on risque de modifier de mauvais fichiers.
- le disque virtuel disparaît à l'extinction de la session de l'utilisateur, ce qui veux dire qu'il faut refaire le subst à chaque fois que l'on se connecte.
Afin de régler ces deux problèmes, j'ai créer un petit fichier batch (oui je sais, il y a mieux, mais ça marche et c'est pas la peine de déployer l'artillerie lourde pour ça).
@echo off
setlocal
if {%1}=={} goto syntax
if {%2}=={} goto syntax
set DRV=%1
if "%DRV:~1,1%" NEQ ":" goto syntax
set DRV2=%DRV:~0,1%
set KEY=HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\DriveIcons\\Default- Label
set DIR=%2
set DRVLABEL="%~nx2"
subst /D
subst
reg add /f /ve /d
:: on se rajoute au Run pour être lancé automatiquement lors du prochain démarrage
set batchname="%~n0"
set exeescaped=%0
set exeescaped=%exeescaped:"=\"%
set direscaped=%DIR:"=\"%
set RUNKEY=HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
reg add /f /v /t REG_SZ /d " "
goto :EOF
:syntax
echo syntax: %0 Drive: Path
Placez autosubst.bat dans un répertoire accessible depuis votre PATH et ça y est. Il s'utilise exactement de la même manière que subst (sauf pour l'option /d)
Il reste un dernier point qui pourrait encore rebuter certains d'entre vous : la ligne de commande. Pour éviter de ne devoir se taper des lignes de commande tout le temps, vois un petit fichier .reg qui permet de rajouter une entrée dans le menu contextuel des dossiers. Cette entrée permet de monter le dossier sélectionné comme étant le disque z: (ou autre, adaptez le fichier à votre goût).
Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\Folder\shell\Mount_as_Z:]
@="Mount as Z:"
[HKEY_CLASSES_ROOT\Folder\shell\Mount_as_Z:\command]
@="cmd.exe /c autosubst z: \"%1\""
Pour les paresseux, voici les fichiers en téléchargement :
- http://kangol.prout.be/blogfiles/autosubst.bat
- http://kangol.prout.be/blogfiles/mount_as_z.reg