2009-05-28 1 views
42

Weiß jemand wie ich automatisch svn update ausführen kann? Wenn jemand ein Skript oder etwas ähnliches hat, könnten Sie mir ein Beispiel zeigen?Wie aktualisiere ich automatisch eine Subversion-Arbeitskopie?

+0

Wie meinst du automatisch? Ab wann sollte der Update-Befehl automatisch ausgeführt werden? –

+0

Welches Betriebssystem verwenden Sie für die Updates (Windows, Linux, MacOS usw.)? – Elijah

+7

Ich würde ein automatisches Update nicht wirklich empfehlen. Seltsame Dinge können passieren, wenn Sie Änderungen haben, die in Konflikt mit den Änderungen anderer stehen, aber Ihre lokalen Dateien werden dann trotzdem aktualisiert. –

Antwort

29

Ich benutze SVN Notifier, die in der Taskleiste sitzt und benachrichtigt mich jedes Mal, wenn das Repository ändert. Und ich kann es sehr empfehlen. Es bedeutet, dass Sie nur aktualisieren, wenn etwas zu aktualisieren ist!

Alternativ können Sie einen geplanten Task/Cron-Job einrichten, um svn update im entsprechenden Verzeichnis jede Stunde/Tag/was auch immer auszuführen.


EDIT: OK, werfen Sie einen Blick auf this Microsoft article auf eine geplante Aufgabe einrichten.

Sie wollen eine Batch-Datei mit dem Namen svnUpdate.bat oder etwas, das wie folgt aussieht:

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

die geplante Aufgabe Holen Sie sich diese so oft zu laufen, wie Sie möchten (einmal pro Stunde scheint sinnvoll)

Stellen Sie sicher, dass Sie die Befehlszeilenversion von svn installiert haben (ich verwende SlikSvn) und auf Ihrem Pfad verfügbar (in einem Befehlsfenster geben Sie svn ein und stellen Sie sicher, dass 'svn help ...' oder ähnlich lautet.

+1

Batch-Skript wird die beste Lösung sein –

+1

Könnten Sie vollständige Skript für das Update schreiben, weil ich nicht weiß, was zu starten, und sehe keine ähnliche Update im Ordner Installiert. –

+0

Der Befehl 'svn update' startet das svn-Programm und sagt ihm, es zu aktualisieren. Dies ist kein separates Update-Programm. In einer Eingabeaufforderung versuchen Sie, svn update zu schreiben, um zu überprüfen, ob es funktioniert –

1

Hinweis: Einmal Ich kenne deine Arbeitsweise Ich kann Ihnen eine ausführlichere Antwort geben.

Allgemeine Hinweise

  1. niemals etwas im lokalen Repository ändern.
  2. Lesen Sie diese link on how to use AT, um über die Befehlszeile in Windows zu planen.
  3. den AT-Befehl Verwenden Sie den folgenden Befehl zu planen (vorausgesetzt, Sie die Kommandozeilen-Version von SVN installiert haben):

    svn update reporsitory_directory

  4. Profit!

+0

Ich sollte einen Weg laufen, update durch double Klicken Sie auf eine Datei. –

+0

Dann könnten Sie nur eine Windows-Verknüpfung erstellen, die Svn Update Repository-Verzeichnis ausführt – Elijah

+0

Schau, ich habe keine .exe-Datei in meinem Repository-Verzeichnis, das Update ausführen. Ich kann Ihnen eine Liste aller Dateien in meinem Repository-Ordner geben. –

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. 

Wenn Sie TortoiseSVN dann die obige Batch-Skript Fein verwenden anpassen wird. Ansonsten können Sie es ändern, um den SVN-Client zu verwenden, den Sie gerade verwenden. Fügen Sie das einfach in eine .bat-Datei ein und führen Sie es bei Bedarf aus.

+0

Dies ist der relevante Teil für ein viel größeres Skript "Build, zerstöre und deployed", das ich geschrieben habe, also könnte es einige Kommentare oder Echos geben, die du beschneiden könntest. – varl

+0

Ich sollte dieses Skript im Repository-Ordner kopieren? –

+0

Das ist gut, aber ich brauche Update-Änderungen an meinem Projekt (nicht Version von SVN). –

99

Ich benutze TortoiseSVN. Auf dem Produktionsserver habe ich eine geplante Aufgabe, die die folgende Batch-Datei ausführt.

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

Hoffentlich spart dies jemand anderes einige Zeit!

+0

Es tat, danke! –

+0

es hat funktioniert, perfekte Lösung – n92

+4

Große Antwort, danke. Wenn Sie zukünftigen Lesern, die mehrere Verzeichnisse gleichzeitig aktualisieren möchten, eine Notiz hinzufügen, finden Sie meine Frage (und ihre Antwort) hier: http://superuser.com/a/689155/264136 – sab669

3

Sie können auch Commit-Monitor von http://code.google.com/p/commitmonitor/ herunterladen und verwenden. Es überwacht SVN-Repositorys auf Commits und benachrichtigt den Benutzer, wenn es passiert. Es ist in GNU GPL, ver 2.