Wenn ich ausführe svn rm file
, wird die Datei aus der lokalen Arbeitskopie entfernt.
Was ich jetzt mache ist:
$ cp file file2
$ svn rm file
$ svn ci
$ mv file2 file
Wie vermeide ich, dass svn bei Verwendung auch die lokale Datei löscht svn rm
?
svn
version-control
Juanjo Conti
quelle
quelle
Antworten:
Sie möchten die
--keep-local
Befehlszeilenoption. Dadurch wird die Datei aus der Versionskontrolle entfernt, ohne sie aus Ihrem Dateisystem zu entfernen.Hinweis: Die
--keep-local
nur die Auswirkungensvn rm
Ihrer Kopie. Bei anderen Benutzern wird möglicherweise eine eigene lokale Kopie der Datei gelöscht, es sei denn, aufgrund der von ihnen vorgenommenen Änderungen besteht ein Konflikt zwischen ihrer lokalen Kopie und dem Repository. Dies ist möglicherweise nicht das gewünschte Ergebnis. Siehe Kommentare unten.quelle
Das Entfernen einer Datei aus SVN, ohne sie lokal zu löschen, ist ein häufiges Problem. Ein prominentes Beispiel ist die Datei .classpath in einem Eclipse-Projekt. Das Einfügen dieser Konfigurationsdatei unter SVN ist wunderbar, solange alle im Projekt verwendeten Computer dieselbe Eclipse- und Java-Installation haben. Sobald diese Bedingung verletzt ist, beginnen Commits, andere Eclipse-Projekte zu brechen. Dies ist der Punkt, an dem man eine Datei aus SVN entfernen muss, ohne sie irgendwo zu löschen.
erledigt die Arbeit perfekt auf einer Maschine und zu diesem Zeitpunkt.
Das Problem ist, dass andere Computer diese Datei möglicherweise verlieren (beim Update) oder sie wiederbeleben (beim Festschreiben). Der Fehler von SVN besteht weder darin,
--keep-local
das Repository zu behandeln noch es auf andere Arbeitskopien zu übertragen. Daher muss auf allen anderen oben genannten Computern der Befehl ausgeführt werden - am besten vor jedem Festschreiben oder Aktualisieren.Dies funktioniert natürlich bestenfalls zu 90%. Löschungen und Neuversionen erfolgen plötzlich. Meine Lösung besteht darin, jede Maschine, auf die ich direkten oder indirekten Zugriff habe, zu tun
Dies ist so geradezu hässlich, dass man es kaum als "Lösung" bezeichnen kann. Trotzdem ermöglichte es immer eine schnelle Reparatur späterer Unfälle.
quelle
Ich habe keine Antwort auf diese genaue Frage, aber ich habe eine Antwort auf eine verwandte Frage, bei der alle Dateien (dh keine bestimmte) in einem Verzeichnis aus der Versionskontrolle entfernt werden, ohne sie lokal zu löschen. Diese Lösung stammt aus einer Scientific Linux-Implementierung.
ls -a .svn
sollte das svn-Verzeichnis anzeigen, in dem Steuerdaten gespeichert sind. Einfach:
rm -r .svn
wird dieses Verzeichnis loswerden. Dann tippe:
svn status
Es wird der Fehler "Warnung: Dieses Verzeichnis ist keine Arbeitskopie" ausgegeben, da es nicht mehr unter Versionskontrolle steht.
Ich hoffe das hilft.
quelle