Does Visual Studio for Mac support Team Foundation Version Control?
Applies to: Visual Studio for Mac Visual Studio
Important
Team Foundation Version Control solutions are no longer supported on macOS. Recommendations made here may no longer work.
Alternative Version Control options in Visual Studio for Mac
For the best version control experience on macOS, we recommend using Git instead of Team Foundation Version Control (TFVC).
Git is supported in Visual Studio for Mac and is the default option for repositories hosted in Team Foundation Server (TFS)/Azure DevOps. To learn more about using Git with TFS/Azure DevOps, see the Setting up a Git Repository guide.
Unsupported workarounds for TFVC
While Visual Studio for Mac doesn't officially support TFVC, the rest of this guide provides a workaround to work with TFVC on macOS. If you're using TFVC for version control today, here is a solution you can use to access your source code hosted in TFVC:
Connecting using the Team Explorer Everywhere Command Line Client
Important
As per the Team Explorer Everywhere README, this project is no longer being maintained.
If you're comfortable using the macOS Terminal, then the Team Explorer Everywhere Command Line Client (TEE-CLC) provides a supported way to connect to your source in TFVC.
You can follow the steps below to set up your connection to TFVC and commit changes.
Setting up the TEE-CLC
There are two ways to get setup with the TEE-CLC.
- Use Homebrew to install the client, or
- Download and manually install the client
The easiest solution is using HomeBrew, which is a package manager for macOS. To install using this method:
- Launch the macOS Terminal application.
- Install Homebrew using the Terminal and the instructions on the Homebrew home page.
- Once Homebrew is installed, run the following command from your Terminal:
brew install tee-clc
To setup the TEE-CLC manually:
- Download the latest version of the tee-clc from the releases page of the Team Explorer Everywhere GitHub repo (e.g. tee-clc-14.134.0.zip at the time of this writing).
- Extract the content of the .zip to a folder on disk.
- Open the macOS Terminal app and use the
cd
command to switch to the folder you used in the previous step. - From within the folder, run the command
./tf
to test that the command line client can run, you may be prompted to install Java or other dependencies.
Once the TEE-CLC is installed, you can run the command tf eula
to view and accept the license agreement for the client.
Finally, to authenticate with your TFS/Azure DevOps environment, you'll need to create a personal access token on the server. Learn more about authenticating with personal access tokens. When creating a personal access token to use with TFVC, be sure to provide Full Access when configuring the token.
Using the TEE-CLC to connect to your repo
To connect to your source code, you first need to create a workspace using the tf workspace
command. For example, the following commands connect to an Organization in Azure DevOps Services called "MyOrganization":
export TF_AUTO_SAVE_CREDENTIALS=1
tf workspace -new MyWorkspace -collection:https://dev.azure.com/MyOrganization
The TF_AUTO_SAVE_CREDENTIALS
environment setting is used to save your credentials so you aren't prompted to enter them multiple times. When prompted for a user name, use the personal access token you created in the previous section and use a blank password.
To create a mapping of your source files to a local folder, you'll use the tf workfold
command. The following example will map a folder named "WebApp.Services" from the "MyRepository" TFVC project and set it up to be copied into the local ~/Projects/ folder (i.e. a "Projects" folder in the current users's home folder).
tf workfold -map $/MyRepository/WebApp.Services -workspace:MyWorkspace ~/Projects/
Finally, you use the following command to get the source files from the server and copy them locally:
tf get
Committing changes using the TEE-CLC
After you've made changes to your files in Visual Studio for Mac, you can switch back to the Terminal to check in your edits. The tf add
command is used to add files to the list of pending changes to be checked-in and the tf checkin
command performs the actual check-in to the server. The checkin
command includes parameters to add a comment or associate a related work item. In the following code snippet, all files in a WebApp.Services
folder are added, recursively, to the checkin. Then, the code is checked in with a comment and associated with a work item with the ID "42".
cd WebApp.Services
tf add * /recursive
tf checkin -comment:"Replaced 'Northwand' typos with the correct word Northwind" -associate:42
To learn more about the commands mentioned here, or others, you can use the following command from the Terminal:
tf help