Question

J'ai un fichier batch je cours à partir d'un Windows XP w / service pack 3 poste de travail qui applique les modifications SQL à une base de données à l'aide sqlcmd.exe dans SQL 2005.

J'ai une entrée de ligne de commande pour TortoiseSVN pour mettre à jour automatiquement la copie locale de mon dépôt comme ceci:

tortoiseproc /command:update /path:"C:/SVN/My Code/Dev/2009.07.23" /closeonend:3

Selon la documentation , / closeonend :. 3 laissera la boîte de dialogue TortoiseSVN ouverte si des erreurs, des conflits ou se fond se produisent pendant la mise à jour

Si tel ne se produit, et l'utilisateur ferme la boîte de dialogue sans résoudre les problèmes, ils pourraient omettre les changements que nous voulons appliquée à une base de données de test de branche donnée.

Lorsque la boîte de dialogue TortoiseSVN est fermée dans le cas d'une erreur, de conflit ou de fusion après une mise à jour, sera le ERRORLEVEL être réglé sur une non nul valeur, ce qui permet moi de contourner le reste du fichier batch? Ou bien revenir avec bonheur 0 pour indiquer qu'il a fait son travail, même si le code avec succès n'est pas tout à fait raison?

Était-ce utile?

La solution 2

J'ai fini par mettre simplement à jour manuellement mon dépôt SVN local avant d'effectuer les autres actions dans le fichier batch.

Autres conseils

vieille question, mais je rencontrais la même chose aujourd'hui et il y a une solution ...

TortoiseProc renvoie -1 en cas d'erreur et 0 en cas de succès, de sorte que le suivant a résolu le problème pour moi:

TortoiseProc /path:"%targetdir%" /command:update /closeonend:3
IF %ERRORLEVEL% NEQ 0 goto SvnError

:SvnSuccess
echo It worked!
goto Done

:SvnError
echo It didn't work!

:Done
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top