SCM Overview
SCM Overview
Management
Slides derived from Dr.
Sara Stoecklins notes
and various web
sources.
What is SCM?
SCM goals
Track history
Work flows
Definition according to Wiki
Configuration management is the management of
features and assurances through control of
changes made to hardware, software,
firmware, documentation, test, test fixtures
and test documentation of an system,
throughout the development and operational
life of a system.
Multiple versions
Multiple authors
Concurrent activities
Geographical distribution
RCS
CVS
Subversion (svn)
Git
Mercurial (hg)
Bazaar (bzr)
many more
Key terms and concepts
Version/revision numbers
Timestamps
Releases
Repository
Baseline/trunk/mainline/master
Branches/forks
More terms and concepts
Export/import
Commit
Merge
Centralized vs. distributed
SCM models
Centralized SCM
http://edgyu.excess.org/git-tutorial/2008-07-09/intro-to-git.pdf
How decentralized SCM
works.
Start with a global repository
Clone it
Can make cheap local clones via
links
http://edgyu.excess.org/git-tutorial/2008-07-09/intro-to-git.pdf
Changes can be pushed back
upstream
http://edgyu.excess.org/git-tutorial/2008-07-09/intro-to-git.pdf
published to web
http://edgyu.excess.org/git-tutorial/2008-07-09/intro-to-git.pdf
or shared with trusted peers
http://edgyu.excess.org/git-tutorial/2008-07-09/intro-to-git.pdf
Benefits of decentralization
Non-intrusive micro-commits
Very flexible
... ?
Problems with decentralization
No locking
tp://progit.org/book/ch5-1.html
UML Sequence Diagram
for an Agile team.
Agile workflow
http://nvie.com/wp-content/uploads/2009/12/Screen-shot-2009-12-24-at-11.32.03.png
Managed repository
tp://progit.org/book/ch5-1.htm
An alternate way of sharing a repository, using branches.
http://agentdero.cachefly.net/unethicalblogger.com/images/basic_slide_workflow.png
Linux-like hierarchical model
https://codebeamer.com/cb/displayDocument/workflow-c.png?object_comment_id
=529&history=false¬ification=false
Android Git Workflow
http://source.android.com
/submit-patches/workflow
If you use an IDE such as VB Studio or Eclipse
then you can use a SCM plug-in
Several are available.
However, if you are not using an IDE you will need
to use command-line operations, scripts, or a
separate GUI tool for version control.
For Spring 2010 we will use Git.
So, you will need to learn it.
During your career you will probably need to
learn and use several others.