it-swarm.com.de

Wie entferne ich das Subversion-Steuerelement für einen Ordner?

Ich habe einen Ordner, c:\websites\test, Und er enthält Ordner und Dateien, die aus einem nicht mehr vorhandenen Repository ausgecheckt wurden. Wie bringe ich Subversion dazu, die Verfolgung dieses Ordners und aller Unterordner und Dateien zu beenden?

Ich weiß, dass ich den Ordner .svn Einfach löschen könnte, aber es gibt viele Unterordner in vielen Ebenen.

253
Brian Boatright

Wenn Sie TortoiseSVN verwenden, exportieren Sie es einfach an den aktuellen Speicherort der Arbeitskopie. Dadurch werden die .svn-Ordner und -Dateien entfernt.

http://tortoisesvn.net/docs/release/TortoiseSVN_en/tsvn-dug-export.html#tsvn-dug-export-unversion

Aktualisierte Antwort für Subversion 1.7:
In Subversion 1.7 wurde die Arbeitskopie umfassend überarbeitet. Es gibt nur einen .svn-Ordner, der sich in der Basis der Arbeitskopie befindet. Wenn Sie 1.7 verwenden, ist das Löschen des .svn-Ordners und seines Inhalts eine einfache Lösung (unabhängig von der Verwendung von TortoiseSVN oder Befehlszeilentools).

255
crashmstr

Unter Linux wird dies funktionieren:

  find . -iname ".svn" -print0 | xargs -0 rm -r
154
Max Cantor

Versuchen Sie SVN-Export .

Sie sollten in der Lage sein, so etwas zu tun:

svn export /path/to/old/working/copy /path/to/plain/code

Und dann einfach die alte Arbeitskopie löschen.

TortoiseSVN hat auch eine Exportfunktion , die sich genauso verhält.

118
pkaeding

Wenn Sie mit Windows arbeiten, können Sie in diesem Ordner nach .svn Suchen und alle auflisten. Drücken Sie Ctrl + A Wählt alle aus und drückt die Entf-Taste, werden alle lästigen Subversion-Objekte entfernt.

32
graham.reeds

Unter Linux lautet der Befehl:

svn delete --keep-local file_name
22
bunteKnete

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

svn export --force .

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

21
I. J. Kennedy

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

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".
10
user1439712

Bei mir hat es gut funktioniert:

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

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

Egal was ich tat, wann immer ich ein 'Update' ausführte, wurden diese Dateien wiederhergestellt und alle zurückgebracht. Ich wollte sie nicht aus dem Repository entfernen, sondern nur von meinem Computer - aber ich musste den Rest der Arbeitskopie auf dem neuesten Stand halten (daher konnte ich nicht einfach den .svn-Ordner entfernen).

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

Dies ist ein clientseitiges "Update", das 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. Überprüfen Sie zunächst das Verzeichnis vollständig. Führen Sie dann svn update --set-depth exclude in dem Unterverzeichnis aus, das Sie nicht interessieren.

Für TortoiseSVN können Sie dasselbe auch tun, indem Sie mit der rechten Maustaste auf den Ordner klicken, den Sie nicht möchten. Klicken Sie auf Update to revision..., und setzen Sie dann die 'Update Depth' auf Exclude, wie in diesem Screenshot gezeigt:

enter image description here

8

Verwenden Sie die svn export Befehl:

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

Alle Dateien unter Versionskontrolle werden exportiert. Stellen Sie sicher, dass Sie nichts verpasst haben.

7

Entfernen Sie einfach den .svn-Ordner im gewünschten Ordner, dann wird das Steuerelement automatisch entfernt.

3
Ramudu

Unter Windows können Sie dem Kontextmenü Ihres Explorers einen entsprechenden Quicklink hinzufügen. Starten Sie einfach dieses Registrierungsskript:

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\Folder\Shell\DeleteSVN]
@="Delete SVN Folders"

[HKEY_CLASSES_ROOT\Folder\Shell\DeleteSVN\command]
@="cmd.exe /c \"TITLE Removing SVN Folders in %1 && COLOR 9A && FOR /r \"%1\" %%f IN (.svn) DO RD /s /q \"%%f\" \""

Dadurch wird ein Element mit dem Namen "SVN-Ordner löschen" zu Ihrem Rechtsklick-Menü hinzugefügt. Dadurch werden alle .svn-Ordner in diesem Ordner und alle Unterordner gelöscht.

Quelle (deutsch): http://www.sjmp.de/software/alle-svn-ordner-und-dateien-loeschen/

3
Tobias

Unter Windows 7 kann man einfach den Projektordner öffnen und nach ".svn" suchen, wenn versteckte Dateien aktiviert sind, und alle gefundenen .svn-Ordner löschen.

2
Unknown_Guy

