Zur Zeit lese ich das Buch "Konfigurations-Management mit Subversion, Ant und Maven" von Gunther Popp (ISBN 3-89864-416-2, 53 INF ST 230 P831). Obwohl ich nicht erwartet habe noch etwas neues über Subversion zu lernen, habe ich auf Seite 123 einen Aspekt gefunden, die ich noch nicht kannte:
Die sog. "PEG-Revision". Die Peg-Revision legt den Aufsetzpunkt des History-Tracings fest. In der Praxis benötigt man Peg-Revisionen meistens dann, wenn im Projekt Refactoring- oder Umstrukturierungen rückgängig gemacht werden sollen. Möchte man eine gelöschte Datei aus einer älteren Revision für zukünfitge Revisionen wiederherstellen, sollte man die Datei nicht einfach im Dateisystem kopieren. Denn in diesem Fall legt das Subversion die komplette Datei neu im Repository ab und behandelt diese, als wäre es eine vollkommen neue Datei. Stattdessen sollte man die Datei mit dem "svn copy" Befehlt wiederherstellen und behält dadurch die Historie der Datei bei:
svn copy MeineDatei.txt@5 MeineDatei.txt
(Wobei die 5 durch die Revision zu ersetzen ist, in der die Datei im Repository noch vorhanden war)
Im Buch ist dazu eine Zeile gelistet, mit der man die Historie einer Datei rückverfolgen kann, auch wenn sie in der aktuellen Revision nicht mehr vorhanden ist:
svn list -r2 src/java/e2etrace/timer/DefaultTimer.java@5