1 / 61

Information Management

Information Management. DIG 3563 Source and Version Control Systems: Lecture 16 J. Michael Moshell University of Central Florida. Original image* by Moshell et al. SCM: Software Configuration Management Source-Code Configuration Management Revision Control. Version Control . . .

trudy
Download Presentation

Information Management

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Information Management DIG 3563 Source and Version Control Systems: Lecture 16 J. Michael Moshell University of Central Florida Original image* by Moshell et al .

  2. SCM: Software Configuration Management Source-Code Configuration Management Revision Control. Version Control . . . All these are names for an essential process in software development: www.wikipedia.org - GNU FDL

  3. SCM: Software Configuration Management • Configuration control • Controlling the release of successive versions of a product. • Build Management • Managing the process and tools used for 'builds' – • combining many complex pieces into a product • Defect tracking • Bugs identified, managed, fixed, archived

  4. SCM: Software Configuration Management Many of the ideas and tools for SCM were co-evolved with the UNIX operating system. Some history thereof would be useful. So ....

  5. A short history of Unix, RCS, CVS, SVN • Unix: An Operating System (for word processing!) 1969 • - Concurrently developed with the C programming lang. • Reimplemented by U. California Berkeley • for the VAX computer (Digital Equipment Corp.) • (BSD= • "Berkeley • Standard • Distribution") wikipedia.org

  6. A short history of Unix, RCS, CVS, SVN Unix: Open source? Well, sorta. AT&T gave away licenses to universities, sold them to commercial firms. Unlike many other systems, you got the source code. Many people improved it, published add-ons: - editors - compilers - database management systems

  7. A short history of Unix, RCS, CVS, SVN • Unix: Why build it? (This was 20 years before PCs.) • It was, in effect, a time shared • content management system! • file management • spelling checking • layout programs (typesetting) runoff, nroff • There were no laser printers; output to • optical typesetters

  8. A short history of Unix, RCS, CVS, SVN Unix and the Internet TCP/IP was added to the Unix Kernel in BSD version. Computer networks grew out of Unix

  9. A short history of Unix, RCS, CVS, SVN Unix and the Internet TCP/IP was added to the Unix Kernel in BSD version. Computer networks grew out of Unix The Unix Wars. Sun Solaris ... System V (AT&T) ... U. S. government established the POSIX standard, 1988

  10. UNIX family tree: Green: open source Brown: Mixed Pink: Closed

  11. Linux: Recoded from scratch

  12. Mac OS X: Tenth Generation Unix Descendant -12 -

  13. A short history of Unix, RCS, CVS, SVN Lawsuits over "Who owns UNIX" .. got messy. 1992: Linus Torvald released Linux, a reimplementation of the Unix Kernel, free to the world. The Gnu General Public License: You can copy and modify the software but you must grant the same privilege to others, and distribute the source code. ('copyleft' protection)

  14. A short history of Unix, RCS, CVS, SVN RCS: Single-file version control, early 1980's led to ... CVS: Concurrent Versioning System, late 80's (multiple files in file hierarchy) led to ... Subversion (2000) – re-thought, re-implemented Following images are from the "SVN-book.pdf", an open source reference work for Subversion. Available at http://svnbook.red-bean.com/

  15. What's Wrong with Locking? • * Administrative problems: • Harry locks a file and forgets about it, goes vacation. • Sally has to get an administrator to unlock it. • Harry doesn't know about it, version conflict comes. • * Unnecessary serialization. • Harry needs to fix the front part of a file, • Sally needs to fix the back part of it. • They SHOULD be able to merge their work.

  16. What's Wrong with Locking? • * False sense of security • If two files A and B have mutual dependencies, • Harry locks A and works on it • Sally locks B and works on it • The results don't work together. • NET EFFECT: Locking doesn't promote teamwork. • It can become a substitute for real communication.

  17. The Copy-Modify-Merge Solution

  18. But sometimes, Locking is the Way to Go Binary files (e. g. TIFF) cannot easily be merged like text files (programs, html) can be. So you need to serialize the work, or risk badly clobbering your team's previous efforts. In this case, SVN supports a locking checkout. -21 -

  19. So what's the SCM to do? • Keep track of what you have done • Support roll-back to previous versions if necessary • Support the merging process • *** by remembering each change, and recording • special "commit notes" that you write, to • document what you did. • We look at a few things that Subversion does.

  20. SUBVERSION (SVN) - Concepts • The Virtual filesystem • - A set of files in the repository that correspond • to the ones in your working copy directory. • - Key operations: • * checkout – get a copy of a file from the repository • * commit – put your work into the repository • * branch – produce your own version of a file • * merge – unify two branches

  21. SUBVERSION (SVN) - Concepts A 'tag' is a snapshot of the repository (Like a 'branch' for historical purposes)

  22. Subversion Concepts • The Repository is normally REMOTE (not on your PC) • That's because it's SHARED -25 -

  23. Subversion: the diff operator can compare two files or compare last revision with working copy Index: oys12.txt =========================================== --- oys12.txt (revision 1) +++ oys12.txt (working copy) @@ - 11,7 + 11,7 @@ # # This variable turns on all the 'logprints' where phasenum=this # Set this value to 0 to turn off all the logprints. -$testnumber=3; +$testnumber=6; # logprint: function logprint ($what, $phasenumber) {

  24. Results of the 'diff' operation: Display changes Index: oys12.php =========================================== --- oys12.php (revision 1) +++ oys12.php (working copy) @@ - 11,7 + 11,7 @@ # # This variable turns on all the 'logprints' where phasenum=this # Set this value to 0 to turn off all the logprints. -$testnumber=3; +$testnumber=6; # logprint: function logprint ($what, $phasenumber) {

  25. Subversion: Commit the changes to repository (Required: Add a "commit message") While located at www/svnproj/trunk: >svn commit –m "Changed testnumber to 6" Deleting oys11.txt Sending oys12.txt Transmitting file data. Committed revision 2.

  26. Subversion: Summary The 'workhorse' version control system, 2000->2009 Media Convergence Lab (SREAL, E2I) Use Subversion to manage project assets It's free, and part of the UNIX "culture" Now part of the Apache Software Foundation

  27. A Commercial SCM System The 'industrial strength' version control system Used at Electronic Arts / Tiburon (Orlando) Key differences with Subversion: 1) Commercial -> somebody to call when trouble comes 2) A different approach to the lock/merge question 3) An image diff tool

  28. Concurrency Model Like Subversion, Perforce uses a hybrid of the merge and lock concurrency models. Subversion: deal with merge AFTER a divergence. Perforce: notify the system BEFORE divergence starts. The second user accessing a file is notified that someone else is working on it too. Both systems: humans have to reconcile differences to produce merged files.

  29. Image Diff Tool Watch the video at http://filehost.perforce.com/downloads/media/imagediff/imagediff.html Be able to describe how the Perforce Image Diff tool uses the concept of alpha blending to help artists work with divergent versions of images.

  30. Subversion is a creature of the Unix universe git is a creature of the Linux universe (in fact, it was developed by Linus Torvald)

  31. What is Git and why do we care? Git is the 'new testament' in SCM systems • The key features of Subversion: • A central shared repository • Version control and rollback • Branch: parallel developments • Merge: bringing branches together

  32. What is Git and why do we care? Git is the 'new testament' in SCM systems • Key features of Subversion: • A central shared repository • Version control, rollback • Branch: parallel devel • Merge: • Key features of Git: • distributed repository • Version control and rollback • Branch: parallel development • Merge: very efficient • for multi-way merges • Git is designed to be FAST • for common operations -35 -

  33. Who's using git? -36 - -36 -

  34. Git's weaknesses (versus SVN and others) • Subversion is the 800 pound gorilla (among free systems) • - so, many people know how to use it already. • - excellent clients like TortoiseSVN exist. • 2. Commercial systems like Perforce are common in really • BIG application builders, e. g. Electronic Arts • 3. Git is quite efficient in linux/unix, quite slow in Windows • 4. Git assumes pretty good knowledge of linux/unix • (Example: popping into the vi editor for commit • annotation.) -37 - -37 - -37 - www.wikipedia.org - GNU FDL

  35. Git's weaknesses (versus SVN and others) • Subversion is the 800 pound gorilla (among free systems) • - so, many people know how to use it already. • - excellent clients like TortoiseSVN exist. • 2. Commercial systems like Perforce are common in really • BIG application builders, e. g. Electronic Arts • 3. Git is quite efficient in linux/unix, quite slow in Windows • 4. Git assumes pretty good knowledge of linux/unix • (Example: popping into the vi editor for commit • annotation.) ... BUT ... there are GUIs available! -38 - -38 - -38 - www.wikipedia.org - GNU FDL

  36. Let's see at 10 minute video about GIT (part of a 59 minute talk.) http://www.youtube.com/watch?v=8dhZ9BXQgc4

  37. SmartGit: A User-Friendly git Client We all love GUIs (and they improve productivity) SmartGIT displays a log of commits and a side-by-side DIFF display that highlights the changes between two versions of your code. -40 - -40 -

  38. SmartGit: The log, and a change display -41 - -41 -

  39. SmartGit: Working Tree Display -42 - -42 -

  40. SmartGit: Is it Free? For non-commercial purposes, yes. For commercial purposes, about $50 per year per user. A very reasonable price for a very useful tool. -43 - -43 -

  41. Alienbrain: Asset management for Artists • (Something about that logo) China National Railway alienbrain

  42. Key Concepts for understanding Alienbrain: Client-server architecture, using built-in Apache: Artist’s client: integrates with Maya, Photoshop, 3dmax etc. Uses exclusive locking: no parallel development Programmer’s client: (no longer emphasized) Manager’s client: Can see all the views of artists & programmers Can manage work-flow, approve & lock files

  43. Key Concepts for understanding Alienbrain: Principal activities: check-out, check-in. Check-out: copy from server to your local computer. Mark server copy as “locked” – (by whom?) Or as “shared” if programming – (by whom?) Check-in: copy changed version back to server. (Previous version is also preserved.) Mark server copy as unlocked. Notify appropriate manager that work is done.

  44. Key Concepts for understanding Alienbrain: Other activities: approval, viewing Approval: Manager looks at work, may give feedback via ‘scribbles’, or may approve and lock the file. Viewing: you don’t have to lock a file to view it. Viewers are notified if a file is in use, but can still see the “previous version” for reference.

  45. Alienbrain screen layout

  46. An example of presenting software via PowerPoint Tree View – Your WORKSPACE

  47. An example of presenting software via PowerPoint List View – Contents of a Folder

More Related