2/27 - Version Control Fundamentals Flashcards

1
Q

Version control is needed for

A
  • Sharing workflow
  • Parallel maintenance
  • Increasing speed of development
  • Connectivity
  • Trust
  • Integrity
  • Transparency
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Classical Version Control: RCS/SCCS

A
  • Multiple version of files could be stored
  • Versions tracked for each file separately
  • Revision numbers automatically assigned
  • You could lock a file to prevent changes
  • Versions were tracked using diffs
  • Current version available the fastest
  • Branching was supported (but wasn’t efficient)
  • Merging was possible
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Cons of RCS/SCCS

A
  • Tracks only one file at a time
  • No way to know if two files are the same
  • Support for adding/deleting files is weak
  • Renaming files would confuse the version control completely
  • Branching and Remerging was confusing and difficult
  • 1 at a time locking mechanism is annoying
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Centralized Version Control

A
  • Single server that contains all the versioned files

* Clients check out/in files from that central place

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Examples of Centralized Version Control

A

CVS, SVN

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Pros of Centralized Version Control

A
  • Everyone knows what everyone else is doing

* Admins have more control

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Cons of Centralized Version Control

A
  • Single point of failure
  • Cannot work offline
  • Slow
  • Does not scale
  • Can’t manage complex trust relationships
  • Easier to lose data
  • Tangled instead of atomic commits
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Distributed Version Control

A
  • Clients fully mirror the repo

* Every clone is a backup of all the data

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Pros of Distributed Version Control

A
  • Fast, works, offline, scales

* Better for collaboration

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Examples of Distributed Version Control

A

Git, Mercurial, Bazaar

How well did you know this?
1
Not at all
2
3
4
5
Perfectly