TFS: Labels vs Changesets
Ich versuche zu kommen mit best practices hinsichtlich der Verwendung von TFS source control. Jetzt, jedes mal, wenn wir tun, ein bauen Sie, wir beschriften Sie die Dateien, die überprüft werden in der TFS mit der Versionsnummer. Ist dieser Ansatz besser oder schlechter ist, als einfach die Dateien Einchecken und mit der version-Nummer in die Kommentare?
Können Sie dann verwenden, die änderungen zurück zu gehen, wenn notwendig oder die Etiketten sind noch vielseitiger?
Dank!
InformationsquelleAutor der Frage laconicdev | 2009-06-05
Du musst angemeldet sein, um einen Kommentar abzugeben.
Haben Sie zwei verschiedene Zwecke, die Änderungen sind, wenn die Dateien tatsächlich geändert und Sie möchten, halten Sie eine permanente Aufzeichnung, die sich ändern. Etiketten Kennzeichnen eine bestimmte version der Dateien, so dass Sie können leicht gehen Sie zurück zu diesem Punkt. Es sei denn, Ihr Aufbau tatsächlich änderungen an Dateien unter Quellcodeverwaltung befindet und Sie möchten, notieren Sie diese änderungen. Sollten Sie die Kennzeichnung.
Auch, Kennzeichnung wesentlich weniger ressourcenintensiv ist. Und Sie können mehrere Etiketten auf die gleiche version einer Datei.
InformationsquelleAutor der Antwort Alex
Sollten Sie die label-Versionen von Quelldateien, aus denen Ihr build. Wenn Sie mit TeamBuild, es übernimmt das für Sie automatisch. Es kombiniert den Namen Ihrer build-definition, Datum und die build-Nummer. So brauchen Sie nicht, etwas zu tun.
Ihre andere option ist nicht sehr konventionellen und erfordert eine Menge unnötige Arbeit. Wenn ich es richtig verstehe, würden Sie aus Ihrem Quellcode-Dateien während des build-Prozess und dann wieder Einchecken, mit einer Versionsnummer, die in der angegebenen check-in-Kommentare. Dies ist, wie Alex erwähnt sehr ressourcenintensiv, im Hinblick auf Ihre build-Prozess und auch Ihre source-control-repository. Zudem, wie würden Sie die source-Dateien für eine bestimmte version wenn Sie die version Informationen, die eingebettet ist in die Kommentare? Es wird sehr schwer werden und Sie sich hinsetzen und schreiben Sie Ihre eigene Anwendung, die verwendet TFS source control-api zum herunterladen der source Dateien in einem Arbeitsbereich, indem Sie nach der Versionsnummer in der check-in Kommentare. Dies schafft unnötige Komplexität und Kopfschmerzen.
Wenn Sie Etiketten verwenden Sie stattdessen tun können, bekommen über das label in der VS-IDE, laden Sie die Quelldateien, aus denen das label. Man kann sogar sagen, TeamBuild eine Bezeichnung statt dem herunterladen der aktuellen source-Dateien während des build-Automatisierung. So dass Sie bauen können Vorherige Versionen der Anwendung leicht. Mit Etiketten können Sie auch später anwenden die änderungen zu einem bestehenden label, wenn es änderungen am code indem Sie einfach immer, dass die Beschriftung und dann immer bestimmte änderungsmengen anzuzeigen, und dann eine schnelle Bezeichnung oder die Schaffung einer Marke neues label.
Kennzeichnung ist sehr leistungsstark, bequem zu bedienen, und ist ein Teil des TFS. Anstatt kommen mit Ihre benutzerdefinierte Lösung, die erfordert eine Menge Aufwand, es zu schaffen und zu pflegen, versuchen Sie, nur nutzen, was bereits vorhanden ist.
InformationsquelleAutor der Antwort Mehmet Aras
Brauchen Sie nicht, dies zu tun. TFS können sich auf eine dem Stand der Codebasis in zahlreiche Arten, von denen die Etiketten sind ja ein - aber so baut und auch änderungen. Sie können sehen, die verfügbaren Möglichkeiten zu rekonstruieren, die zu einem bestimmten Zeitpunkt durch eine
Get Specific Version...
und der Prüfung der Optionen in derType
dropdown:Changeset
können Sie nur nach jeder änderungssatz;Date
ist offensichtlich;Label
zu, außer, dass die builds automatisch* erstellen von Etiketten (wählen SieLabel
aus der dropdown-dann werfen Sie einen Blick in dieFind Label
dialog).*Ich denke, es ist automatisch! Es sei denn, es ist etwas, das wir eingerichtet haben, speziell, wo ich bin im moment...
InformationsquelleAutor der Antwort AakashM
StackOverflow lässt mich nicht auf den Kommentar Antworten, daher Schreibe ich dies als eine neue "Antwort". Ich möchte klären einige der Missverständnisse, die oben aufgeführt sind.
Erste, mit TFVC Etiketten ist ressourcenintensiver als die Verwendung von Differenzmengen. Viel mehr. Befehle wie Branch, Merge, und Bekommen über das Label ist langsamer. Für enterprise-Server mit großen Datenbanken, die Sie nicht wollen, um die Verwendung von Etiketten.
Zweite, Baut nicht automatisch die Etiketten erstellen, obwohl das Standard-build-Schritte umfassen einen Schritt zum erstellen einer label.
Dritte, wie andere bereits erwähnten, Etiketten können verschoben oder gelöscht, so sind Sie viel weniger zuverlässig als änderungsmengen anzuzeigen, die unveränderlich sind.
Insgesamt empfehle ich Sie NICHT verwenden die Etiketten. Die einfachste alternative ist daran zu erinnern, dass die änderungssatz-Nummer für Ihr baut. Oder wenn Sie isolieren möchten, um die verschiedenen release-Versionen, sollten Sie erstellen release-Zweige.
Etiketten sind OK für kleine Systeme, sind aber nicht gut für große Unternehmen.
InformationsquelleAutor der Antwort Will Lennon - MSFT