Yesterday I was talking about git submodule support in Visual Studio and that reminded me of something else: Azure DevOps Server got submodule support too. It's a small feature, but a genuinely useful one.
Why do we need this?
If you've worked with submodules before, you know the annoying part isn't adding them, it's navigating them afterwards. In the Files hub, a submodule used to just show up as a folder reference. To actually browse its content, you had to know the submodule's repo, open it separately, and find the right commit yourself.
What changed
Azure DevOps Server now has UI support for Git submodules in the Files hub. You can click straight into a submodule from your project and land exactly on the commit that's referenced there. No more manually tracking down the right repo and commit by hand.
It works across multiple Git services that a submodule can point to:
- Azure Repos
- GitHub
- GitLab
- Bitbucket
Multiple .gitmodules URL formats are supported as well: absolute HTTPS, SSH, and relative URLs.
Remark: this feature originally shipped in Azure DevOps Services (the cloud version) and has now made its way down to Azure DevOps Server, which is the on-prem/self-hosted flavor. It's part of the general pattern where cloud features get backported to Server on a delay, so if you're self-hosting, it's worth checking the release notes periodically for stuff like this that quietly lands.
Putting it into action
Nothing to configure. If your repo already has submodules defined in .gitmodules, just open the Files hub and click into the submodule folder.
You'll be dropped into the submodule repository, pinned to the exact commit your project references.
A small feature, but one less context switch when you're digging through a repo that uses submodules.