Ich habe beide Methoden mit einer großen kommerziellen Anwendung ausprobiert.
Die Antwort darauf, welche Methode besser ist, hängt stark von Ihrer genauen Situation ab, aber ich werde schreiben, was meine allgemeinen Erfahrungen bisher gezeigt haben.
Die insgesamt bessere Methode (meiner Erfahrung nach): Der Kofferraum sollte immer stabil sein.
Hier sind einige Richtlinien und Vorteile dieser Methode:
- Codieren Sie jede Aufgabe (oder einen zugehörigen Satz von Aufgaben) in einem eigenen Zweig. Dann haben Sie die Flexibilität, wann Sie diese Aufgaben zusammenführen und eine Freigabe durchführen möchten.
- Die Qualitätssicherung sollte für jeden Zweig durchgeführt werden, bevor er mit dem Trunk zusammengeführt wird.
- Wenn Sie die Qualitätssicherung für jeden einzelnen Zweig durchführen, wissen Sie genau, was den Fehler leichter verursacht hat.
- Diese Lösung lässt sich auf eine beliebige Anzahl von Entwicklern skalieren.
- Diese Methode funktioniert, da die Verzweigung in SVN fast sofort erfolgt.
- Kennzeichnen Sie jede von Ihnen durchgeführte Version.
- Sie können Funktionen entwickeln, die Sie für eine Weile nicht veröffentlichen möchten, und genau entscheiden, wann sie zusammengeführt werden sollen.
- Bei jeder Arbeit, die Sie ausführen, können Sie Ihren Code festschreiben. Wenn Sie nur außerhalb des Trunks arbeiten, werden Sie Ihren Code wahrscheinlich häufig nicht festgeschrieben und daher ungeschützt und ohne automatischen Verlauf.
Wenn Sie versuchen, das Gegenteil zu tun und Ihre gesamte Entwicklung im Kofferraum durchzuführen, treten die folgenden Probleme auf:
- Ständige Build-Probleme für tägliche Builds
- Produktivitätsverlust, wenn ein Entwickler ein Problem für alle anderen Personen im Projekt begeht
- Längere Release-Zyklen, da Sie endlich eine stabile Version erhalten müssen
- Weniger stabile Releases
Sie werden einfach nicht die Flexibilität haben, die Sie benötigen, wenn Sie versuchen, einen Zweig stabil zu halten und den Stamm als Entwicklungs-Sandbox. Der Grund dafür ist, dass Sie nicht aus dem Kofferraum auswählen können, was Sie in diese stabile Version einfügen möchten. Im Kofferraum wäre schon alles zusammengemischt.
Der einzige Fall, den ich besonders sagen würde, um die gesamte Entwicklung im Kofferraum durchzuführen, ist, wenn Sie ein neues Projekt starten. Abhängig von Ihrer Situation kann es auch andere Fälle geben.
Übrigens bieten verteilte Versionskontrollsysteme viel mehr Flexibilität und ich empfehle dringend, entweder auf hg oder git umzusteigen.