Mehrere Zweige in Git markieren?

7

Ich habe ein Git-Repository mit zwei Zweigen; eine für Code, der für die Herstellung / Test verwendet wird, und eine, die die tatsächliche Produktions-Firmware ist (sie sind fast identisch). Jetzt ist es an der Zeit, eine Freigabe zu erstellen, die an den Hersteller gesendet wird. Daher möchte ich natürlich einige passende Tags in beiden Zweigen anlegen.

Aber es scheint, dass Git mich nicht den gleichen Tag-Namen auf beiden Zweigen setzen lassen wird. Wenn ich versuche, die Zweige einzeln zu markieren, teilt es mir mit, dass das Tag bereits existiert, wenn ich den Sekundenzweig markieren will. Ich habe versucht, zwei Commits zu übergeben, aber das hat mir auch nicht gefallen. Ich muss die beiden Zweige nicht unbedingt im Lockstep markieren, aber ich möchte den Tags keine zufälligen Zeichen hinzufügen, um Namenskonflikte zu vermeiden.

Gibt es eine Möglichkeit, das zu tun, was ich will, oder möchte ich das Falsche tun?

Ein Zweig ist der Code, den die Fertigung an das Gerät anlegt, um zu testen, ob es richtig zusammengebaut wurde. Der andere Zweig ist der Code, der im Produkt enthalten ist. Es sind nicht wirklich zwei Zweige pro Release. Dies ist die erste Version für dieses Produkt und daher die erste Veröffentlichung für beide Zweige. Daher habe ich versucht, beide Zweige mit 'release-1.0' zu kennzeichnen.

    
Brandon Fosdick 09.06.2009, 22:42
quelle

3 Antworten

14

Sie wollen das Falsche tun. Der Zweck eines Tags besteht darin, eine bestimmte Revision eindeutig zu identifizieren. Wenn ich Sie wäre, würde ich nur den Produktionszweig markieren und den Testzweig unmarkiert lassen.

Es ist jedoch ziemlich seltsam, dass Sie zwei unabhängige Zweige pro Release haben. Warum ist das? Die Antwort könnte helfen, eine bessere Lösung zu beschreiben.

Da die Tags nicht wirklich auf dieselbe Revision, sondern (möglicherweise) verschiedene Revisionen verweisen sollen, sollten die Tags etwa so aussehen:

  • appname-1.0-manufacturing
  • appname-1.0-production

Auf diese Weise wissen Sie, zu welchem ​​Release jedes Tag gehört und wo der Code gelandet ist.

    
John Millikin 09.06.2009, 23:01
quelle
5

Ein Tag gibt einem einzelnen Commit nur einen Namen, also gibt es wahrscheinlich keine Möglichkeit, das zu tun, was Sie wollen.

Ich bin gespannt, was das gewünschte Ergebnis wäre. Ich meine, ein Zweck eines Tags ist es, ein Name zu sein, den Sie später auschecken können. Also, wenn Sie git checkout auf ein Tag, das auf zwei Zweige verweist .. Was passiert?

    
andy 09.06.2009 23:03
quelle
2

Wenn die Partei zu spät kommt, wäre es eine andere Alternative, die beiden Zweige zusammenzuführen, so dass ein Commit zu jedem Zeitpunkt den Status des Testcodes und des Produktionscodes enthielt, vorausgesetzt, dass sie ohne Konflikte koexistieren können (in diesem Fall) kommt darauf an, wie schwer diese Verschmelzung wäre, ob es sich lohnen würde, dies zu versuchen). Dies würde auch dazu beitragen, Situationen zu vermeiden, in denen Sie versehentlich den falschen Zweig markieren, wie es bei dem Versuch, den Testzweig und den Produktionszweig beim Markieren zu synchronisieren, durchaus vorkommen kann.

    
jmtd 15.06.2009 13:14
quelle

Tags und Links