Permission command (Team Foundation Version Control)

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

Visual Studio 2019 | Visual Studio 2022

The tf permission command modifies the user access control list (ACL) and displays authorization settings for an item in Team Foundation Version Control (TFVC).

Prerequisites

To use the permission command, you must have the Manipulate security settings permission set to Allow for the folders being modified, be a member of the Azure DevOps Administrators security group, or be a system administrator on the local computer (Windows Administrator security group). For more information, see Default TFVC permissions.

Syntax

tf permission [/allow:(* |perm1[,perm2,...]] 
[/deny:(* |perm1[,perm2,...])] [/remove:(* |perm1[,perm2,...])] 
[/inherit:yes|no] [/user:username1[,username2,...]] 
[/group:groupname1[,groupname2,...]] [/collection:TeamProjectCollectionUrl] 
[/recursive] itemspec [/global][/login:username,[password]]

Parameters

Arguments

Argument

Description

<permission>

Name of a permission or role to modify. For more information about the permission names, see Security groups, service accounts, and permissions in Azure DevOps.

<username>

Value for the /user option. A user name value can be expressed as DOMAIN\username or username, depending on network settings.

<groupname>

The user-provided value for the /group option.

<TeamProjectCollectionUrl>

The URL of the project collection that contains the item for which to modify permissions, for example http://myserver:8080/tfs/DefaultCollection.

<itemspec>

The file or folder for which to modify permissions. For more information about how TFVC parses an itemspec to determine which items are within scope, see Use Team Foundation version control commands.

Note

You can specify more than one itemspec argument.

<username>

Provides a value to the /login option. You can specify a user name value as either DOMAIN\username or username.

Options

Option

Description

/allow

Specifies a list of TFVC permissions to add to the allow ACL.

/deny

Specifies a list of denied TFVC access permissions to add to the user ACL.

/remove

Specifies a list of TFVC permissions to remove from both the allow and the deny ACLs.

/inherit

If yes, the item inherits all permissions associated with a parent ACL. Can't combine with the /remove option.

/user

Specifies the name of a user to modify permissions for.

/group

Specifies the name of the group to modify permissions for.

/collection

Specifies the project collection.

/recursive

Applies the specified command to all items in the directory and any subdirectories.

The /recursive option works only when viewing permissions. It doesn't work when setting permissions, for example with the /allow, /deny, or /remove options.

/global

Views or assigns a TFVC collection-level permission. To assign permissions, use the /allow, /deny, or /remove options. The argument itemspec isn't required. If listed, it's ignored.

When used to view a TFVC collection, lists the following five permissions:

  • tf: AdminShelvesets
  • tf: AdminWorkspaces
  • tf: CreateWorkspace
  • tf: AdminConfiguration
  • tf: AdminConnections

For more information, see Collection-level groups.

/login

Specifies the user name and password to authenticate the user with Azure DevOps.

Remarks

You can use the permission command or its shortcut perm to manage authorization settings for TFVC server objects. However, this command doesn't let you manage authentication settings such as creating or modifying Azure DevOps security groups.

For more information on how to use the tf command-line utility, see Use Team Foundation version control commands.

Examples

The following example displays the TFVC ACLs for 314.cs:

c:\projects>tf permission 314.cs

The following example displays the ACL information for the developers group in the collection at http://myserver:8080/tfs/DefaultCollection/:

c:\projects>tf permission /group:[teamproject]\developers /collection: http://myserver:8080/tfs/DefaultCollection/

The following example allows members of the leads group to change their local copies of all items in the $/baseobjects TFVC server folder:

c:\projects>tf permission /allow:PendChange /group:[teamproject]\leads $/baseobjects

The following example removes all permission-related settings from the $/baseobjects folder for members of the developers group:

c:\projects>tf permission /remove:* /group:developers $/baseobjects

The following example allows the testers group to change their local copies of all items in $/testproject:

c:\projects>tf permission /allow:PendChange /group:testers$/testproject

The following example allows user somealias to make pending changes to their local copy of $/testproject/314.cs in their workspace:

c:\projects>tf permission /allow:PendChange /user:somealias $/testproject/314.cs.

The following example denies user somealias the ability to make pending changes to their local copy of $/testproject/1256.cs:

c:\projects>tf permission /deny:PendChange /user:somealias $/testproject/1256.cs