DevOps Classroom Series – 15/Sept/2020

Basic Images

Preview Preview Preview

Version Control Systems

  • Developers cannot work in Isolation, The code developed by one developer will be used by other Developers Preview
  • Now lets explore some options to implement this
    • Network File Share:
      1. Can two people access the file simultaneously and make changes?
      2. Versioning for files is not supported directly Preview
  • To resolve these issue A Version Control System was created. Version Control System should have versions of changes made.
  • During the course of 40 years, we have 3 major generations of version control systems

Generation-1 Version Control System

  • Examples: RCS, SCCS
  • Networking: Not supported
  • Operations: One file at time
  • Concurrency: Locks

Generation-2 Version Control Systems (Centralized)

  • Examples: CVS, Visual Source Safe, Clear Case, Subversion etc..
  • Networking: Centralized
  • Operations: Multi-file
  • Concurrency: yes
  • In Generation we have two major models
    • Clients should always be connected to servers
    • Clients can work offline and connect to server before submitting changes Preview
  • All the code gets stored and versioned on the server.
  • As the sites increase the administrative efforts increase and admins need to set up Disaster Recovery and Backups. Maintain sync between sites (VCS-Server) Preview

Generation-3: Version Control Systems (Distributed)

  • Examples: Git, Mercurial
  • Operations: Changesets (Multi files)
  • Network: Distributed Preview
  • GIT (global information tracker) was built by linus torvalds and he implemented a simple, clean distributed vcs. Preview

Version Control System:

  • This is a system that records changes to files, maintains history which we call as versions or revisions and It will help multiple users to connect to it & create, update, retrieve and delete the changes

Git:

  • Git is a open-source and free software Refer Here.
  • In Git We have two major use cases
    • Client Software:
      • Git
      • GitBash
      • Source Tree
      • Tortoise Git
      • Git has extensions in almost all IDEs.
    • Server features on Git (Connectivity to clients, User Management)
      • Gitolite (On-premise)
      • GitHub
      • GitLab
      • BitBucket
      • CodeCommit
      • Azure Source Repo’s

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.

About learningthoughtsadmin