Frage

Ich habe eine Datei in RTC (nennen Sie es foo.c) das ich modifiziert und in einen Änderungssatz eingecheckt habe (CS1) zusammen mit einigen anderen Änderungen.Ich habe diese Datei dann erneut geändert und in einen anderen Änderungssatz eingecheckt (CS2) zusammen mit anderen Änderungen.

Ich bin jetzt auf einen Fall gestoßen, in dem ich liefern möchte CS2 zu einem Stream, aber RTC gibt mir einen Fehler, dass das Liefern eine Lücke im Stream erzeugen würde (wegen der Änderung in CS1).Ich möchte nicht alles liefern CS1 noch, weil es einige Änderungen enthält, die noch nicht in einem Build enthalten sein sollten.Die ursprüngliche Änderung zu foo.c in CS1 war eine geringfügige Entfernung eines #include, und beeinflusst nichts anderes.

Gibt es eine Möglichkeit, diese Lücke zu schließen?

Ich sehe in der RTC-Dokumentation einige Dinge über das Anwenden von Patches, aber ich verstehe nicht, wohin es damit geht.
Gibt es eine Möglichkeit, einen Änderungssatz in mehrere Änderungssätze aufzuteilen, sodass ich nur die eine Datei liefern kann?

War es hilfreich?

Lösung

Update seit 2012 (und die ursprüngliche "Problemumgehung", alles zu liefern und zurückzusetzen, was Sie nicht wollen):

Sehen dieser Thread:

In RTC 4.0.5 haben wir zusätzliche Unterstützung beim Versuch geliefert, Änderungssätze zu akzeptieren, die eine Lücke aufweisen (häufig beim Versuch, Korrekturen zurückzuportieren).

In einer sehr kurzen Zusammenfassung der Funktion können Sie beim Akzeptieren von Änderungssets mit einer Lücke jetzt einem Lücken-Workflow folgen, der jeweils einen Änderungssatz akzeptiert und für Änderungssätze, die Lücken enthalten, einen neuen Änderungssatz erstellt (mit unterstützter Rückverfolgbarkeit), der die entsprechenden Änderungen enthält.
Dies bedeutet, dass Benutzer die Änderungssätze nicht als Patch akzeptieren müssen.

Das Anwenden von Änderungssets als Patch weist im Vergleich zum neuen Workflow Einschränkungen auf.
Diese Funktion ist in der zusammengefasst RTC 4.0.5 'Neue & Bemerkenswerte' Seite.

Nachfolgend finden Sie einige Videos, die diese Funktion zeigen:

Das ist die Änderungssets suchen Funktion:

https://jazz.net/downloads/pages/rational-team-concert/4.0.5/4.0.5/images/gapeditor.png


In RTC 5.0 haben wir eine Funktion "Lücke füllen" hinzugefügt, bei der die Änderungssätze, die die Lücke füllen, dem Benutzer angezeigt werden, sodass er entweder alle Änderungssätze akzeptieren oder mit dem Lücken-Workflow fortfahren kann, der in RTC 4.0.5 verfügbar war.

Diese Funktion ist in der zusammengefasst RTC 5.0 'Neu & Bemerkenswert' Seite:

Die Klassen, die zum Füllen der Lücke beteiligt sind, umfassen (verfügbar in RTC 5.0):

client side: IWorkspaceConnection.findChangeSetsToAcceptToFillGap(...) 
server side: IScmQueryService.findChangeSetsToAcceptToFillGap(...) 

Beide Funktionen werden im Detail in der "Verbessertes Spalthandling für SCM" Beitrag.

https://jazz.net/downloads/pages/rational-team-concert/5.0/5.0/images/missing-change-sets-dialog.png


Ursprüngliche Antwort (2012)

Gibt es eine Möglichkeit, ein Änderungsset aufzuteilen?

Ich glaube nicht, das Lesen der änderungssatz-Manpage:

Eine Datei oder ein Ordner in einer Komponente kann nicht Teil von mehr als einem aktiven Änderungssatz sein.
Wenn eine Datei oder ein Ordner in einem aktiven Änderungssatz enthalten ist, werden alle Änderungen daran Teil dieses Änderungssatzes, unabhängig davon, ob der Änderungssatz aktuell ist oder nicht, und änderungen an dieser Datei oder diesem Ordner können erst dann explizit in einen neuen Änderungssatz eingecheckt werden, wenn der aktive Änderungssatz, der ihn enthält, abgeschlossen ist.

Mit foo.c im CS1 und CS2 bedeutet, dass CS1 "abgeschlossen" wurde (im Wesentlichen eingefroren), und es wäre schlecht zu versuchen, es zu teilen.

Die Patch-Lösung bedeutet:

  • stornierung von CS1
  • hinzufügen der zusätzlichen Änderung zu foo .c bis CS2
  • CS1-Änderungen wiederholen

Sehen "Wie entferne ich ein Änderungsset aus einem Stream?"

Geschichte 149483 geht es darum, diesen umständlichen Workflow zu verbessern, und die Lückenerkennung wird verbessert (Erweiterung 24822)


Der OP timwoj schließt:

Am Ende habe ich einfach alles geliefert und dann das umgekehrt, was ich nicht wollte.

Andere Tipps

Problem:CS1 ändert foo.c, CS2 weitere Änderungen foo.c.Sie möchten nur CS2 ausliefern, aber RTC sagt Ihnen, dass dies zu Lücken führen würde.

Lösung:Erstellen Sie einen Patch aus CS2 und suspendieren Sie sowohl CS1 als auch CS2.Wenden Sie dann den Patch an, fügen Sie ihn in Ihren Arbeitsbereich ein und checken Sie die Änderungen ein, wodurch ein weiterer Änderungssatz, CS3, erstellt wird, der mit CS2 identisch ist, jedoch keine Abhängigkeit von CS1 aufweist.Sie können jetzt CS3 liefern.

Nach der Auslieferung von CS3 können Sie CS2 verwerfen und CS1 fortsetzen, was eine Zusammenführung mit CS3 erfordert.

Dann sollten Sie in dem Zustand sein, dass CS1 auf CS3 aufbaut und Sie können wählen, ob Sie CS1 in Zukunft ausliefern möchten oder nicht.

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