268 Stimmen

Wie kann man die Subversion-Kontrolle für einen Ordner entfernen?

Ich habe einen Ordner, c:\websites\test und enthält Ordner und Dateien, die aus einem Repository ausgecheckt wurden, das nicht mehr existiert. Wie kann ich Subversion dazu bringen, diesen Ordner und alle Unterordner und Dateien nicht mehr zu verfolgen?

Ich weiß, ich könnte einfach die .svn Ordner, aber es gibt viele Unterordner in vielen Ebenen.

22voto

I. J. Kennedy Punkte 23203

Ich habe festgestellt, dass Sie nicht einmal an einen temporären Speicherort kopieren müssen. Sie können eine

svn export --force .

und die .svn-Dateien werden entfernt in situ und lassen die anderen Dateien unverändert. Sehr praktisch und weniger anfällig für Unordnung.

11voto

user1439712 Punkte 129

Ohne Subshells in Linux zu löschen .svn Mappen:

find . -name .svn -exec rm -r -f {} +

rm = remove
-r = recursive (folders)
-f = force, avoids a lot of "a your sure you want to delete file XY".

10voto

brazilianldsjaguar Punkte 1369

Keine dieser Antworten war für meine Situation zufriedenstellend. Ich arbeite mit Subversion 1.8 und hatte eine Arbeitskopie, die nur eine einzige .svn im allerersten Ordner, Root. Ich wollte jedoch einige Zweige aus der Arbeitskopie entfernen.

Egal, was ich tat, jedes Mal, wenn ich ein "Update" durchführte, wurden diese Dateien wiederhergestellt und waren alle wieder da. Ich wollte sie nicht aus dem Repository entfernen, sondern nur von meinem Computer - aber ich musste den Rest der Arbeitskopie in Takt halten (daher konnte ich nicht einfach den .svn-Ordner entfernen).

Lösung? svn update --set-depth exclude <dir>

Dies ist eine clientseitige "Aktualisierung", die ein bestimmtes Verzeichnis ausschließt. Sie finden es in den Handbüchern unter svnbook.com . Kurz gesagt, es beschreibt dies als:

Ab Subversion 1.6 können Sie einen anderen Ansatz wählen. Zuerst checken Sie das gesamte Verzeichnis aus. Dann führen Sie svn update --set-depth exclude für das eine Unterverzeichnis aus, das Sie nicht interessiert.

Für TortoiseSVN können Sie dasselbe tun, indem Sie mit der rechten Maustaste auf den Ordner klicken, den Sie nicht haben wollen, und dann auf Update to revision... und setzen Sie dann die "Aktualisierungstiefe" auf Exclude wie in diesem Bildschirmfoto zu sehen:

enter image description here

8voto

Manikandan S Punkte 822

Das hat bei mir gut funktioniert:

find directory_to_delete/ -type d -name '*.svn' | xargs rm -rf

7voto

1800 INFORMATION Punkte 125009

Verwenden Sie die svn export Befehl:

cd c:\websites\test
svn export c:\websites\test_copy

Alle Dateien, die der Versionskontrolle unterliegen, werden exportiert. Überprüfen Sie noch einmal, ob Sie nichts übersehen haben.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X