Was ist Regale in TFS?

317

Ist das Regal in TFS nur ein sanftes Einchecken, damit andere Teammitglieder den Quellcode sehen können?

dh der zurückgestellte Code wird nicht richtig kompiliert?

Matthew Lock
quelle

Antworten:

453

Regale haben viele Verwendungszwecke. Die wichtigsten sind:

  1. Kontextwechsel : Speichern Sie die Arbeit an Ihrer aktuellen Aufgabe, damit Sie zu einer anderen Aufgabe mit hoher Priorität wechseln können. Angenommen, Sie arbeiten an einer neuen Funktion und kümmern sich um Ihre eigenen Angelegenheiten, wenn Ihr Chef hereinkommt und sagt: "Ahhh! Bug Bug Bug!" und Sie müssen Ihre aktuellen Änderungen an der Funktion löschen und den Fehler beheben. Sie können Ihre Arbeit an der Funktion zurückstellen, den Fehler beheben, dann zurückkehren und die Bearbeitung aufheben, um später an Ihren Änderungen zu arbeiten.
  2. Freigeben von Änderungssätzen : Wenn Sie einen Änderungssatz von Code freigeben möchten, ohne ihn einzuchecken, können Sie anderen den Zugriff erleichtern, indem Sie ihn zurückstellen. Dies kann verwendet werden, wenn Sie eine unvollständige Aufgabe an eine andere Person (arme Seele) übergeben oder wenn Sie eine Art Testcode haben, würden Sie NIEMALS einchecken, dass eine andere Person ausgeführt werden muss. h / t zu den anderen Antworten über die Verwendung dieser für Bewertungen, ist es eine sehr gute Idee.
  3. Speichern Ihres Fortschritts : Während Sie an einer komplexen Funktion arbeiten, befinden Sie sich möglicherweise an einem „guten Punkt“, an dem Sie Ihren Fortschritt speichern möchten. Dies ist ein idealer Zeitpunkt, um Ihren Code zu speichern. Angenommen, Sie hacken CSS / HTML, um Rendering-Fehler zu beheben. Normalerweise knallt man drauf und wiederholt jeden möglichen Kludge, den man sich ausdenken kann, bis er richtig aussieht. Sobald es jedoch richtig aussieht, möchten Sie möglicherweise versuchen, Ihr Markup erneut zu bereinigen, damit jemand anderes verstehen kann, was Sie vor dem Einchecken getan haben. In diesem Fall können Sie den Code zurückstellen, wenn alles richtig gerendert ist Dann können Sie Ihr Markup neu gestalten und wissen, dass Sie jederzeit zurückgehen und Ihr Änderungsset abrufen können, wenn Sie es versehentlich erneut brechen.

Irgendwelche anderen Verwendungen?

TJB
quelle
16
Wenn man ein Änderungsset zurückstellt, kann man entweder die ausstehenden Änderungen lokal beibehalten (nützlich für 2 oder 3) oder nicht (nützlich für 1)
dumbledad
2
Die Visual Studio-Dokumentation zum Regal enthält einige zusätzliche Informationen zum Kontext.
Ganzheitlicher Entwickler
1
Es wird auch von einem Gated-Build verwendet, um die Änderungen zu speichern, bis ein endgültiges Commit durchgeführt werden kann.
Tore Østergaard
Eine Sache, die mir aufgefallen ist, ist, dass Shelving-Änderungen nicht unbedingt den Code zurücksetzen und auch nicht den Status der einzucheckenden Dateien ändern. Während Sie also an diesen z. B. Fehleränderungen arbeiten, wie vermeiden Sie es, den Fehleränderungscode zusammen mit zu übernehmen Ihr Code im Regal?
Jacques
Gerade festgestellt, dass die Dateien ausgecheckt bleiben, wenn Sie die Option auswählen, den Änderungssatz lokal beizubehalten.
Jacques
105

Mit Shelving können Sie alle Änderungen auf Ihrer Box speichern, ohne einchecken zu müssen. Die Änderungen bleiben auf dem Server erhalten. Zu einem späteren Zeitpunkt können Sie oder einer Ihrer Teamkollegen sie wieder auf eine Ihrer Maschinen "auflösen".

Es eignet sich auch hervorragend für Überprüfungszwecke. In meinem Team legen wir zum Einchecken unsere Änderungen zurück und senden eine E-Mail mit der Änderungsbeschreibung und dem Namen des Änderungssatzes. Die Mitarbeiter des Teams können dann das Änderungsset anzeigen und Feedback geben.

Zu Ihrer Information: Der beste Weg, ein Regalset zu überprüfen, ist der folgende Befehl

tfpt review / Shelveset: RegalsetName; Benutzername

tfpt ist Teil der Team Foundation Power Tools

JaredPar
quelle
6
Es sollte beachtet werden, dass es heute keinen Grund mehr gibt, Änderungen und E-Mail-Informationen manuell zurückzustellen. Das moderne Verfahren besteht darin, eine Codeüberprüfung anzufordern.
ChiefTwoPencils
34

Das stimmt. Wenn Sie ein Regal erstellen, wird Ihr Code von anderen Personen, die eine Aktualisierung durchführen, nicht angezeigt.

