2010-08-11 7 views
7

Gibt es eine Möglichkeit in Subversion anzugeben, dass ein bestimmter Pfad ein Alias ​​für einen anderen Pfad ist, mit der Möglichkeit, diesen Alias ​​zu aktualisieren, wenn sich die Bedingungen ändern? Kann ich Pfade sperren, um Änderungen daran zu verhindern?Unterstützt Subversion Aliase für Zweige

ich auf einem Repository-Struktur gerade arbeite und was ich möchte ist folgende Pfade zu tun haben:

  • /versions/1.0 - Frühere Versionen (gesperrt)
  • /Versionen /1.1 - Frühere Versionen (gesperrt)
  • /versions/1.1.1 - Aktuelle Version (entsperrt für Entwicklung Patch)
  • /versions/1.1.2 - Next Minor Release (entsperrt für Entwicklung)
  • /versions/1.2 - Next Major Release (entsperrt für Entwicklung)
  • /Patch - Alias ​​für /versions/1.1 0,1, Check-in in beiden Orten erscheinen
  • /subrelease - Alias ​​für /versions/1.1.2, Check-in erscheint in beiden Orten
  • /trunk - Alias ​​für /versions/1.2, Check-Ins erscheinen in beiden Orten

Ziel zu halten mit zu halten Stamm zu bewegen ist, wo die meisten Entwickler arbeiten. Nachdem wir ein paar mal loslassen und 1.2 live geht, wäre die Struktur:

  • /versions/1.0 - Frühere Versionen (gesperrt)
  • /versions/1.1 - Frühere Versionen (gesperrt)
  • /versions/1.1.1 - Frühere Versionen (gesperrt)
  • /versions/1.1.2 - Frühere Versionen (gesperrt)
  • /versions/1.2 - Aktuelle Version (entsperrt für den Patch-Entwicklung)
  • /versions/1.2.1 - Next Minor Release (entsperrt für Entwicklung)
  • /versions/1.3 - Next Major Release (entsperrt für Entwicklung)
  • /Patch - Alias ​​für /versions/1.2 erscheinen Check-Ins an beiden Orten
  • /subrelease - Alias ​​für /versionen/1.2.Alias ​​für /versions/1.3, Check-In erscheinen in beiden Orten

Ich weiß, was ich tun konnte dies auf meiner eigenen Maschine, aber Mandatierung dies - 1, Check-In an beiden Orten

  • /trunk erscheinen in der Quellcodeverwaltung gibt jeder einen gemeinsamen Satz von Wörtern, mit denen man arbeiten kann.

  • Antwort

    6

    Nach meinem besten Wissen können Sie etwas Ähnliches erreichen, indem Sie den Ordner svn:externals property verwenden, damit ein Ordner als Aliasname für einen anderen fungiert. Wenn Sie niemals in zwei Versionen/Zweigen gleichzeitig festschreiben müssen, sollte es funktionieren.

    +0

    Eigentlich ja, das habe ich vergessen. Ich habe gemischte Erfahrung damit, aber das funktioniert mit einem externen innerhalb einer anderen Kasse, anstatt das externe von der gesamten Kasse zu nehmen. Ich habe gesehen, dass interne Links auch einige Male auf der SVN-Liste diskutiert wurden, aber AFAIK existieren sie noch nicht. – Rup

    2

    Es gibt keine Unterstützung für Aliase, sorry. Es ist jedoch schnell und einfach ganze Bäume zu kopieren. Sie können entweder version/1.2 usw. nicht erstellen und dann nur den Stamm zu Version 1.2 kopieren, wenn die Zeit gekommen ist, oder stattdessen einfach in Version 1.2 arbeiten. Alternativ könnten Sie beide verwalten, aber einen Prozess zum Kopieren von Commits zwischen den beiden verwenden, z. Sobald sie alle Tests auf Ihrem Continuous Integration Server bestanden haben, werden die Commits von trunk auf 1.2 kopiert.

    Sperren: Sie können einen serverseitigen Commit-Hook schreiben, um die Übertragung auf bestimmte Pfade zu verhindern, und Ihre Pfade dort hinzufügen, um sie zu sperren. Es gibt jedoch keine integrierte Unterstützung für den Server oder den Standardclient. Einige Kunden, z.B. TortoiseSVN behandelt Pfade, die 'Tags' enthalten, wie sie gesperrt werden sollten und warnt Sie, wenn Sie sich an sie binden wollen, aber das ist rein Client-seitig und Client-spezifisch.