Dela via


Förstå låstyper

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

Du kan använda kommandot Team Foundation Version Control (TFVC) lock för att tillfälligt förhindra att ändringar görs i en viss fil eller mapp på källkontrollservern. Den här funktionen kan vara till hjälp om du vill ändra ett objekt på arbetsytan och sedan checka in det utan att behöva lösa några sammanslagningskonflikter. Endast en användare i taget kan hålla ett lås på en viss fil eller mapp. Om du vill blockera åtkomsten till ett objekt på ett beständigt sätt bör du använda kommandot Behörighet i stället.

Låstyper

Azure DevOps innehåller två typer av lås: incheckningslås och utcheckningslås.

Incheckningslås

Ett incheckningslås är mindre restriktivt än ett utcheckningslås. När du tillämpar ett incheckningslås kan användarna fortsätta att göra lokala ändringar i det låsta objektet på andra arbetsytor. Men dessa ändringar kan inte checkas in förrän du tar bort låset genom att vidta någon av följande åtgärder:

  • Ta uttryckligen bort incheckningslåset från objektet
  • Ta implicit bort låset genom att checka in ändringarna i filen

Utcheckningslås

I Azure DevOps är utcheckningslås vanligtvis inte effektiva på grund av lokala arbetsytor. Mer information finns i Bestäm mellan att använda en lokal arbetsyta eller en serverarbetsyta. Mer specifikt är utcheckningslås:

  • Det går inte att tillämpa eftersom andra användare kanske använder lokala arbetsytor.
  • Inte tillgängligt om du använder en lokal arbetsyta.
  • Inaktiverad om en medlem i säkerhetsgruppen Administratörer i projektsamlingen har aktiverat asynkron utcheckning för teamets serverarbetsytor.

Ett utcheckningslås hindrar användare som använder serverarbetsytor från att checka ut och göra ändringar i det låsta objektet på sina arbetsytor. Du kan inte tillämpa ett utcheckningslås på ett objekt som väntar på ändringar finns för, på någon annan arbetsyta än din egen.

Så här fungerar låsning

Om en fil checkas ut när du låser den ändras dess utcheckningspost så att den innehåller den nya låstypen. Om filen inte är utcheckad läggs en låsändring till i uppsättningen med väntande ändringar av arbetsytan. checkout Till skillnad från kommandot lock gör kommandot inte automatiskt en fil redigerbar.

TFVC låser upp ett objekt automatiskt när du checkar in väntande ändringar på arbetsytan där det är låst. Lås släpps också om väntande ändringar för en fil ångras med hjälp undo av kommandot .

Lås på mappar är implicit rekursiva. Om du låser en mapp behöver du inte låsa filerna som den innehåller. Ett undantag är när en mapp har ett incheckningslås, vilket är mindre restriktivt än ett utcheckningslås. Om du vill använda ett utcheckningslås på en fil i mappen måste du använda det utcheckningslåset.

Endast en användare i taget kan hålla ett lås på en viss fil eller mapp. Du kan använda kommandot Status för att se vilka filer som är låsta på Azure DevOps-servern och vem som låste dem.

Ett lås kan placeras antingen som en egen åtgärd eller som en del av flera andra åtgärder. Dessa åtgärder omfattar rename, checkout, delete, undelete, merge, branchoch add. När du låser ett objekt som en del av att lägga till källkontroll eller förgrening placerar TFVC låset på den serversökväg där det nya objektet skapas. Den här placeringen hindrar en annan användare från att lägga till eller förgrena en fil till samma plats. När du låser ett objekt med kommandot rename låses både gamla och nya serversökvägar.

Låsa upp ett objekt

Du kan låsa upp ett objekt explicit med hjälp unlock av kommandot eller implicit när du checkar in. När du checkar in väntande ändringar av ett låst objekt tar Azure DevOps bort alla lås.

Kommentar

Som standard beviljas behörigheten UnlockOther endast till administratörer. Om du har behörigheten UnlockOther kan du ta bort ett lås från ett objekt på en annan användares arbetsyta med hjälp av kommandot Lås.