Dadurch werden Ihre Codeänderungen auf dem Server gespeichert, der wahrscheinlich besser gesichert ist als Ihr Arbeits-PC.

Sie können Ihre Änderungen auf einem anderen Computer abrufen, falls Sie den Drang verspüren, von zu Hause aus zu arbeiten.

Andere können Ihre Regale sehen (obwohl ich denke, dass dies optional ist), damit sie Ihren Code vor dem Einchecken überprüfen können.

teedyay
quelle
Das stimmt. Wenn Sie ein Regal erstellen, wird Ihr Code von anderen Personen, die eine Aktualisierung durchführen, nicht angezeigt. Es bedeutet 1) Wenn ich den Code in TFS einchecke, wird mein Teammitglied den Code in seinem System sehen, wenn er den neuesten Stand erhält? 2) Es bedeutet also, über welches Konto wir den Code zurückgestellt haben. Von demselben Konto wird nur der zurückgestellte Code angezeigt? Bitte korrigieren Sie mich, wenn ich falsch
liege
Sie können die Regale anderer Leute sehen, wenn Sie möchten.
Teedyay
3
Um genauer zu sein, "andere Leute, die das Neueste machen, werden Ihren Code nicht herunterladen "
Sergiol
18

Ein Punkt, der in vielen dieser Diskussionen übersehen wird, ist, wie Sie auf die gleiche Maschine zurückgreifen, auf der Sie Ihre Änderungen zurückgestellt haben. Vielleicht für die meisten offensichtlich, aber für mich nicht. Ich glaube, Sie führen ausstehende Änderungen rückgängig machen - stimmt das?

Ich verstehe den Prozess wie folgt:

  1. Um Ihre aktuell ausstehenden Änderungen zu speichern, klicken Sie mit der rechten Maustaste auf das Projekt Shelve und fügen Sie einen Regalenamen hinzu
  2. Dadurch werden die Änderungen am Server gespeichert (oder gespeichert) (niemand wird sie sehen).
  3. Anschließend machen Sie ausstehende Änderungen rückgängig, um Ihren Code auf den letzten Check-in-Punkt zurückzusetzen
  4. Sie können dann mit der zurückgesetzten Code-Baseline das tun, was Sie tun müssen
  5. Sie können die Änderungen jederzeit aufheben (möglicherweise sind Zusammenführungskonflikte erforderlich).

Wenn Sie also mit Arbeiten beginnen möchten, die Sie möglicherweise für Shelve benötigen, müssen Sie vor dem Start einchecken, da der Check-in-Punkt der Ort ist, an den Sie zurückkehren, wenn Sie den obigen Schritt "Ausstehende Änderungen rückgängig machen" ausführen.

Nick Wright
quelle
8
Sie können den Schritt "Ausstehende Änderungen rückgängig machen" überspringen, wenn Sie beim Erstellen des Regalsatzes das Kontrollkästchen "Ausstehende Änderungen lokal beibehalten" deaktivieren.
Michael J.
14

Ich stoße die ganze Zeit darauf, also ergänzende Informationen zu Branchen:

Wenn Sie mit mehreren Zweigen arbeiten, sind Regalsätze an den Zweig gebunden, in dem Sie sie erstellt haben. Wenn Sie also ein Wechselset zu lange im Regal rosten lassen und sich von einem anderen Zweig lösen müssen, müssen Sie dies mit der Veröffentlichung der Elektrowerkzeuge im Juli tun.

tfpt unshelve /migrate
joshua.ewer
quelle
Off Topic, aber wahr :-)
Tore Østergaard
2
Dieser Kommentar ist so alt, dass er hinzugefügt wurde, bevor die Antwort für die Stapelüberlaufantwort festgelegt wurde :-)
joshua.ewer
2

Shelving ist so, als ob Ihre Änderungen in der Quellcodeverwaltung gespeichert wurden, ohne die vorhandenen Änderungen zu beeinflussen. Wenn Sie eine Datei in der Quellcodeverwaltung einchecken, wird die vorhandene Datei geändert, aber das Zurückstellen entspricht dem Speichern Ihrer Änderungen in der Quellcodeverwaltung, ohne jedoch die tatsächlichen Änderungen zu ändern.

Herr N. Das
quelle
1

@JaredPar: Ja, Sie können Regale für Überprüfungen verwenden, aber denken Sie daran, dass Regale von Ihnen / anderen überschrieben werden können und daher nicht langfristig stabil sind. Daher sollten Sie für aufsichtsrechtlich relevante Überprüfungen niemals ein Regalset als Basis verwenden, sondern ein Check-in (Changeset). Für eine informelle Überprüfung ist es in Ordnung, aber nicht für eine formelle (zB Freihandelsabkommen relevante) Überprüfung!

Daniel
quelle
0

Wenn Sie Gated Builds verwenden und ein Build ausgelöst wird, wird ein Regalsatz Ihres Arbeitsbereichs erstellt, der zum Erstellen übermittelt wird. Wenn der Build fehlschlägt, wird das Regalset abgelehnt. Wenn der Build erfolgreich ist, wird ein Änderungssatz erstellt und an TFS übergeben. In beiden Fällen muss die Person, die das Einchecken / Erstellen durchführt, den Arbeitsbereich abgleichen. Dies ist so einfach wie das Ausführen eines Get Latest.

Jim Roth
quelle