I have been observing some very odd behavior with our Azure Devops Server 2019 server. Occasionally fetches pull down vastly more data than necessary to complete a fetch. This usually happens around large merges, however yesterday it happened with a relatively simple one.
I had two branches which were diverged by about a dozen commits. I had both branches fully checked out on my machine. I used a pull request to merge them together. Upon doing a fetch from my machine after the pull request completed, it required pulling down 28,000 files and 2GB of information and took an exceedingly long time to pull.
Any ideas why this would happen? The merge did not have any conflicts, only one side of the merge had changes since the last merge. (An ours merge indicating that a set of environmental configuration changes from the branch being merged in were irrelevant.) All the commits aside from the clean merge commit were already on my machine and checked out. This should have been a very simple operation, not require resending an appreciable portion of my repository.