Ich bin auf der Suche nach Svn Externals für meine Firma, und es scheint, als wäre es eine gute Funktion für uns zu verwenden. Wir haben einige Produkte, die häufig auf gemeinsame Komponenten verweisen, aber die schlechte Angewohnheit haben, in ältere Versionen und manchmal sogar in unterschiedlich verzweigte Codebasen zurückzufallen.Hilfe zum Verständnis SVN Externals
Ich habe ein ordentliches Stück darüber gelesen, wie sie jetzt arbeiten, und ich denke, ich verstehe das Konzept OK. Was ich nicht 100% ig sicher bin, ist, wie verschiedene Revisionen von mehreren Repositories miteinander verknüpft sind.
Sagen wir, ich habe ein Produkt und eine Bibliothek. Das Produkt wird für die Bibliothek erstellt, daher verfügt das Repo über eine svn: externals-Eigenschaft, die mit der Bibliotheksquelle verknüpft ist. In Ermangelung einer bestimmten Version in der Definition von svn: externals, wenn ich HEAD of Product auschecke, bekomme ich auch HEAD of Library.
Ich habe im Laufe der Jahre mehrere Versionen des Produkts erstellt, wobei jedes Mal auf die neueste Version von Library verwiesen wurde. Eines Tages muss ich jedoch zurückgehen und Produktversion 1 ausprobieren, indem ich manuell die richtige Version auswähle. Wenn ich das tue, welche Version der Bibliothek bekomme ich, HEAD oder die Revision, die ich beim ersten Mal benutzt habe?
Hoffentlich war ich ein guter Entwickler und erinnerte daran, jede Version des Produkts, die ich veröffentliche, zu markieren. Wenn ich mein Tag 'Product-1-0-0' auf das Repository anwende, wird auch die korrekte Revision des Library-Repositorys markiert? Wenn ich später das Produkt anhand des Tags "Product-1-0-0" auschecke, wird die korrekte Revision der Library damit ausgecheckt?
Für svn: externals sollten Sie fast immer Ihre Umdrehungen festlegen. Andernfalls, wenn Sie etwas in der extern referenzierten Sache ändern, können Sie Ihr Projekt nicht in den vorherigen Zustand zurückversetzen. Außerdem riskierst du Sachen zu zerbrechen, ohne es zu wissen. Siehe http://tortoisesvn.net/docs/nightly/TortoiseSVN_en/tsvn-dug-externals.html, "Verwenden Sie explizite Revisionsnummern". –