it-swarm.com.de

Setzen Sie einen SVN-Ordner auf eine frühere Version zurück

Um einen bestimmten Ordner in SVN auf seinen vorherigen Status zurückzusetzen, verwende ich derzeit Folgendes:

svn rm folder
svn commit -m 'removed folder to revert to previous version'
svn co http://pathto/repo/[email protected]
cd folder
rm -rf .svn //recursively if many folders
svn add folder
svn commit -am 'reverted to the previous version'

Scheint zu viel Mühe für einen recht häufigen Anwendungsfall. Ich muss es falsch machen. Wie kannst du es sonst tun?

45
Lakshman Prasad

Warum nicht svn merge verwenden?

Angenommen, Sie möchten von der aktuellen HEAD (zuletzt zugesicherten) Version auf Version 268 zurückkehren:

cd folder
svn up
svn merge -r HEAD:268 .

Lösen Sie dann alle Konflikte manuell (es sollte nichts sein, wenn es keine lokalen Änderungen gibt) und:

svn commit -m "- reverted to revision 268"

Einzelne Änderung rückgängig machen (z. B. in Revision 666):

cd folder
svn merge -c -666 .

Lokale Änderungen rückgängig machen (noch nicht festgeschrieben):

cd folder
svn revert -R .
89
Jacek Konieczny

Sie können svn merge für diese Aufgabe verwenden, siehe http://svnbook.red-bean.com/de/1.1/ch04s04.html#svn-ch-4-sect-4.2 für ein Beispiel

1
Thomas Schaub

Warum nicht 'svn merge' verwenden? Deshalb: "Dann lösen Sie eventuelle Konflikte manuell [..]"

Wenn ich weiß, dass "Ordner" in Revision 268 die konsistenten Daten enthält, die ich gerne fortsetzen würde, warum automatisch eine Zusammenführung mit möglicherweise inkonsistenten Daten erstellt werden, nur um diese Änderungen später manuell zu entfernen. Es ist fehleranfällig und verhindert den Zweck meines Konfigurationsverwaltungstools.

Das heißt Ich würde das Rezept von der ursprünglichen Anfrage mit einer kleinen Verbesserung vorziehen. Wenn Sie 'svn export' verwenden, um die alte Version abzurufen, müssen Sie keine .svn-Dateien entfernen:

svn rm folder
svn commit -m 'removed folder to revert to previous version' .
svn export -r 268 http://pathto/repo/folder
svn add folder
svn commit -m 'reverted to the previous version' folder
1
user2451680

du könntest auch gebrauchen

svn revert folder/*

dadurch wird die gesamte Datei unter folder zurückgesetzt.

0
Sheetal T