2011-01-05 18 views
4

Wir planen, in naher Zukunft von SVN zu GIT zu wechseln. Derzeit ist unser Softwareversionsformat {year}.{major}.{minor}.{revision}, zum Beispiel 2010.3.2.32465. {revision} Teil wird automatisch von Build-Skript ausgefüllt, so dass es sehr einfach ist, genaue Version von Code für jedes Build zu finden. Natürlich können wir die GIT-Revision für den gleichen Zweck verwenden, aber ich frage mich, ob etwas wie 2010.1.2.ce04503acce2452af1c3 hässlich aussieht und weniger lesbar ist als SVN-Revisionsnummern. Unter der Annahme, dass wir einige Haupt zentralen Repository haben,Versionierung mit GIT-Revision

  • Ist es möglich, eine numerische Version zu verfolgen, wie „Festschreibenummer“ für das Repository?
  • Ist es möglich, es automatisch von Build-Skripten zu verfolgen?
  • Was sind Best Practices für Versionsnummern bei GIT?

Irgendwelche Gedanken? Danke.

+0

Die Verwendung des Hash-Tags der Revision hat ein anderes Problem: Sie können nicht feststellen, welche Version die aktuellste ist, indem Sie einfach die Tags betrachten und sie bestellen. – tonio

+0

Ja, das stimmt. Aber wir müssen zu GIT wechseln, weil wir viele Zweige und Tags haben und das ist eine schmerzhafte Situation für SVN. –

+0

@tonio Eigentlich ist dieses Problem nicht so wichtig, wenn ich eine numerische Kennung hätte und eine Revision dafür finden könnte, ist es sehr einfach, sie nach dem Commit-Datum zu sortieren. Das gilt für mich. –

Antwort

3

Sie können git describe verwenden, um die Identifikation der Festschreibung zu erhalten, auf der Sie Ihre Version basieren.

Siehe http://www.kernel.org/pub/software/scm/git/docs/git-describe.html

Sie die Zweignamen liefert, die Zahl der Commits und die sha-ID des begehen. Auf diese Weise haben Sie eine Reihenfolge der verschiedenen Releases und vollständige Identifikation.

+0

Hier ist eine gute Beschreibung der Funktionsweise von 'git describe': http://stackoverflow.com/questions/384108/moving-from-cvs-to-git-id-equivalent – tonio

+0

' git describe' verwendet einen Tag-Namen, nie ein Zweigname. –