The document summarizes the evolution of source control tools over time, from VSS to TFS to git. It notes that early tools like VSS had issues with file locking and merging that led to problems. Later tools tried to improve on isolation and integration of changes, though manual processes were still prone to errors. The document concludes that developers need to fully learn the capabilities of their version control systems and practice with them, in order to have full control over the codebase and protect the business's assets. Source control skills should be as important as coding skills.
This example is of the first place I worked out of college. Team of 4-6 developers.
This example is of the first place I worked out of college. Team of 4-6 developers.
Pretty normal (for many different and valid reasons) to do as part of a dev team
Ummmm….okay
Better yet, some other person has an exclusive check-out on a file under their user name…and you can edit that file….but you can’t check it in.
At some point the friction becomes so high you decide to work offline
Remember, this is saving to where copied to on C:
This is the red-neck merge
You’re packing the big hammer with the copy-pasta. Everybody else’s changes are knocked out by what you did.
One guy took to hard rebooting the SQL server if his debugging results didn’t match what he expected
Many people think of source control as a storage tool….or a backup tool. It’s a tool that enables working in isolation for many reasons. One is to be much more productive.
The paradigm shift was big and many people didn’t get it. They wanted what they had before.
Piss-poor terminology overloading didn’t help matters either.
Aka: We don’t have a clue how we can do those
So we come up with inventive word games
Developers hold changes locally (copy-pasta to a unmanaged folder) as a means to keeping them out of releases.
You’re hired to solve business problems. Hotfixes, new features, etc are all business problems that you need to solve and VCS is one of the tools that help enable that solution
It’s starting to feel like Stockholm syndrome isn’t it?
Branches become developer silos
Everyone starts to merge big changes at the same time
Now everyone thinks that merges are hard
Short lived and merges are easier
There are no surprises from each other’s code
Now imagine a world where you had a v1.5 hotfix, and v1.6 and v1.7 releases.
The folder copy paste in source control drops the history
we decouple from the central server model
gitflow
Not just images….dlls…exes….the /packages folder
Also learn it’s weaknesses so that you can work with or around them as needed
Even if you don’t use git look at the patterns used in gitflow to see if they may help with the way you work