2009-05-28 14 views
42

Qualcuno sa come posso eseguire automaticamente svn update? Se qualcuno ha una sceneggiatura o qualcosa del genere, potresti mostrarmi un esempio?Come si aggiorna automaticamente una copia di lavoro di Subversion?

+0

Come intendete automatico? A che punto dovrebbe essere eseguito automaticamente il comando di aggiornamento? –

+0

Quale sistema operativo utilizzerai per eseguire gli aggiornamenti (Windows, Linux, MacOS, ecc.)? – Elijah

+7

Non vorrei davvero consigliare l'uso di un aggiornamento automatico. Possono accadere cose strane quando si verificano modifiche in conflitto con le modifiche di qualcun altro, ma i file locali vengono quindi aggiornati in ogni caso. –

risposta

29

Io uso SVN Notifier che si trova nella barra delle applicazioni e mi avvisa ogni volta che cambia il repository. E lo consiglio vivamente. Significa che aggiorni solo quando c'è qualcosa da aggiornare!

In alternativa è possibile impostare un'attività pianificata/cron per eseguire svn update nella directory appropriata ogni ora/giorno/qualsiasi.


EDIT: OK, dare un'occhiata a this Microsoft article sulla creazione di un'operazione pianificata.

Volete un file batch denominato svnUpdate.bat o qualcosa che assomiglia a questo:

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

ottenere il compito programmato per eseguire questo tutte le volte che ti piace (una volta ogni ora sembra ragionevole)

assicurarsi di avere la versione da riga di comando di svn installato (io uso SlikSvn) e disponibile sul vostro cammino (in un tipo di finestra di comando e garantire svn si dice 'tipo svn help ...' o simile

+1

Lo script batch sarà la soluzione migliore –

+1

Potresti scrivere lo script completo per l'aggiornamento, perché non so cosa eseguire e non vedo alcun aggiornamento simile nella cartella Installato. –

+0

Il comando 'svn update' esegue il programma svn e gli dice di aggiornarlo. Questi non sono un programma di "aggiornamento" separato. In un prompt dei comandi prova a digitare svn update per verificare che funzioni –

1

. Nota: una volta So che stai operando sistema, sarò in grado di darti una risposta più dettagliata.

Istruzioni generali

  1. mai cambiato nulla nel repository locale.
  2. Leggere questo link on how to use AT per pianificare dalla riga di comando in Windows.
  3. utilizzare il comando AT per pianificare il seguente comando (ammesso che abbiate la versione da riga di comando di svn installato):

    svn update reporsitory_directory

  4. profitto!

+0

Io dovrei riuscire a eseguire l'aggiornamento per doppio clicca su un file. –

+0

Quindi potresti semplicemente creare una scorciatoia di Windows che esegua svn update repository_directory – Elijah

+0

Guarda, non ho il file .exe nella directory del mio repository che esegue l'aggiornamento. Posso darti un elenco di tutti i file nella mia cartella del repository. –

14
@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. 

Se si utilizza TortoiseSVN poi lo script batch precedente si adatta bene. Altrimenti puoi semplicemente modificarlo per utilizzare qualsiasi client SVN che stai utilizzando. Basta inserirlo in un file .bat ed eseguirlo su richiesta.

+0

Questa è la porzione pertinente per uno script "Build, destroy and deploy" molto più grande che ho scritto così potrebbero esserci alcuni commenti o echos che potreste sfoltire. – varl

+0

Dovrei copiare questo script nella cartella del repository? –

+0

Questo è buono, ma ho bisogno di modifiche di aggiornamento al mio progetto (non versione di SVN). –

99

Sto usando TortoiseSVN. Sul server di produzione ho un'attività pianificata che esegue il seguente file batch.

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

Speriamo di risparmiare qualcun altro un po 'di tempo!

+0

Sì, grazie! –

+0

ha funzionato, soluzione perfetta – n92

+4

Ottima risposta, grazie. Basta aggiungere una nota ai futuri lettori che potrebbero voler aggiornare più directory contemporaneamente, vedere la mia domanda (e rispondere) qui: http://superuser.com/a/689155/264136 – sab669

3

È inoltre possibile scaricare e utilizzare Commit-Monitor da http://code.google.com/p/commitmonitor/. Monitora i repository SVN per i commit e avvisa l'utente quando ciò accade. È in GNU GPL, versione 2.

Problemi correlati