information management
DESCRIPTION
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 . . . - PowerPoint PPT PresentationTRANSCRIPT
1
Information Management
DIG 3563Source 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 - -12 -
Mac OS X:
Tenth Generation
Unix Descendant
-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 -
-16 -
-17 -
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.
-18 -
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.
-19 -
The Copy-Modify-Merge Solution
-20 -
-21 - -21 -
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.
-22 -
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.
-23 -
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
-24 -
SUBVERSION (SVN) - Concepts
A 'tag' is a snapshot of the repository
(Like a 'branch' for historical purposes)
-25 - -25 -
Subversion Concepts
•The Repository is normally REMOTE (not on your PC)
That's because it's SHARED
-26 -
Subversion: the diff operatorcan compare two filesor 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)
{
-27 -
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)
{
-28 -
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.
Subversion: Commit the changes to repository(Required: Add a "commit message")
-29 -
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
Subversion: Summary
-30 -
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
A Commercial SCM System
-31 -
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.
Concurrency Model
-32 -
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.
Image Diff Tool
-33 -
Subversion is a creature of the Unix universe
git is a creature of the Linux universe
(in fact, it was developed by Linus Torvald)
-34 -
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
-35 - -35 -
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
-36 - -36 - -36 -
Who's using git?
-37 - -37 - -37 - -37 -
Git's weaknesses (versus SVN and others)
1. 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.)
www.wikipedia.org - GNU FDL
-38 - -38 - -38 - -38 -
Git's weaknesses (versus SVN and others)
1. 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!
www.wikipedia.org - GNU FDL
-39 -
http://www.youtube.com/watch?v=8dhZ9BXQgc4
Let's see at 10 minute videoabout GIT (part of a 59 minute talk.)
-40 - -40 - -40 -
SmartGit: A User-Friendly git Client
We all love GUIs (and they improve productivity)
SmartGIT displays a log of commitsand a side-by-side DIFF display
that highlights the changes between twoversions of your code.
-41 - -41 - -41 -
SmartGit: The log, and a change display
-42 - -42 - -42 -
SmartGit: Working Tree Display
-43 - -43 - -43 -
SmartGit: Is it Free?
For non-commercial purposes, yes.
For commercial purposes, about $50 peryear per user.
A very reasonable price for a very useful tool.
-44 -
Alienbrain: Asset management for Artists
(Something about that logo)
China National
Railwayalienbrain
-45 -
Key Concepts for understandingAlienbrain:
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
-46 -
Key Concepts for understandingAlienbrain:
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.
-47 -
Key Concepts for understandingAlienbrain:
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.
-48 -
Alienbrain screen layout
-49 -
An example of presenting software via PowerPoint
Tree View – Your WORKSPACE
-50 -
An example of presenting software via PowerPoint
List View – Contents of a Folder
-51 -
An example of presenting software via PowerPoint
Thumbnail Image: 2d helper
-52 -
An example of presenting software via PowerPoint
Tools Pane – multiple tabs
-53 -
An example of presenting software via PowerPoint
Tools Pane – this is the PREVIEW tab
-54 -
An example of presenting software via PowerPoint
One file in the List View:
Icons reporting status of file
-55 -
Icon Reference Chart
… and MANY more …
-56 -
Watch a video about Alienbrain
http://www.alienbrain.com/videos/
Visit the website to investigate this question:
How does Alienbrain assist two artists who must MERGE their work on a scenebeing developed for a game?
-57 -
Strengths and Weaknesses
Strengths:
Ease of use
Good integration with production tools.
Positive evidence:
Large list of clients on the alienbrain website
-58 -
Strengths and Weaknesses
Weaknesses:
High cost for small shops (but cheaper than BIG systems..)
Alienbrain: $12k to $100k + $200 to $400 per client per year
North Plains, Artesia:
BIG systems: $600k up, plus $250k a year
-59 -
Strengths and Weaknesses
Weaknesses:
High cost for small shops (but cheaper than BIG systems..)
Minimal metadata support
Negative evidence:
No way to search on "label" field names or contents
No other available metadata channel except the general
"comment" field, history and message log,
and asset names.
-60 -
Challenges
Server -
Must run on Windows Server 2003 or Windows XP
Clients
There exist Mac as well as Windows clients,
but the Mac ones can only be tested by running
a Windows server somewhere.
-61 -
Where is DAM headed?
The Cloud!
We all hear about it, but
-what is it?
We'll explore this topic
in our next & last lecture! winky.net