Frage

Ich würde gerne wissen, ob es einen Weg gibt, um automatisch ein changeset zu markieren, wie es vor Ort begangen wird, oder wenn in den Ofen geschoben Repository.

würde ich jeden changeset gerne einen Tag mit Version / Build-Nummer haben. Ich plane, meine Version / Build-Nummern in einer Datenbank zu speichern und mochte ein Skript haben, diesen Wert aus der Datenbank abrufen und einen Tag die changeset hinzuzufügen. Ist es möglich, automatisch ein Skript aufrufen, dies als post-commit Ereignis zu tun oder als Post-Push-Ereignis, wenn in den Ofen geschoben Repository?

Ich bin auch offen für alle anderen Ansätze automatisches Tagging zu erreichen auf jedem Commit / Drücks.

War es hilfreich?

Lösung

Statt einen Tag für jedes changeset zu schaffen, warum nicht versuchen, eine der folgenden Aktionen:

  • Verwenden Sie den changeset Hash als Kennung?
  • Verwenden Sie eine Zeichenfolge aus dem Protokoll als Kennung erzeugt (siehe unten)?

Eine beschreibende String kann aus dem Protokoll mit diesem Befehl erzeugt werden:

hg log -r 1.7.2 --template '{latesttag}-{latesttagdistance}-{node}\n'

Das Ergebnis hat die Form:

<latest tag>-<# changesets since latest tag>-<changeset hash>

Zum Beispiel auf meinem lokalen Klon des Mercurial Repo, dies erzeugt:

1.7.2-2-5e51254ad4d4c80669f462e310b2677f2b3c54a7

Was mir sagt, dass es zwei Commits seit Tag gewesen 1.7.2 und die aktuellen changeset Hash ist 5e51254a.

In Mercurial erzeugt jeder Tag ein neues changeset. Also, wenn Sie jeden Tag begehen, verdoppeln Sie die Anzahl der Differenzmengen im Repo. Sie sollten die integrierten Tools verwenden (wie oben beschrieben), anstatt zu versuchen, das Rad neu zu erstellen.

Andere Tipps

  

Ich würde gerne wissen, ob es einen Weg gibt, um automatisch ein changeset zu markieren, wie es vor Ort begangen wird, oder wenn in den Ofen geschoben Repository.

Sie können immer schreiben einen Beitrag commit, das zu tun.

  

Ich würde jeden changeset gerne einen Tag mit Version / Build-Nummer haben.

Stichworte sind nützlich, wichtige Momente in Ihrer begehen Geschichte zu identifizieren. diese Momente bietet einen aussagekräftigen Namen, der wie Release 1.0, Release 1.3 usw. auf die Produktentwicklung betrifft.

Wenn Sie jede Änderung setzt einen Tag machen sind dann würden Sie nur Geräuschpegel erhöhen. Sie werden weiterhin Informationen über wichtige Tags, wo einige halten müssen.

Betrachten Tag als Meta-Informationen über Wechsel Sets. Nicht alle von ihnen verdienen die gleiche Bedeutung. Nicht alle von ihnen verlangen, dass die Meta-Informationen.

bei Tags Suchen können Sie sinnvolle Geschichte geben nur, wenn man sie sparsam verwenden.

  

Haken

Siehe auch:

Beispiel: Führen Sie nach einer changegroup wurde per Push, Pull oder entflechten hinzugefügt. Ich habe früher auslösen automatische Builds.

[hooks]
changegroup.yyyy = command 

Ebenso gibt es post-commit, post-Push-Haken

[hooks]
post-<command> =  command
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top