2016-08-09 3 views
0

J'ai fait beaucoup de mises à jour de masse alimentées par des scripts dans des douzaines de dossiers de projets à la fois, récemment. Malheureusement, mon patron aux cheveux pointus insiste pour que chaque dossier soit affecté à TortoiseSVN séparément après l'une de ces modifications en masse - il veut que chaque dossier ait un numéro de révision différent. Moi étant le démon de l'automatisation que je suis, je me suis tourné vers le script pour essayer de résoudre ce problème pour moi. Voilà ce que je suis en train:Validez plusieurs référentiels SVN à l'aide d'un script Python?

import subprocess 
import glob 

for filepath in glob.glob("C:\eForms\*"): 
    if ".svn" not in filepath: 
     subprocess.call(['svn commit',filepath, '--message "<commit message here>"'], shell=True) 

Lorsque je tente de l'exécuter, je reçois The filename, directory name, or volume label syntax is incorrect. Des idées?

EDIT: Pensez que j'ai résolu ce problème. J'ai modifié la syntaxe, maintenant la ligne d'appel lit subprocess.call(["svn", "commit",('"',filepath,'"'), '-m "<commit message>"'], shell=True)

Maintenant que je reçois l'erreur svn: E020024: Error resolving case of '"<filepath>"'

EDIT2: Et tirant les citations de l'filepath résolu que. Tout fonctionne maintenant!

Répondre

0

La syntaxe correcte de la fonction d'appel avéré être

subprocess.call(["svn", "commit", filepath, '-m "<commit message here>"'], shell = True)