Presentation is loading. Please wait.

Presentation is loading. Please wait.

Introduction to Version Control SE-2030 Dr. Rob Hasker 1 Based on material at and slides written.

Similar presentations


Presentation on theme: "Introduction to Version Control SE-2030 Dr. Rob Hasker 1 Based on material at and slides written."— Presentation transcript:

1 Introduction to Version Control SE-2030 Dr. Rob Hasker 1 Based on material at http://svnbook.red-bean.com/http://svnbook.red-bean.com/ and slides written by Dr. Mark L. Hornick

2 2 The stages of developing a software application Requirements Analysis High-level Design [Plan] Low-level Design Implementation [Unit Test] Integration System Test Deploy Maintain

3 In many cases, multiple projects run concurrently New features are typically being added to the next version While at the same time, defects need to be corrected in existing releases SE-2030 Dr. Rob Hasker 3

4 On a single project, a team of software engineers work together toward a release All team members work on the same code and develop their respective parts An engineer may be responsible for anything from a whole subsystem to a few methods within a particular class SE-2030 Dr. Rob Hasker 4

5 Files have to be shared among developers on a team project Shared files can be kept in some type of Repository where they can be accessed and worked on by multiple individuals SE-2030 Dr. Rob Hasker 5 Image: http://svnbook.red-bean.com/ Harry and Sally get their own respective Working Copies of the Master File in the Repository

6 This can lead to big problems… SE-2030 Dr. Rob Hasker 6 Image: http://svnbook.red-bean.com/ Adds some methodModifies some other method

7 The problem to avoid: SE-2030 Dr. Rob Hasker Image: http://svnbook.red-bean.com/ Harry’s changes are still held locally…

8 Harry’s changes are lost SE-2030 Dr. Rob Hasker Image: http://svnbook.red-bean.com/ ‘’

9 Your SVN repository URL: https://emerald.msoe.edu/svn/se2030-smithj SE-2030 Dr. Rob Hasker 9

10 The Lock-Modify-Unlock solution SE-2030 Dr. Rob Hasker Image: http://svnbook.red-bean.com/ Sally must wait until Harry releases the lock Microsoft Visual SourceSafe follows this model

11 Lock-Modify-Unlock only allows a single user to edit the file at a time SE-2030 Dr. Rob Hasker Image: http://svnbook.red-bean.com/

12 Lock-Modify-Unlock has its own drawbacks: Harry has to remember to release his lock before Sally (or anyone else) can acquire the lock in order to edit Sally has to wait for Harry to finish before editing… Harry might be adding some new methods Sally just wants to add a few comments to an existing method SE-2030 Dr. Rob Hasker 12

13 The Copy-Modify-Merge Solution SE-2030 Dr. Rob Hasker 13 Image: http://svnbook.red-bean.com/

14 The Repository recognizes conflicts SE-2030 Dr. Rob Hasker 14 Image: http://svnbook.red-bean.com/ Harry is prevented from writing

15 The Repository allows versions of the file to be compared for differences SE-2030 Dr. Rob Hasker 15 Image: http://svnbook.red-bean.com/

16 The Repository keeps both users synchronized SE-2030 Dr. Rob Hasker 16 Image: http://svnbook.red-bean.com/

17 Copy-Modify-Merge is actually very easy to use and manage Users can work in parallel Most of the time, concurrent changes don’t overlap People generally don’t edit exactly the same code simultaneously Amount of time spent resolving conflicts is nearly always less than the time that would be spent waiting for a lock to be released SE-2030 Dr. Rob Hasker 17

18 Is Lock-Modify-Unlock ever needed? When two or more people need to work on the same file, the simultaneous changes may not be mergable in all cases: MS Word documents Image documents EA design documents SE-2030 Dr. Rob Hasker 18

19 The Repository can also manage and track differences between parallel revisions of a document Typically, a software product will undergo revisions (2.0, 2.1, 3.0) while the original version continues to be maintained SE-2030 Dr. Rob Hasker 19 Image: http://svnbook.red-bean.com/

20 Subversion is an open-source version control system that is available for many platforms Windows Mac Linux Many current open-source projects (like Eclipse) use Subversion to maintain source code control http://subversion.tigris.org/ SE-2030 Dr. Rob Hasker 20

21 Subversion in SE2030 The Subversion Repository for SE2030 is installed on emerald.msoe.edu – a Linux server accessible via the MSOE network In order to access the Repository, you need a Subversion Client that can read and write files to and from the Repository on the server SE-2030 Dr. Rob Hasker 21

22 The TortoiseSVN Subversion Client TortoiseSVN is a SourceForge open-source client application for the Windows platform There are similar client applications for Mac and Linux Mac - http://scplugin.tigris.org/http://scplugin.tigris.org/ Linux (KDE) - http://kdesvn.alwins-world.de/http://kdesvn.alwins-world.de/ Wikipedia comparison of various clients is at http://en.wikipedia.org/wiki/Comparison_of_Subv ersion_clients http://en.wikipedia.org/wiki/Comparison_of_Subv ersion_clients SE-2030 Dr. Rob Hasker 22 For more info, see http://tortoisesvn.net/

23 Homework Install TortoiseSVN on your PC – needed for lab this week http://emerald.msoe.edu/resources/doku.php?id= courses:se-2030:installing_tortoisesvn Read more about Version Control http://emerald.msoe.edu/resources/doku.php?id= courses:se-2030:version_control SE-2030 Dr. Rob Hasker 23 Links are also on course web page


Download ppt "Introduction to Version Control SE-2030 Dr. Rob Hasker 1 Based on material at and slides written."

Similar presentations


Ads by Google