2010-10-27 9 views
16

In meinem Projekt habe ich viele Ordner. Ich weiß natürlich, dass ich Änderungen in nur wenigen Dateien (etwa 15) haben möchte, von denen jeder in 7 verschiedenen Ordnern ist. Außerdem möchte ich nicht die gesamte Quelle auschecken, um dies zu erreichen. Ist es möglich, nur die benötigten Ordner alleine auszuchecken?Wie man einige Dateien und Ordner alleine auscheckt, ohne die gesamte Quelle auszuprobieren

Ich werde dieses Szenario zu oft für verschiedene Quellen haben. Ist es möglich, nur ausgewählte Ordner auf einmal zu prüfen?

bearbeiten

Sagen Sie zum Beispiel ich ein Quellordner haben enthält. 5 Unterordner Wie,

Quelle

- Kern

- Helper

- Extensions

- Themen

- Ressourcen

Und ich möchte nur Extensions und Themes-Ordner auschecken. Aber ich möchte nicht jeden Ordner einzeln auschecken. Ich möchte es so, ich gebe den Check-out-Standort als svn.svnhost.com/trunk/project1/source. [Dann werde ich Extensions wählen und Themes geben einen einzigen Check-out]

Erwartete Kasse:

Quelle

- Extensions

- Themen

Manche Dinge wie:

svn co svn.svnhost.com/trunk/project1/source --foldernames Extensions, Themes 

Antwort

20

Neben nur die Ordner auschecken Sie wollen (was nur funktioniert, wenn Sie den gesamten Unterordner Baum auch wollen), Subversion unterstützt 1.7 etwas bezeichnet als "sparse directories". Grundsätzlich können Sie einen Ordner bis zu einer bestimmten Tiefe auschecken und anschließend in die Ordner "drill-down" gehen, an denen Sie interessiert sind.

Mit dem Befehlszeilenclient verwenden Sie die Optionen --depth und --set-depth zu svn update. Wenn Sie TortoiseSVN verwenden, gibt es im Dialogfeld "Kasse" eine Option "Checkout-Tiefe".

BEARBEITEN: Um gegen Ihre spezifische Frage zu klären, würden Sie zuerst zu einer Überprüfung Ihres Quellbaums mit Tiefe "sofortige". Dadurch erhalten Sie alle Ihre Ordner, aber sie werden zunächst leer sein. Dann können Sie durch Aktualisieren sie in den Extensions und Themen Verzeichnisse Drill-down "vollständig rekursiv" Tiefe (svn update --set-depth infinity oder in TortoiseSVN „Update zur Revision → aktualisieren Tiefe → "Fully rekursive").

EDIT : Die Aktualisierungstiefe kann als eine Art "Sichtbarkeitslevel" betrachtet werden und wird von Subversion erinnert, dh wenn Sie eine svn update auf Ihrer Arbeitskopie machen, wird sie nur auf die aktuelle Sichtbarkeitsstufe aktualisiert.

+0

@JasperE Aber ich kann das nicht mit einem einzigen svn Befehl machen, oder? Egal, die oben erwähnte Methode "unmittelbar" spart viel Zeit. :) –

+0

Nein, Sie brauchen mehrere Befehle. OTOH, Sie können diese Technik rekursiv anwenden, wenn Sie beispielsweise nur Teile der Extensions- oder Themese-Verzeichnisse auschecken möchten. – JesperE

+0

Das ist eigentlich ein ziemlich cooles Feature, obwohl es meiner Situation nicht wirklich gut entspricht. Außerdem können Sie die Sichtbarkeitsstufe nicht ** reduzieren **; Wenn Sie also die Tiefe auf unendlich eingestellt haben, gibt es keine Möglichkeit, sie zu reduzieren (Beschneiden), ohne alles erneut zu überprüfen. – JesperE

1

Im Schildkröte Navigator (Rechtsklick) in einen bestimmten Ordner navigieren und führen Kasse gegen den Standort

+0

Ich habe meine Frage aktualisiert. Bitte prüfe. –

5

Ja, Sehen Sie, wenn Sie eine Repository-Adresse wie haben:

https://elastik.svn.sourceforge.net/svnroot/elastik/ 

Fügen Sie einfach den gewünschten Ordner am Ende hinzu. Also, wenn ich nur das wollen „trunk/includes“ -Ordner:

https://elastik.svn.sourceforge.net/svnroot/elastik/trunk/includes 
2

Ich weiß das Frage ist mehr als 5 Jahre alt, aber meine Antwort kann denen helfen, die t betrachten seine Frage jetzt.

Ich benutze Tortoise SVN Version 1.9, es hat eine Option "wählen Sie Elemente" vor der Kasse. Wir können die erforderlichen Ordner/Dateien zum Auschecken aus dem Repository-Browser auswählen. enter image description here

+0

Also, wie übersetzt sich das in tatsächliche Svn-Befehle? – Nyerguds