Verstehen von Sperrtypen

Azure DevOps Services | Azure DevOps Server 2022 | Azure DevOps Server 2019

Sie können den lock-Befehl der Team Foundation-Versionskontrolle (TFVC) verwenden, um vorübergehend zu verhindern, dass Änderungen an einer bestimmten Datei oder einem Ordner auf dem Server der Versionskontrolle vorgenommen werden. Diese Funktion kann hilfreich sein, wenn Sie ein Element im Arbeitsbereich ändern und anschließend einchecken möchten, ohne ggf. Mergekonflikte auflösen zu müssen. Eine bestimmte Datei oder ein bestimmter Ordner kann jeweils nur von einem einzigen Benutzer gesperrt werden. Wenn Sie den Zugriff auf ein Element dauerhaft sperren möchten, sollten Sie stattdessen den Permission-Befehl 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 an dem gesperrten Element in anderen Arbeitsbereichen vornehmen. Diese Änderungen können jedoch erst eingecheckt werden, wenn Sie die Sperre entfernen, indem Sie eine der folgenden Aktionen durchführen:

  • Entfernen Sie explizit die Einchecksperre von 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 der Verwendung eines lokalen und eines Serverarbeitsbereichs. Insbesondere haben Auschecksperren folgende Eigenschaften:

  • Sie sind nicht durchsetzbar, da andere Benutzer lokale Arbeitsbereiche verwenden könnten.
  • Sie sind nicht verfügbar, wenn Sie einen lokalen Arbeitsbereich verwenden.
  • Sie sind deaktiviert, wenn ein Mitglied der Sicherheitsgruppe „Administratoren“ der Projektsammlung asynchrones Auschecken für Serverarbeitsbereiche des Teams aktiviert hat.

Eine Auschecksperre verhindert, dass Benutzer, die Serverarbeitsbereiche verwenden, das gesperrte Element in ihren Arbeitsbereichen auschecken und ändern können. Sie können eine Auschecksperre nicht auf ein Element anwenden, für das ausstehende Änderungen in einem anderen Arbeitsbereich als Ihrem eigenen existieren.

Funktionsweise von Sperren

Wenn eine Datei beim Sperren ausgecheckt ist, wird dem zugehörigen Auscheckdatensatz der neue Sperrentyp hinzugefügt. Wenn die Datei nicht ausgecheckt ist, wird eine Sperränderung zur Gruppe der ausstehenden Änderungen im Arbeitsbereich hinzugefügt. Anders als der checkout-Befehl sorgt der lock-Befehl nicht dafür, dass eine Datei automatisch bearbeitbar ist.

In TFVC wird ein Element automatisch entsperrt, wenn Sie ausstehende Änderungen in den Arbeitsbereich einchecken, in dem es gesperrt ist. Sperren werden auch aufgehoben, wenn die ausstehenden Änderungen einer Datei mit dem undo-Befehl rückgängig gemacht werden.

Sperren für Ordner sind implizit rekursiv. Wenn Sie einen Ordner sperren, müssen Sie die darin enthaltenen Dateien nicht sperren. Eine Ausnahme besteht darin, dass 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.

Eine bestimmte Datei oder ein bestimmter Ordner kann jeweils nur von einem einzigen Benutzer gesperrt werden. Sie können den Status-Befehl verwenden, um zu prüfen, welche Dateien auf dem Azure DevOps-Server gesperrt sind und von wem sie gesperrt wurden.

Eine Sperre kann entweder als eigener Vorgang oder als Teil mehrerer anderer Vorgänge platziert werden. Diese Vorgänge umfassen rename, checkout, delete, undelete, merge, branch und add. Wenn Sie ein Element beim Hinzufügen zur Versionskontrolle oder beim Branchen sperren, legt TFVC die Sperre auf den Serverpfad fest, in dem das neue Element erstellt wird. Diese Platzierung verhindert, dass ein anderer Benutzer eine Datei zu demselben Speicherort hinzufügt oder brancht. Wenn Sie ein Element mithilfe des rename-Befehls sperren, werden sowohl der alte als auch der neue Serverpfad 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

Die Berechtigung UnlockOther wird standardmäßig nur für Administratoren gewährt. Wenn Sie über die Berechtigung UnlockOther verfügen, können Sie mithilfe des Lock-Befehls eine Sperre von einem Element im Arbeitsbereich eines anderen Benutzers entfernen.