I write about what I'm actually living: this time it's finally admitting that Team Foundation Server had to go. It wasn't one big failure — it was a slow accumulation of friction that made every merge feel heavier than it needed to be.
Migrating Team Foundation Server, the hard way, taught me most of what I now consider baseline hygiene for any version control setup: clean history matters, branching strategy matters more than the tool enforcing it, and no amount of tooling fixes a workflow nobody agreed on.
The tool was never really the problem. The problem was that we'd never actually agreed on how we wanted to work — TFS just made the disagreement expensive.
What actually changed
Git GUI: changing your remote origin was step one — a small, almost mechanical task that ended up being the easiest part of the whole move. The harder part was retraining habits: fewer long-lived branches, smaller commits, trusting the history instead of a shared server state.
None of this is really about TFS versus Git specifically. It's about noticing when a tool is quietly taxing you every day, and deciding that's worth fixing even when nothing is technically broken.
If you're on the fence about a migration like this, my honest take: do it when you have a quiet week, not when you're mid-deadline. The mechanics are simple. The habit change is the actual work.

