2009-05-18 11 views
1

Ich habe ein Verzeichnis, das von dem Teil des Stammes kam, den ich ausgecheckt habe, der für meine Interessen nicht relevant ist. Wie verwende ich Tortoise SVN, um diesen Ordner von meinem System zu entfernen, und halte SVN davon ab, mir Updates zu geben, ohne sie aus dem Repository zu entfernen?Entfernen irrelevanter Verzeichnisse mit SVN

+0

Das ist ein bisschen alt, aber 1,6 eingeführt 'exlude' http://stackoverflow.com/questions/588024/how-to-ignore-specific-subversion-subdirectories-during-commit – Glenn

Antwort

4

ich es selbst noch nicht benutzt haben, aber einen Blick auf Sparse Verzeichnisse nehmen:

http://svnbook.red-bean.com/en/1.5/svn.advanced.sparsedirs.html

Subversion 1.5 führt eine Funktion spärlich Verzeichnisse (oder flacher Auscheckvorgänge) genannt, die Sie leicht zu können Auschecken einer Arbeitskopie - oder eines Teils einer Arbeitskopie - als eine vollständige Rekursion, mit der Freiheit, zuvor ignorierte Dateien und Unterverzeichnisse zu einem späteren Zeitpunkt einzubringen.

...

Sie an dieser Stelle fragen, „was so sein könnte? Wann würde ich das verwenden? "Ein Szenario, in dem dieses Feature Dienstprogramm findet, ist an ein bestimmtes Repository-Layout gebunden, insbesondere wenn Sie viele verwandte oder co-abhängige Projekte oder Softwaremodule als Geschwister an einem Repository-Speicherort haben (trunk/project1, trunk/project2) , Kofferraum/Projekt3 usw.). In solchen Szenarien könnte es sein, dass Sie sich nur um eine Handvoll dieser Projekte kümmern - vielleicht ein primäres Projekt und ein paar andere Module, von denen es abhängt. Sie können einzelne Arbeitskopien von all diesen Dingen auschecken, aber diese Arbeitskopien sind disjunkt, und infolgedessen kann es mühselig sein, Operationen für mehrere oder alle gleichzeitig auszuführen. Die Alternative besteht darin, die Funktion der spärlichen Verzeichnisse zu verwenden und eine einzige Arbeitskopie aufzubauen, die nur die Module enthält, die Ihnen wichtig sind. Sie würden mit einer leeren Tiefe des gemeinsamen übergeordneten Verzeichnisses der Projekte beginnen und dann mit unendlicher Tiefe nur die Elemente aktualisieren, die Sie haben möchten, wie wir im vorherigen Beispiel gezeigt haben. Betrachten Sie es als ein Opt-in-System für Arbeitskopie Bürger.

0

Soweit ich weiß, ist es nicht möglich, selektiv Einträge beim Auschecken zu ignorieren. Wenn Sie eine SVN URL auschecken, erhalten Sie alles darunter.

Also, wenn Ihr Projekt hat die folgende Struktur:

\trunk\Dir1 
\trunk\Dir2 
\trunk\Dir3 

Sie können entweder alle \ trunk, erhalten oder einzeln überprüfen jede Dir1, Dir2 oder Dir3 ihren eigenen Arbeitsverzeichnisse. Der Versuch, die Amtsleitung auszuchecken, aber Dir2 nicht zu enthalten, wird nicht unterstützt.

0

Wenn Sie den Kofferraum auschecken, erhalten Sie alles. Wenn es Ihr Repo ist, organisieren Sie es nach Projekten/Interessen. Was ist der Grund, alles zu sichern und zu versionieren, wenn du nicht weißt, was es in einem Jahr ist?

0

Sie haben ein paar Möglichkeiten:

  1. einfach den Ordner löschen und nie die Wurzel aktualisieren, nur die subdirs in der Nähe des gelöschten Ordner.

  2. Legen Sie svn: ignore -Eigenschaft im Root-Verzeichnis fest, um nicht benötigte Ordner zu ignorieren und niemals das Root-Verzeichnis zu übernehmen.

  3. Sie können tortoiseSvn einrichten, um bestimmte Ebenen unter Ihrem Root-Verzeichnis auszuchecken.Wenn Ihr Problem mit riesigen Dateien im nicht benötigten Verzeichnis besteht, können Sie root nur mit untergeordneten Elementen (eine Ebene) auschecken und dann den Befehl switch für alle Verzeichnisse neben dem nicht benötigten verwenden, um alle darunter liegenden Ebenen zu überprüfen, um Speicherplatz mit den unnötigen zu sparen Richt. Sie werden immer noch ein leeres nicht benötigtes Verzeichnis sehen.

Verwandte Themen