Es tut mir leid, dass ich nur bei einer Wiederholung der zuvor gegebenen Antwort etwas Platz verbraucht habe - aber damit habe ich immer Probleme.
Angenommen, ich habe die lokalen Dateien auf die neueste Version aktualisiert, nämlich 854. Dann möchte ich eine ältere Version erhalten - die Version der Datei aus wenigen früheren Versionen, z. B. Version 851.
Kopie würde funktionieren:
svn copy -r 851 svn+ssh://<repository URL>/l3toks.dtx ./l3toks.dtx
.. aber ich kann mich nicht darum kümmern, nach der Repo-URL zu suchen :)
Das Update könnte anscheinend funktionieren:
svn up -r 851 ./l3toks.dtx
... es markiert jedoch auch die lokale Kopie als "frisch ausgecheckt" oder vielmehr "wie Online-Revision" (dh in Tortoise / RabbitVCS erhalten Sie ein grünes OK-Häkchen) - was bedeutet, dass Sie dies nicht tun können svn ci -m "rolled back to r 851"
: einfach, weil die lokale subversion
Die ausführbare Datei bemerkt keine lokalen Änderungen und macht sich nicht die Mühe, etwas in das Online-Repository hochzuladen.
Und wie bereits beantwortet, funktioniert Reverse Merge - aber in diesem Fall sollte man sich nicht auf die Verknüpfungssyntax verlassen. aber konkret angeben:
svn merge -r HEAD:851 l3toks.dtx
--- Reverse-merging r854 through r852 into 'l3toks.dtx':
U l3toks.dtx
Ich muss zugeben - ich würde den Satz " Reverse-Merging von r854 bis r852 in Datei " niemals so verstehen, dass er "Ich habe gerade r851 Ihrer Datei erhalten und alles überschrieben, was Sie zuvor lokal hatten - und er ist als anders als die letzte Online-Revision gekennzeichnet Sie können es als neue 'Rollback'-Revision wieder online einchecken ", aber ich denke (und hoffe :)), dass es das ist :)
Danach kann man svn diff
schnell sicherstellen, dass wir vor Ort die richtige Revision erhalten haben. Außerdem wird die Datei in Tortoise / RabbitVCS (dh anders als in der neuesten festgeschriebenen Version) mit einem roten Ausrufezeichen gekennzeichnet und svn ci -m "rolled back to r 851"
kann dieses Mal ausgeführt werden.
Beachten Sie auch, dass Sie, wenn Sie nach dem umgekehrten Zusammenführen endlich Ihre Meinung ändern ( dh Sie möchten trotzdem weiter an der neuesten HEAD-Revision arbeiten, hier 854 -, nachdem Sie lokal auf 851 zurückgesetzt haben, aber den Rollback noch nicht festgeschrieben haben ) sollten Sie nicht verwenden svn up
, da lediglich angegeben wird, dass es sich bereits um " Bei Revision 854 " handelt. stattdessen verwenden svn revert --recursive .
oder ähnlich ...
Prost!
Ref: Zurücksetzen von Änderungen mit Subversion - Jacob Wright - Flex, AIR, PHP usw.
EDIT: ... und anscheinend kann genau der gleiche Effekt svn merge -r HEAD:851 l3toks.dtx
erzielt werden mit:
svn export -r 851 l3toks.dtx
A l3toks.dtx
Export complete.