So first of all, what is a version control system? A version control system or VCS, is a system that allows you to manage multiple revisions of the same unit of information. For example of documents, of source files or any other item of that sort. And as the graphical depiction shows, a VCS allows a multiple actors. Here we have four, to cooperate and share files. Now, let’s drill into this concept in a little more detail. And let’s do that by discussing why is VCS useful, especially in the context of software engineering and of software development. So first of all, using a version control system enforces discipline, because it manages the process by which the control of items passes from one person to another. Another important aspect of VCS is that it allows you for archiving versions. So you can store subsequent versions of source controlled items into a VCS. And not only you can store versions, you can also maintain a lot of interesting and important historical information about these versions. For example, a VCL will store information such as, who is the author for this specific version stored in the system. Or, for another example, on what day and what time that version was stored. And a lot of other interesting information about the specific version of the item. Information that you can then retrieve and for example, use to compare versions. Obviously, the fact of having a central repository in which all these items are stored enables collaboration, so people can more easily share data, share files, share documents through the use of VCS. And I’m sure that you all had the experience of deleting a file by mistake or modifying a file in the wrong way, or in the most common case of changing something in your code for instance. And breaking something and not being able to go back to a version that was working. Not remembering, for example, what is that you changed that broke the code. In all these cases a version control system can be extremely useful because it will allow you to recover from this accidental deletions or edits. And for example, to go back of yesterdays version that was working perfectly, and also to compare, for example, yesterdays version with today version and see what is that you changed. Finally, a version control system will normally also allow you to conserve and save disk space on both the source control client and on the server. Why? Well, for instance because it’s centralizing the management of the version. So instead of having many copies spread around, you’ll have only one central point where these copies are stored or a few points where these copies are stored. In addition, version control system often uses efficient algorithms to store these changes. And therefore, you can keep many versions without taking up too much space.