Version Control Flashcards
Types of Version Control Systems
Local
Centralized
Distributed
Local database keeps
track of file versions
Local VCS
RCS (Revision Control System) is an example of a
Local VCS
VC systems either keep:
● actual copies of file versions; or
● patch sets, which are the set of additions /subtractions to a file.
A single server contains the file versions
Centralized VCS
Clients check out
individual files/folders
from the central server
Centralized VCS
Advantages of Centralized VCS
Collaboration with others is possible
Easy to administer file permissions
Disadvantage of Centralized VCS
✘ Single point of failure
Concurrent Versions System (CVS), Subversion and Perforce is an example of what kind VCS
Centralized VCS
In this type of VCS, the Machines fully mirror the repository, including the
history of changes
Distributed VCS
Peer-to-peer approach
Distributed VCS
Each peer is a valid
repository
Distributed VCS
TRUE or FALSE:
Distributed VCS addresses the single point failure issue of Centralized VCS
TRUE. Since in Distributed VCS, multiple users can have a copy of the repository
Disadvantage of Distributed VCS
✘ Large repositories may be impractical to mirror (either due to large files, or very long histories)
Give examples of Distributed VCS
Git, Mercurial, Bazaar, Darcs
Advantages of VCS
Backup & Restore
Short-term / Long-term undo
Synchronization
Track Changes
Track Ownership
Branching/Merging
Save all your changes and jump to any
version at any time.
Backup & Restore
No fear of experimental changes, whether short or long term.
Short-term / Long-term undo
Stay up to date with teammates’ work.
Synchronization
Track the development of each file, and
explain why the changes happened.
Track Changes
Find out who made a particular change.
Track Ownership
Make a copy of your code that you can modify in isolation. You can delete, or merge this copy back to the ‘main’ version.
Branching/Merging
Where the files are stored
Repository
Repositories can be ________ or _________
remote, local
Local repos are also called the ________________
working copy
a copy of another repository (all the files, and revision history)
Clone
To record the changes in the VC
history/log, a version or ‘checkpoint’ that you can go back to any time
Commit
The latest commit in the repository
Head
A copy of the code base
Branch
TRUE or FALSE:
Each branch can evolve separately from other branches
TRUE
The stable code is usually found in a ______ branch (in Git this is called _________)
main, master
Different branches can be merged together
Merge
Conflicts must be _________
resolved
When there are two or more conflicting
changes to the same file
Conflict
To get all the latest changes from the remote repo and put them in your local repo
Update/Sync
A distributed version control system, Free and open-source software, Primarily a command line tool, Has 3rd party GUI and add-ons for IDEs
Git
A website/service designed to function with Git (but not other VCS)
Main function: Allows users to create git
repositories on their server
GitHub
Alternatives to GitHub
GitLabs, BitBucket