Wie vermeide ich große Anzahl von svn: mergeinfo wenn sie auf einen Feature-Zweig in SVN verschmelzenden trunk

StackOverflow https://stackoverflow.com/questions/3785743

  •  05-10-2019
  •  | 
  •  

Frage

Ich versuche, eine Funktion Zweig auf dem neuesten Stand zu halten, indem Stamm in den Zweig zu verschmelzen. Das Problem ist, dass etwa 2000 Dateien, die es gab, wenn der Zweig geschaffen wurde, und dass unberührt gelassen wurde sowohl auf der Niederlassung und am Stamm ist mit nichts als svn immer aktualisiert: mergeinfo. Das Projekt ist ziemlich groß im Maßstab, und die Auswirkungen auf unsere Geschichte SVN ist so groß, dass sie die Zusammenführung verpflichten macht Geschichte unbrauchbar, da es buchstäblich verändert Tausende von Dateien markiert, auch wenn die einzige Änderung an diesen Dateien wird durch SVN getan selbst.

Ich habe versucht,

  • Mit der gleichen Client-Version als Repo (1.5.2)
  • Mit meiner aktuellen Client-Version 1.6.10
  • eine Reihe von Revisionen Zusammenführen von Zweig bis Kopf beginnen

sollte ich erwähnen, dass ich eng an der SVN-Dokumentation suchen, wenn diese versuchen. Also keine Regeln gebrochen werden soll (z. B. nicht umgeTeilBäume, sauber lokale Kopie usw.)

War es hilfreich?

Lösung

Bascially das Repository Sie folgende auf Ihrer Integration Zweig ausgeführt werden müssen, um aufzuräumen, damit die Änderung Fans von dort aus: -

C:> svn propdel svn: mergeinfo -R

d. Sie tun es in den Kofferraum, so dass zukünftige Release und Feature Zweige nicht verschmutzt sind. Wenn bestehende Filialen verschmelzenden können Sie alle SVN ignorieren. Merginfo Änderungen unterhalb der „merge root“, wie sie ohnehin vererbt werden

Ich schrieb einen Blog zu diesem Thema einer Weile zurück, die es im Detail umfasst: -

Aufräumen svn: mergeinfo Dungs- http://chrisoldwood.blogspot.com/2010/03/cleaning -up-svnmergeinfo-droppings.html

Andere Tipps

svn Mergeinfo Eigenschaften, um einzelne Dateien hinzufügen, wenn sie ihre merge Geschichte unterscheidet sich von der ihrer Elternverzeichnis denkt. Sobald dies geschehen ist, alle anschließende Zusammenführung, egal wie harmlos, wird diese mergeinfo Eigenschaften bewirken, aktualisiert werden. Ich fand die erste Hälfte des diesem Artikel hilfreich zu verstehen, warum das passiert.

Wenn Sie diese Konstante mergeinfo Änderungen vermeiden wollen, haben Sie auf „aufzuräumen“ die bestehenden mergeinfo Eigenschaften auf Ihrer Niederlassung. Die sicherste, aber die meist mühsame, ist Art und Weise svn propget -R svn:mergeinfo auf dem Zweig zu laufen, und untersucht dann die Unterschiede zwischen dem mergeinfo auf einzelne Dateien und die mergeinfo ihres übergeordneten Verzeichnisses. Sie können feststellen, dass die Unterschiede klein sind, und dass „svn merge“ eine kleine Anzahl von einzelnen Revisionen ing wird Trigger mergeinfo elision genug sein, alle die einzelne mergeinfo Eigenschaften zu verursachen, verschwinden.

Wenn Sie sich sicher, dass Sie verstehen, wie mergeinfo funktioniert, können Sie auch waten nur in und manuell bearbeiten oder entfernen Sie die mergeinfo von den störenden Dateien.

Wenn Sie solche mergeinfo auf Dateien haben, die wirklich nicht verändert werden Sie oder jemand anderes tut verschmilzt nicht aus der Arbeitskopie Wurzel ... Die einzige Lösung entfernt wird, die svn: mergeinfo aus den Akten, weil der einzige Ort ist, nirgendwo sonst in der Arbeitskopie Wurzel. Und noch einen Punkt sollten Sie das Repository 1.6.x aktualisieren ..

Als ich mit blinder svn:merge-info Eigentum Löschung nicht sicher bin, habe ich ein Tool implementiert, um die aktuelle Situation auf einer Arbeitskopie und entfernen Sie so viele merge Revisionen wie möglich von Nicht-Root-Merge-info Eigenschaften zu analysieren. Nach weiteren menschlichen Überprüfungen und Kontrollen können die Änderungen an der Arbeitskopie begangen werden.

Hier ist sie: SVN-clean-mergeinfo

Zögern Sie nicht, alle Fragen über ihre Nutzung zu berichten, es verbessert zu erhalten.

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