Es gibt auch ein nettes kleines Open Source-Tool namens SVN Cleaner , das dem Windows Explorer-Kontextmenü drei Optionen hinzufügt:

  • Entfernen Sie alle .svn
  • Entfernen Sie alle außer Root .svn
  • Lokale Repo-Dateien entfernen
2
Martin Buberl

Für diejenigen, die NetBeans mit SVN verwenden, gibt es eine Option 'Subversion> Export'.

2
Ladik

Sie können "svn export" verwenden, um eine Kopie dieses Ordners ohne svn-Daten zu erstellen, oder Sie können diesen Ordner zum Ignorieren der Liste hinzufügen

2
andy.gurin
1

Die Antwort ist überraschend einfach - exportiere den Ordner in sich selbst! TortoiseSVN erkennt diesen Sonderfall und fragt, ob Sie die Arbeitskopie nicht versionieren möchten. Wenn Sie mit Ja antworten, werden die Steuerverzeichnisse entfernt und Sie erhalten einen einfachen, nicht versionierten Verzeichnisbaum.

1
Srikanth

Eine andere (einfachere) Linux-Lösung:

rm -r `find /path/to/foo -name .svn`
1
Dougvj

DER BESTE UND EINFACHSTE WEG

Wenn Sie denken, dass Sie mit einem einfachen magischen Befehl gewinnen könnten, sind Sie gescheitert! SVN ist wirklich knifflig und kommt immer irgendwie mit einer neuen Fehlermeldung in Xcode zurück. Versprich es früher oder später ... also musst du es klug machen!

Wie Sie wissen, besteht die übliche und bewährte Methode unter Xcode darin, eine Datei im Projektfenster auf der linken Seite zu löschen. Wenn Sie es verpasst haben und es irgendwie im Finder gelöscht haben, sind Sie in Schwierigkeiten. Große Schwierigkeiten! Aber Sie könnten es lösen und Freizeit, wenn Sie es gut machen.

Zuerst müssen Sie den SVN-Verweis auf die Datei oder den Ordner löschen, bevor Sie ihn tatsächlich löschen können.

  1. Wenn Sie die Datei/den Ordner einfach aus dem Papierkorb entfernen oder den letzten Schritt beim Löschen rückgängig machen könnten, dann ...

  2. Gehen Sie zum Terminal - ja, zum guten alten Terminal - und gehen Sie zu diesem Ort. Am besten einfach cd eingeben und den Ordner/die Datei zum Terminal ziehen. Sie werden etwas Ähnliches bekommen

cd/Users/UserName/Documents/Apps_Developing/...

Sie könnten überprüfen, wo Sie mit sind

ls

befehl, der Ihre Dateien auflistet.

  1. Dann müssen Sie die SVN-Referenz mit einem SVN-Befehl löschen:

    svn delete --keep-local fileName_toDelete

Dadurch wird die Datei aus dem SVN-Repository gelöscht, ABER Sie müssen sie manuell im Finder löschen.

1
BootMaker

Ich benutze rsync:

# copy folder src to srcStripped excluding subfolders named '.svn'. retain dates, verbose output
rsync -av --exclude .svn src srcStripped
0
yeeking

Über eine Windows-Befehlszeile:

rmdir .svn /s /q
0
Michael Ross

Wenn Sie das Windows-Betriebssystem verwenden, gehen Sie zu Ihrem Ordner, und überprüfen Sie, ob versteckte Dateien geöffnet sind. Anschließend wird der Ordner SVN angezeigt. Entfernen Sie einfach diesen Ordner.

0
dush88c

NetBeans IDE Benutzer können dies wie folgt tun:

  1. Öffnen Sie das SVN-Projekt in Ihrer IDE
  2. Wählen Sie das Projekt aus

    klicken Sie mit der rechten Maustaste auf Subversion-Export

  3. Im Dialogfeld

    export to folder/var/tmp/projektname presse export wait zeigt complete an fragt, ob Sie es öffnen möchten und öffnet sich im laufenden Betrieb

  4. Du kannst jetzt zu Git wechseln :)

0
YumYumYum

Meine Idee ist, den .svn-Ordner zu entfernen und dann alle anderen Dateien in einen neuen Ordner zu verschieben. So einfach ist das.

0
Alvin567

Wenn Sie die Shell zum Löschen von .svn-Ordnern verwenden, benötigen Sie das Argument - depth, um das zu verhindern find Kommando in das gerade gelöschte Verzeichnis und zeigt Fehlermeldungen wie zB.

"find: ./.svn: Keine solche Datei oder Verzeichnis"

Als Ergebnis können Sie den Befehl find wie folgt verwenden:

cd [dir_to_delete_svn_folders]
find . -depth -name .svn -exec rm -fr {} \;
0
fatihk

svn export funktioniert gut, aber ich denke, das ist:

svn rm --keep-local <folder/file>

Es wird aus Ihrem lokalen Repository entfernt.

0
Javier Salinas