What is source control... and why?
Software development is a “human-intensive” discipline, meaning that it depends heavily on the creativity and involvement of the developer and their know-how. It is common to try different approaches to the same situation and write and rewrite code. Even the process of refactoring after testing implies making changes in the code. It is not an anomaly that during this process, we need to “go back” to a previous code when a change or approach didn’t meet expectations. If we are constantly overwriting the same files... how do we keep track of what changed where? And by whom? Our own memory is not enough when time and complexity grow. Save files with different names? That would become impractical very soon. And what about combining source code from multiple developers? We can quickly see that managing the source code for non-trivial projects is a very important task in itself.
The historical solution to this early...