2010-06-23 4 views
2

Je voudrais déterminer à partir d'un fichier de commandes sous Windows si une copie de travail SVN locale doit être mise à jour à partir du serveur. Sur une machine de type unix, j'exécuterais "svn status -u" et comptais les '*'. Comment puis-je obtenir la même chose dans un fichier batch? Contexte: J'essaie de déterminer si une bibliothèque de dépendances est périmée, car il faut un long temps pour le reconstruire et nous ne le mettons à jour qu'une fois tous les 3 mois. Ceci est pour un processus de construction automatisé.Comment déterminer si une copie de travail SVN doit être mise à jour (à partir d'un script)?

+0

Vous devez également installer une ligne de commande Client Subversion, tel que sliksvn –

+0

Référez-vous à cette discussion: [comment savoir si ma copie de travail est désynchronisée] (http://stackoverflow.com/questions/6516214/ how-do-i-know-if-my-working-copy-is-out-of-sync) –

Répondre

3

Si je vous suis, peut-être quelque chose comme:

svn st -u | find "*" 
if not "%errorlevel%"=="0" goto end 

svn update 

:end 

trouver des ensembles errorlevel à 0 si elle a trouvé avec succès "*".

ÉDIT: laissé par inadvertance le "" autour de% errorlevel%.

+0

Cela fera, je vais botter n'importe qui qui crée un nom de fichier contenant un '*'. – Harvey

+0

Remarque J'ai accidentellement laissé le "" autour de% errorlevel%. –

+0

J'ai utilisé 'if not errorlevel 1 goto do_build' à la place. (Ma logique est inversée par rapport à la vôtre.) – Harvey

Questions connexes