Frage

Ich vermute, ich habe korrupt mergeinfo aber ich bin sicher nicht. Wer weiß, wie ich eine Entscheidung treffen würde und welche Ressourcen sind da draußen, um Hilfe zu beheben Probleme?

Hier ist das Problem. Mein Team vor kurzem auf agiles bewegt und Anwendungen verfügen über Niederlassungen (Geschichte Filialen wirklich), wo verschiedene Teams gleichzeitig auf den gleichen Quellen arbeiten. Wie erreicht die Geschichte des Team verschmilzt mit dem Stamm einen hohen Zustand der Bereitschaft. Die Verschmelzungen nehmen Tage oder Wochen wegen der fehlenden Änderungen, unerwartete Veränderungen und Konflikte. Wir sprechen über Teams von 5-10 Personen und der Aufwand / Churn scheint viel zu hoch.

verwenden Menschen die diese merge Muster a) PULL - merge Stamm-zu-Zweig, Entschlossenheit, Test, verpflichten b) PUSH - merge Zweig-zu-Stamm, Entschlossenheit, Test, verpflichten c) Recreate Zweig (oder in der Regel neue Geschichte Zweig erstellen und löschen alt, da es fertig ist)

Mit dem Ende dieser der Branche und Stamm in Ausrichtung sein sollte.

Probleme sehen wir:

  1. Änderungen nicht während der Stamm-zu-Zweig merge berichtete zeigt in der nachfolgenden Zweig-zu-Stamm
  2. Konflikte auf svn: mergeinfo Eigenschaften während merge
  3. Datei fehlt, aber die lokale bearbeiten auf neue Datei in Zweig hinzugefügt und schob zum Stamm
  4. incoming + lokale löschen (Datei gelöscht am Stamm und Zweig zeigt als Konflikt)

(1) Sollte nicht passieren. Der Zug von Ast zu Stamm sollte die zwei synchron für alle Änderungen bereits am Stamm setzen. Die Änderungen im Zweig-zu-Stamm merge sind Änderungen, die auf dem Stamm passiert ist. So in der ersten Zusammenführung sollten sie Zweig fortgepflanzt haben aber nicht. Dies deutet auf die Korruption in mergeinfo Daten, die würde „verstecken“ Stamm ändert.

(2) Sollte nicht passieren. SVN sollten die Änderungen in der Zusammenführung Tracking verwalten werden. Dies hat auch Punkte, die Korruption in den mergeinfo Daten

(3) Sollte nicht passieren. Dies ist ein Fall einer neuen Datei auf dem Zweig hinzugefügt. Es sollte zeigen sich als eine neue Datei mit dem Stamm hinzugefügt. Dies hat auch Punkte, die Korruption in der Zusammenführung Infodaten.

(4) Ich glaube, dass dies ein SVN Fehler ist, und dass wir nicht dieses Problem beheben können. Dennoch, wenn dies unser einziges Problem wäre, würde ich glücklich sein

Wir sind derzeit auf svn 1.5.x-Server mit Clients svn 1.6.x verwenden und svn + ssh zu verbinden. Wir planen, die neueste und beste SVN zu gehen, da einige Korrekturen unsere Probleme auswirken können.

Dennoch ist es sicher, sieht aus wie unsere mergeinfo Daten ist falsch.

  • Merges dieser Bericht nicht alle Änderungen
  • Konflikte in merge von mergeinfo Eigenschaften

Jede gute Plätze für mich zu Beginn der Suche?

War es hilfreich?

Lösung

habe ich ein paar Experimente mit SVN Verzweigung / Zusammenführung, und ich fand heraus, dass es einige Situationen, in denen die fusionierenden funktioniert einfach nicht - zum Beispiel Änderungen vom Stamm überschrieben werden. Also, wenn Sie für Feature Zweige mit SVN zu halten, werden Sie in Welt der Schmerzen sein.

Ich habe ähnliche Experimente mit git, und ich habe festgestellt, keinen Weg, falsche Zusammenführung zu erhalten. Wenn zu git bewegen könnte durch Team / Management akzeptabel sein, empfehle ich es zu benutzen.

Andere Tipps

Wir hatten ähnliche Probleme aufgrund ähnlicher Umstände und haben sie weitgehend gelöst.

Die große Gefahr, ist dies:

Wenn Sie in Ihren Zweig vom Stamm nach dem Zweigerzeugung Verschmelzung sind, müssen Sie Flag Stamm mit dem Zweig commit (mit svn merge --record-only), sonst, wenn Sie versuchen, wieder reintegrieren es versucht, zu verschmelzen mit dem Stamm commit des Stammes mit dem Zweig in dem Stamm zurück.

Das ist offensichtlich endet Änderungen Stamm nach dem später gemacht Zurücksetzen trunk-> Zweig begeht, neigt massive Konflikte (insbesondere Baum Konflikte, wenn Sie eine neue Datei oder ein Verzeichnis in Stamm erstellt) verursachen, etc.

So ist unser Prozess entweder nie Sync-Stamm in einen Zweig ist, nachdem es erstellt worden ist (funktioniert gut für kurzlebige Äste) oder Folgendes zu tun:

  • Zweig b vom Stamm
  • Commits Stamm und Zweig
  • reintegrate Stamm in den Zweig und commit (Konflikte zu lösen, aber ansonsten keine Änderungen vorgenommen haben, auch auf der Kompilierung)
  • Sie sofort ein svn merge --record-nur der Stamm-zu-Zweig begehen Revision
  • beheben Sie alle anderen Probleme mit der Branche und weiterhin die Entwicklung
  • reintegrate aus dem Zweig mit dem Stamm, wenn Sie fertig.

ich gefunden: http://www.collab.net/community /subversion/articles/merge-info.html hilfreich während der Arbeit aus, was wir falsch machen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top