Verstehen von Sperrtypen

Azure DevOps Services | Azure DevOps Server 2022 – Azure DevOps Server 2019 | TFS 2018

Sie können den Befehl Team Foundation-Versionskontrolle (TFVC) lock verwenden, um vorübergehend zu verhindern, dass Änderungen an einer bestimmten Datei oder einem bestimmten Ordner auf dem Quellcodeverwaltungsserver vorgenommen werden. Diese Funktion kann hilfreich sein, wenn Sie ein Element in Ihrem Arbeitsbereich ändern und es dann einchecken möchten, ohne dass Mergekonflikte gelöst werden müssen. Nur jeweils ein Benutzer kann eine Sperre für eine bestimmte Datei oder einen bestimmten Ordner halten. Wenn Sie den Zugriff auf ein Element dauerhaft blockieren möchten, sollten Sie stattdessen den Befehl Permission verwenden.

Sperrentypen

Azure DevOps bietet zwei Arten von Sperren: Einchecksperren und Auschecksperren.

Einchecksperre

Eine Einchecksperre ist weniger restriktiv als eine Auschecksperre. Wenn Sie eine Einchecksperre anwenden, können Benutzer weiterhin lokale Änderungen am gesperrten Element in anderen Arbeitsbereichen vornehmen. Diese Änderungen können jedoch erst eingecheckt werden, wenn Sie die Sperre durch Ausführen einer der folgenden Aktionen entfernen:

  • Explizites Entfernen der Check-In-Sperre aus dem Element
  • Entfernen Sie die Sperre implizit, indem Sie Ihre Änderungen an der Datei einchecken.

Auschecksperre

In Azure DevOps sind Auschecksperren aufgrund lokaler Arbeitsbereiche im Allgemeinen nicht wirksam. Weitere Informationen finden Sie unter Entscheiden zwischen einem lokalen oder einem Serverarbeitsbereich. Insbesondere haben Auschecksperren folgende Eigenschaften:

  • Sie sind nicht durchsetzbar, da andere Benutzer lokale Arbeitsbereiche verwenden könnten.
  • Nicht verfügbar, wenn Sie einen lokalen Arbeitsbereich verwenden.
  • Deaktiviert, wenn ein Mitglied der Sicherheitsgruppe Administratoren Ihrer Projektsammlung das asynchrone Auschecken für die Serverarbeitsbereiche Ihres Teams aktiviert hat.

Eine Auschecksperre verhindert, dass Benutzer, die Serverarbeitsbereiche verwenden, das gesperrte Element in ihren Arbeitsbereichen auschecken und Änderungen daran vornehmen. Sie können keine Auschecksperre auf ein Element anwenden, für das ausstehende Änderungen in einem anderen Arbeitsbereich als Ihrem eigenen vorhanden sind.

Funktionsweise des Sperrens

Wenn eine Datei beim Sperren ausgecheckt ist, wird dem zugehörigen Auscheckdatensatz der neue Sperrentyp hinzugefügt. Wenn die Datei nicht ausgecheckt ist, wird dem Satz der ausstehenden Arbeitsbereichsänderungen eine Sperränderung hinzugefügt. checkout Im Gegensatz zum Befehl macht der lock Befehl eine Datei nicht automatisch bearbeitbar.

TFVC entsperrt ein Element automatisch, wenn Sie ausstehende Änderungen in dem Arbeitsbereich einchecken, in dem es gesperrt ist. Sperren werden auch freigegeben, wenn die ausstehenden Änderungen für eine Datei mit dem undo Befehl rückgängig werden.

Sperren für Ordner sind implizit rekursiv. Wenn Sie einen Ordner sperren, müssen Sie die darin enthaltenen Dateien nicht sperren. Eine Ausnahme ist, wenn ein Ordner über eine Einchecksperre verfügt, die weniger restriktiv als eine Auschecksperre ist. Wenn Sie eine Auschecksperre für eine Datei in diesem Ordner verwenden möchten, müssen Sie diese Auschecksperre anwenden.

Nur jeweils ein Benutzer kann eine Sperre für eine bestimmte Datei oder einen bestimmten Ordner halten. Sie können den Befehl Status verwenden, um zu sehen, welche Dateien auf dem Azure DevOps-Server gesperrt sind und wer sie gesperrt hat.

Eine Sperre kann entweder als eigener Vorgang oder als Teil mehrerer anderer Vorgänge platziert werden. Zu diesen Vorgängen gehören rename, checkout, delete, undeletemerge, branch, und add. Wenn Sie ein Element im Rahmen des Hinzufügens zur Quellcodeverwaltung oder Verzweigung sperren, platziert TFVC die Sperre auf dem Serverpfad, in dem das neue Element erstellt wird. Diese Platzierung verhindert, dass ein anderer Benutzer eine Datei am selben Speicherort hinzufügt oder verzweigt. Wenn Sie ein Element mit dem rename Befehl sperren, werden sowohl alte als auch neue Serverpfade gesperrt.

Entsperren eines Elements

Sie können ein Element explizit mithilfe des unlock Befehls oder implizit beim Einchecken entsperren. Wenn Sie ausstehende Änderungen an einem gesperrten Element einchecken, entfernt Azure DevOps alle Sperren.

Hinweis

Standardmäßig wird die Berechtigung UnlockOther nur Administratoren erteilt. Wenn Sie über die Berechtigung UnlockOther verfügen, können Sie eine Sperre aus einem Element im Arbeitsbereich eines anderen Benutzers entfernen, indem Sie den Befehl Sperren verwenden.