2011-01-03 12 views
0

Wir haben eine SVN-Struktur, die verwendet wird, um unsere Software auf einer Vielzahl von Plattformen (Win, OSX, Linux, Iphone, Android) zu kompilieren.Wie man einige Ordner je nach Plattform in SVN ignoriert

Wir verwenden den gleichen Baum für alle Anwendungen, um die Dinge einfach und sauber zu halten.

Dies funktioniert gut, aber Checkout-Zeiten beginnt ein Problem zu sein, da wir alle Abhängigkeiten für jede Plattform auschecken müssen (Abhängigkeiten sind in verschachtelten Unterordnern).

Ist es möglich, SVN zu konfigurieren, um einige Ordner zu ignorieren, abhängig von der Plattform, die gerade auscheckt?

Einige Ideen haben wir:

  1. ein globales Muster unterschiedlich in jeder Plattform-Client konfiguriert ignorieren verwenden, die einen Teil des Baumes ausschließt. Nachteil: Wir müssten unseren Baum ändern, um ein einziges Muster zu haben, das etwas, das tatsächlich benötigt wird, nicht ausschließt. Wir derzeit nicht :(
  2. Verwendung der svn: Ignorieren Tag: Ich glaube nicht, dass dies plattformabhängig sein kann. Kann es?
  3. Haben Sie einen anderen Stammordner für jede Plattform und verwenden Sie dann "externals" zu verknüpfen nur das, was erforderlich ist (dies ist eine Menge Arbeit zu beibehalten werden)

Hat jemand Erfahrung mit diesem Produkt?

Dank!

+0

Diese Frage ist ähnlich zu http://stackoverflow.com/q/508135/16070 –

+0

Nur wundernd: Warum müssen Sie immer wieder eine vollständige Kasse tun? Ein 'svn update' vor jedem Build sollte ausreichend sein und wenn du sicherstellen willst, dass es keine lokalen Änderungen gibt, mache ein' svn -Ref -R * 'vor' svn update'. – Sky

Antwort

2

Sie svn co --depth und svn --set-depth Sachen zu umgehen, können Sie don‘ Ich möchte es auschecken Es ist etwas mühsam, jedes Verzeichnis anzugeben, aber Sie könnten Shell- und Batch-Skripts in das Stammverzeichnis des Arbeitsverzeichnisses einfügen, um Ihnen bei diesem Unterfangen zu helfen.

C> svn co --depth immediates %URL% mydir 
C> cd my dir 
C> helpcheckout.bat 
Checking out tree for Windows... 
[...] 

$ svn co --depth immediates $URL mydir 
$ helpcheckout.sh --platform linux 
$ Checking out tree for Linux development... 

Kasse diese Optionen unter Sparse Directories im Subversion Online-Handbuch.