web-dev-qa-db-fra.com

Comment mettre à jour automatiquement une copie de travail Subversion?

Quelqu'un sait-il comment je peux exécuter automatiquement svn update? Si quelqu'un a un script ou quelque chose comme ça, pourriez-vous me montrer un exemple?

46
Marko

J'utilise TortoiseSVN. Sur le serveur de production, j'ai une tâche planifiée qui exécute le fichier de commandes suivant.

CD C:\Program Files\TortoiseSVN\bin\
START TortoiseProc.exe /command:update /path:"C:\www\MyRepo\" /closeonend:0

Espérons que cela fera gagner du temps à quelqu'un d'autre!

104
Matt

J'utilise SVN Notifier qui se trouve dans la barre d'état système et m'informe à chaque fois que le référentiel change. Et je le recommande vivement. Cela signifie que vous ne mettez à jour que lorsqu'il y a quelque chose à mettre à jour!

Vous pouvez également configurer une tâche/tâche cron planifiée pour exécuter svn update dans le répertoire approprié toutes les heures/jour/peu importe.


EDIT: OK, jetez un œil à cet article Microsoft sur la configuration d'une tâche planifiée.

Vous voulez un fichier batch appelé svnUpdate.bat ou quelque chose qui ressemble à ceci:

cd C:/path/to/your/working/copy
svn update

Obtenez la tâche planifiée pour l'exécuter aussi souvent que vous le souhaitez (une fois par heure semble raisonnable)

Assurez-vous que la version en ligne de commande de svn est installée (j'utilise SlikSvn ) et disponible sur votre PATH (dans une fenêtre de commande, tapez svn et assurez-vous qu'elle indique 'Tapez svn help ...' ou similaire.

30
Mark Pim
@echo off

cls
echo == Initiating system instance variables...
echo. -- Setting the variables...

:: Here you need to make some changes to suit your system.
set SOURCE=C:\sauce\CURRENT
set SVN=C:\Program Files\TortoiseSVN\bin

:: Unless you want to modify the script, this is enough.

echo. %SOURCE%
echo. %SVN%
echo. ++ Done setting variables.
echo.
echo == Updating source from SVN
echo. -- Running update...
"%SVN%\TortoiseProc.exe" /command:update /path:"%SOURCE%" /closeonend:2
echo. ++ Done.

echo. -- Cleaning up...
set SOURCE=
set SVN=
echo. ++ Done.

Si vous utilisez TortoiseSVN, le script de commandes ci-dessus conviendra parfaitement. Sinon, vous pouvez simplement le modifier pour utiliser le client SVN que vous utilisez actuellement. Il suffit de l'insérer dans un fichier .bat et de l'exécuter à la demande.

15
varl

Vous pouvez également télécharger et utiliser Commit-Monitor à partir de http://code.google.com/p/commitmonitor/ . Il surveille les dépôts SVN pour les validations et avertit l'utilisateur quand cela se produit. C'est dans GNU GPL, ver 2.

4
Vipin Hari

Remarque: Une fois que je connais votre système d'exploitation, je pourrai vous donner une réponse plus détaillée.

Instructions générales

  1. Ne changez jamais rien dans le référentiel local.
  2. Lisez ceci lien sur la façon d'utiliser AT pour planifier à partir de la ligne de commande dans Windows.
  3. Utilisez la commande AT pour planifier la commande suivante (en supposant que la version en ligne de commande de svn est installée):

    svn update reporsitory_directory

  4. Profit!

1
Elijah