Ivica Crnkovic Mälardalen University Department of Computer Engineering ivica.crnkovic@mdh.se Page 1, 3/5/2001 Software Configuration Management SCM - takes care about development components and products A SCM includes the following disciplines Version Management Change Management Configuration and Build Management Release Management Work Space Management Page 2, 3/5/2001 WinSDE Course, Part 1 1
Version Management Document A Version 0 Version 1 Version 2 Version 1 revision 1 Page 3, 3/5/2001 Change Management CR CR CR Problem Report Change Requests Modified product Modified items Page 4, 3/5/2001 WinSDE Course, Part 1 2
Configuration and Build Management Item A Ver 0 Ver 1 Ver 2 Ver3 Item B Ver 0 Ver 1 Item C Ver 0 Ver 1 Ver 2 Build/make Products Page 5, 3/5/2001 Release Management Ver 1 Doc Products Page 6, 3/5/2001 WinSDE Course, Part 1 3
Work Space Management!? Project Login Project Structures Data Repositories etc. Page 7, 3/5/2001 Version Management Some tools RCS commands (Revision Control System) Managing file versions CVS Commands Managing structures Line Commands Page 8, 3/5/2001 WinSDE Course, Part 1 4
Versioned Files Versioned Files - include several versions of a file Placed in a RCS library (directory) Check In Check Out File.txt RCS File.txt,v File.txt File.txt File.txt Version File.txt 1.1 1.1 Page 9, 3/5/2001 Versioned File File.txt,v Symbolic Names config1 config2 config3 config4 1.1 1.2 1.3 1.4 Unchanged Rel Exp Stable Main Branch States 1.2.1.1 1.2.1.1 Branch Stable Exp Page 10, 3/5/2001 WinSDE Course, Part 1 5
Versioned Files Version Attributes: Version Number Author Creation Date Log Message State - one state per version Symbolic Name(s)- unique names within a versioned file Page 11, 3/5/2001 RCS Keywords It is possible to define some keywords in the files They give information about versioned files They are automatically updated by RCS $Id$ - version number, date, author, state $Log$ - A log message $Author$ $Date$ etc. Page 12, 3/5/2001 WinSDE Course, Part 1 6
File header example // FILE lscom // // $Id$ // // HISTORY: // $Log$ AFTER first checkin/checkout ci lscom // FILE lscom // // $Id: lscom,v 1.1 2001/02/03 13:28:18 icc Exp $ // // HISTORY: // $Log: lsver,v $ // Revision 1.1 2001 /02/03 13:28:18 icc // Initial revision Page 13, 3/5/2001 File header example after second checkin/checkout ci lscom Added l option. // FILE lscom // // $Id: lscom,v 1.2 2001/02/04 12:08:27 icc Exp $ // // HISTORY: // $Log: lsver,v $ // Revision 1.2 2001/02/04 12:08:27 icc // Added l option // // Revision 1.1 2001 /02/03 13:28:18 icc // Initial revision Page 14, 3/5/2001 WinSDE Course, Part 1 7
RCS Commands ci - check in a file version co - check out a file version rlog - get information about RCS files rcs - a general purpose command rcsdiff - show differences between two versions rcsmerge - merge two versions rcsclean - remove working file versions ident - show RCS keywords in files Page 15, 3/5/2001 CVS Based on RCS Manages structures instead of files MODULES, Folders, Files User A C:\project Folder A Folder B CSV-root Folder C Folder D Folder A Folder B User B C:\project Local Work Area Folder A Folder B Folder C Folder D Folder C Folder D Page 16, 3/5/2001 WinSDE Course, Part 1 8
CVS CSVROOT checkout Folder A Folder B User A Folder C Folder D C:\project Commit Folder A Folder B Folder C Folder D Page 17, 3/5/2001 Developers coordinations How to manage paralel development? User A Edit File X File X User B Two possibilities: Reserved checkout model Unreserved checkout model Page 18, 3/5/2001 WinSDE Course, Part 1 9
Reserved Checkout Model serialising activities 1.1 L 1.2 L 1.3 User A User B Page 19, 3/5/2001 Reserved Checkout Model parallel work L 1.1.1.1 1.1.1.2 1.1 1.2 1.3 L L Merge w w Page 20, 3/5/2001 WinSDE Course, Part 1 10
Unreserved Checkout Model parallel work w w Merge 1.1 1.2 1.3 w w Page 21, 3/5/2001 Change Management Page 22, 3/5/2001 WinSDE Course, Part 1 11
Change management Managing logical (functional) changes instead of physical (items) changes Different names and slightly different principles Change sets Change requests Tasks Etc. Page 23, 3/5/2001 Change sets New items combined from previous basleine and defined changes Baseline R BugFix B Funct X R + B FileA A- bugfix B A- funct X FileA FileB FileB B- funct X FileC C- bugfix B FileC Page 24, 3/5/2001 WinSDE Course, Part 1 12
Change sets generating non-existing versions Baseline R BugFix B Funct X R + B + X FileA A- bugfix B A- funct X FileA FileB FileC C- bugfix B B- funct X FileB FileC Page 25, 3/5/2001 Change Requests Concept: All functional changes are registered. Physical changes made in files are connected to functional changes. Change Request - a document that describes a functional change and lists the files that have been changed Page 26, 3/5/2001 WinSDE Course, Part 1 13
Change Request Support Specify what changes should be made. Register changes that are made. Follow the status of the project - what has been done, what is requested to be changed. Check if some changes have been done in a project, that are not registered. Produce a document about changes made in a product. Page 27, 3/5/2001 Processing Change Requests Check Out Create CR CRs Files Modify Files Update CRs Check In Product Release Release doc Files Page 28, 3/5/2001 WinSDE Course, Part 1 14
Change Request Format Name Version State Owner Title Priority: Low [Medium, High] Reason: Error [Improvement, New Function] Function: function File: filename version version... File: filename version version... Description: description text... filename version log message filename version log message Page 29, 3/5/2001 CR states - controlling the development process Create a CR Init Init Initiate Project Resting Experimental Implemented Modify files (check out/in) Changes completed Tested Changes tested Approve Changes Terminated Release Software Released Page 30, 3/5/2001 WinSDE Course, Part 1 15