Download presentation
Presentation is loading. Please wait.
Published byEleanor Wells Modified over 9 years ago
1
1 Brief Introduction to Revision Control Ric Holt
2
2 Revision Control, also known as: Version Control or SCM = Source Control Management Management of changes to documents, programs, and other information stored as computer files. Each changed file (or set of files) is called a version or a revision. These are often numbered, e.g., version 12.6.2. A release is made available to users. http://en.wikipedia.org/wiki/Revision_control
3
3 Software for SCM (Related: CMS: Content Management System) SCCS = Source Code Control System –Obsolete as of 1995 –Predecessor to RCS RCS = Revision Control System –By Walter Tichy, 1980s –Keeps track of evolving versions = revision control –Single user CVS = Concurrent Versions System –By Dick Grune, 1980s –Based on RCS, but multi-user –Subversion = free “better” CVS GIT –By Linus Torvalds, 2005 –Distributed revision control – no central version –All “branches” are complete
4
4 Storing Successive Versions of a File Each change to a file is stored as the “diff” from its previous version Saves space, avoids full copy of each version –Less important now that file space is check
5
5 Delta = Difference Between Files Forward delta = How to change file F to its next version (store file F, compute next versions) Backward delta = How to change file G to its previous (store file G, compute previous versions) File FFile G Backward Delta Forward Delta
6
6 1. using System; 2. using System.Collections.Generic; 3. using System.Text; 4. 5. class Program 6. { 7. static void Main(string[] args) 8. { 9. Console.WriteLine( 10. "Hello World"); 11. // comment 12. } 13. } Kinds of Changes: Add, Delete & Replace Example from http://www.itu.dk/courses/VOP/E2006/6_Slides.pdf 1. using System; 2. using System.Collections.Generic; 3. using System.Text; 4. class Program 5. { 6. static void Main(string[] args) 7. { 8. Console.WriteLine( 9. "Hello Version Control"); 10. // comment 11. Console.ReadLine(); 12. } 13. } delete add replace
7
7 Diff: Unix tool, gives difference between two files. $ diff v1.txt v2.txt 4d3 < 10c9 < "Hello World"); --- > "Hello Version Control"); 11a11 > Console.ReadLine(); Delete (d) line 4 Change (c) line 10 Add (a) line 11
8
8 Master Version & Working (Sandbox) Versions x y z Master Version in Repository x y z Anne’s Version in Her Sandbox x y z Bob’s Version in His Sandbox System consisting of files x, y and z is being developed. Anne and Bob simultaneously change various files, ideally different files.
9
9 Check In, Check Out, etc. x y z Master Copies in Repository x y z Local (Working) Copies in Sandbox Check Out (Lock) Check In (Commit)
10
10 CVS Operations Check out - Lock set of files (get copies) Commit (check in) - Use your checked out copies to update the repository Update - Using central repository, get fresh copies Add - Signal that a local file is to be added to repository (upon commit)
11
11 Branches & Merges A branch is a new stream of development, e.g., Version 8.0 of a data base (new version of V7.0) As bugs are found in V7.0, these need to be merged into V8.0 (and vice versa) Merges can be very tricky and slow to carry out
12
12 Conflicts Ideally, no two people try to update the same file at the same time. If they do, and they changed different parts of the file, the changes are –MERGED If they do, and they have changed the same parts of a file, there is a –CONFLICT Generally conflicts are fixed manually.
13
13 GIT: A Fast Version Control System Invented by Linus Torvalds GIT –Is distributed --- no master copy –Is controversial –Safeguards against corruption –Has fast merges –Scales up –Convenient tools still being built
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.