About Version Control
Last updated
Last updated
MIT Resources
https://accessibility.mit.eduMassachusetts Institute of Technology
A version control system is a tool that keeps track of changes for us.
It effectively creating different versions of our files.
It allows us to decide which changes will be made to the next version (each record of these changes is called a commit.
It keeps useful metadata about them.
The complete history of commits for a particular project and their metadata make up a repository.
Repositories can be kept in sync across different computers, facilitating collaboration among different people.
Automated version control systems are nothing new. Tools like RCS, CVS, or Subversion have been around since the early 1980s and are used by many large companies. However, many of these are now considered legacy systems (i.e., outdated) due to various limitations in their capabilities. More modern systems, such as Git and Mercurial, are distributed, meaning that they do not need a centralized server to host the repository. These modern systems also include powerful merging tools that make it possible for multiple authors to work on the same files concurrently.
We make changes to files, and there are different versions of documents to keep. it seems unnecessary to have multiple nearly-identical versions of the same document.
Version control systems start with a base version of the document and then record changes we make each step of the way. We can think of it as a recording of our progress: We can rewind to start at the base document and play back each change we made, eventually arriving at our more recent version.
Once you think of changes as separate from the document itself, you can then think about “playing back” different sets of changes on the base document, ultimately resulting in different versions of that document. For example, two users can make independent sets of changes on the same document.
Unless multiple users make changes to the same section of the document - a conflict - you can incorporate two sets of changes into the same base document.
An Example: Paper Writing
Imagine you drafted an excellent paragraph for a paper you are writing, but later ruined it. How would you retrieve the excellent version of your conclusion? Is it even possible?
Imagine you have 5 co-authors. How would you manage the changes and comments they make to your paper? If you use LibreOffice Writer or Microsoft Word, what happens if you accept changes made using the Track Changes option? Do you have a history of those changes?