2008-10-08 16 views
47

Ich habe einen Ordner, der meine Arbeitskopie ist. Wie entferne ich alle SVN-Funktionen aus diesem Ordner? Es gibt einen Grund für mich, dies zu tun, irgendwie ist mein Master-Ordner, der alle meine Arbeitskopien von Websites enthält, irgendwie in eine Arbeitskopie umgewandelt worden, so dass ich eine Arbeitskopie als solche in mir selbst habe.'Un-SVN' eine Arbeitskopie

Gibt es also eine einfache Möglichkeit, Versionskontrolle aus einem Ordner zu entfernen?

Antwort

32

Entfernen Sie einfach alle ".svn" Ordner darin. Das ist es.

+20

"Export" ist viel einfacher –

+9

nicht, wenn der Remote-Repo gestorben ist, dann ist der Export unmöglich – DevelopingChris

+2

Ausarbeitung auf diesem. Wenn Sie versuchen, ein Verzeichnis zu SVN hinzuzufügen, das bereits '.svn' versteckte Dateien enthält, wird svn es nicht hinzufügen. Entfernen Sie die .svn-Dateien und versuchen Sie es erneut mit 'svn add'. Wenn das nicht funktioniert. Löschen Sie das Verzeichnis und führen Sie ein 'svn update yourdirectory', dann ein' svn remove yourdirectory'. SVN wird oft verwirrt und in Panik versetzt, und manchmal ist die einzige Lösung, alles wegzublasen und alles neu aufzubauen. –

4

Sie können alle .svn-Ordner entweder manuell löschen (stellen Sie sicher, dass dies auch für jeden Unterordner geschieht) oder verwenden Sie ein einfaches Hilfsprogramm wie Jon Gallaway's shell command.

1

können Sie nicht einfach den Unterordner .svn löschen?

Soweit ich weiß SVN alles über seine Verbindung zum Repository in diesem Unterordner (zumindest in den Fenstern) speichert

47

SVN-Export ist der Befehl, den Sie suchen. Sie können einen kontrollierten Satz von Dateien an einen nicht kontrollierten Ort exportieren und diesen verwenden.

+0

Ich denke, er brach die Svn Struktur und die Werkzeuge funktionieren nicht für ihn ... –

2

Mit TortoiseSVN können Sie einen Rechtsklick ziehen & Drop Ihren Ordner und wählen Sie dann einen "SVN Export All to here" -Befehl.

3

TortoiseSVN kann Dateien ohne Subversion-Bindungen exportieren - klicken Sie mit der rechten Maustaste auf ein Repository (oder ein Verzeichnis innerhalb eines Repos), dann auf TortoiseSVN und dann auf Exportieren. Eine andere Möglichkeit ist das Entfernen aller .svn-Verzeichnisse in allen Ordnern.

4

Der Windows-Client "TortoiseSVN" verfügt über die Funktion "Export". Export erstellt eine Kopie an anderer Stelle in einem anderen Ordner ohne all diese ".svn" -Ordner. Sie können entweder aus dem Repository oder aus der lokalen Kopie mit der Option exportieren, um nicht versionierte Dateien aufzunehmen.

13

Wenn Sie TortoiseSVN verwenden, können Sie einfach mit der rechten Maustaste in den Stammordner Ihrer Arbeitskopie klicken und auf Exportieren ... klicken. Das funktioniert auch, wenn Sie nicht gefolgte Änderungen vorgenommen haben.

Ebenso können Sie einfach einen Export von Ihrem Repository durchführen und es werden keine .svn-Ordner erstellt.

Ein anderer direkter Ansatz ist, nur alle .svn-Ordner wie zuvor erwähnt zu löschen.

1

Wie andere bereits gesagt haben, wird das Löschen des .svn-Ordners die SVN-Funktionalität aus diesem Ordner entfernen. Wenn Sie es rekursiv tun, werden Sie Ihr gesamtes WC "un-SVN", was im Wesentlichen der Exportbefehl ist. Ich bin mir nicht sicher, ob es eine Funktion von Tortoise, der CLI-SVN-Binärdatei oder beiden ist, aber ich erinnere mich, dass einer von ihnen einen In-Place-Export ermöglicht, der einfach die .svn-Ordner aus einem WC entfernt. Ein normaler Export erstellt eine Kopie Ihres WCs an einem neuen Speicherort, der nicht versioniert ist.

4

wie über dieses:

for /f "tokens=* delims=" %%i in ('dir /s /b /a:d ".svn"') do rd /s /q "%%i" 

rekursiv alle .svn folders--

(zu entfernen, wenn die Exportfunktion für Sie-- keine Option ist, nicht Repository etc zugreifen können ...)

+2

Upmod für die kostenlose Verwendung von DOS :-) – endian

+0

Vorsicht - das wird jedes Verzeichnis, dessen Name endet in "Svn". –

23

Wenn Sie * nichts-wie-Tools wurden:

find . -type d -name .svn -print0 | xargs -0 rm -fr 
+10

Bitte verwenden Sie 'finden. -type d -name .svn -print0 | xargs -0 rm -fr "anstatt zu vermeiden, dass die Hölle losbricht, wenn Dateinamen Leerzeichen enthalten. –

+1

** Kann jemand die Antwort dann bearbeiten? ** –

+0

Danke; Das war genau das, was ich brauchte. Ich benutzte Svn, um eine Website zu verwalten, aber Wordpress Auto-Updates verheerten wirklich Chaos auf der Toilette und es war es nicht wert, davon auszugraben.) –

3

Hier ist ein Windows-Batch-Skript, das alle .svn Ordner aus einem Subversion-Arbeitskopie Verzeichnis löscht:

@echo off 
rem cleanup .svn subdirs 

setlocal enabledelayedexpansion 

rem change to directory that this batch script resides in 

if "%~1"=="" (
    echo Usage: svncleanup svn_working_copy_dir 
    exit /b 1 
) 

echo cleaning up .svn subdirs in "%~1" ... 

for /R "%~1" %%I in (.svn) do rmdir /Q /S "%%I" > NUL 2>&1 
+0

+1, das wird nur .svn entfernen Ordner und sonst nichts. –

2

I Benutze einfach Windows Explorer, um nach ".svn" zu suchen (beginnend am Anfang meiner Arbeitskopie) und dann wähle ich alle gefundenen Ordner aus und lösche sie.

2

Export in Platz mit Tortoise

Wenn ich alle oben genannten Vorschläge lese ich krümmte, weil meine Quelldateien 3GB ist, mit many.svn Ordner.

Wählen Sie Exportieren aus dem R-Klick-Kontextmenü, und wenn der Dialog "Wo wird kopiert werden?" Angezeigt wird, wählen Sie denselben Ordner selbst aus. OK. Viola all die Quellcode-Kontrolle ist (rekursiv) sofort weg.

Verwandte Themen