We have a long history spread across several different (generations of) SCMs. I see each of the following quite often:
Most recent revisions (version A, code comments date code to the 90s):
- 2011-02-03: Migrate to git
- 2008-01-12: Migrate to SVN
- ~Fin~
Most recent revisions (version B):
- 2018-12-12: Split <X> out into own file
- ~Fin~
Most recent revisions (version C, sweet monorepo blogpost edition):
- 2019-10-01: Create monorepo for <Team/Superteam/Division>
- ~Fin~
---
It's hard to do transitions between SCMs (or between repos) right. For instance, when you follow the recommended steps for moving to a monorepo in git, the history is maintained but not shown in GitHub. It's so easy for well meaning people to destroy history or make it inaccessible for practical purposes when cleaning up dead code, reorganizing code, etc. Even if the history is still maintained (e.g. if there was a file rename in the same repository, you could use git log --follow, if you're trying to find when a particular snippet first came into existence, you can use git log -S<snippet>) but practically as soon as I run into one of the above, that's the end of the line.