Transcript PowerPoint
An Introduction to
SCM & GForge
Lin Guo
[email protected]
CS 501 : An Introduction to SCM & GForge
Roadmap
What is SCM
Why do we need SCM
Interesting SCM features
SCM tools
GForge
Conclusion
CS 501 : An Introduction to SCM and GForge
2
What is SCM
Source Control Management
Maintain a repository of source files
Track all changes
Control changes
Software Configuration Management
More than source control
Manage source repositories
CS 501 : An Introduction to SCM and GForge
3
Why we need SCM
Source Control
Sharing: supports concurrent development
Versioning: provide version number and dates
Change tracking: find details of a change
Archival: reproduce any file from any point
Documentation, drawing, etc.
Configuration Management
Branch: release version vs. develop version
Snapshot of the whole system
Prohibit further check-in before release
CS 501 : An Introduction to SCM and GForge
4
Roadmap
What is SCM
Why do we need SCM
Interesting SCM features
Source control vocabulary
Code Sharing
Branch
Label
SCM tools
GForge
Conclusion
CS 501 : An Introduction to SCM and GForge
5
Source Control Vocabulary
Update: obtain the latest versions of the code
Check-out: obtain the writable version of files
Check-in: commit the changes to files
Lock/unlock: one only person may modify a file
Integrate: combines the changes with others’
Add/delete: add/remove files to repositories
Top-of-trunk: most updated
CS 501 : An Introduction to SCM and GForge
6
Roadmap
What is SCM
Why do we need SCM
Interesting SCM features
Source control vocabulary
Code Sharing
Lock
Sharing
SCM tools
GForge
Conclusion
CS 501 : An Introduction to SCM and GForge
7
Code Sharing
Multiple people can work on the same
source base without colliding --– (1) Lock: locks individual files so only one
person at a time can modify it or
– (2) Merge: Allows multiple people to
modify a source file and the system will
automatically merge the changes (usually)
CS 501 : An Introduction to SCM and GForge
8
Locking
Only one person can modify certain source files.
Works fairly well if developers work on different
areas of the project and don’t conflict often
Problem 1: People forget to unlock files when they
are done
Problem 2: People work around locking by editing
a private copy and checking in when the file is
finally unlocked - easy to lose changes.
CS 501 : An Introduction to SCM and GForge
9
Merging
Several people can work on a file at once
Before committing changes, each user
merges their copy with the latest copy in the
database
– This is normally done automatically by the
system and usually works, but you should
not blindly accept the result of the merge
CS 501 : An Introduction to SCM and GForge
10
Roadmap
What is SCM
Why do we need SCM
Interesting SCM features
Source control vocabulary
Code Sharing
Branching
SCM tools
GForge
Conclusion
CS 501 : An Introduction to SCM and GForge
11
Branching
Brach sources for different purposes
When a new version ships, typically
create a branch for maintenance
Companies ship several products from
the same source base
1.0
2.0
1.0.1
Branching repository “fork” and
branch off the base repository.
Double update: (manually) merge
back changes in the branching
repository
CS 501 : An Introduction to SCM and GForge
12
Roadmap
What is SCM
Why do we need SCM
Interesting SCM features
Source control vocabulary
Code Sharing
Branching
Labeling
SCM tools
GForge
Conclusion
CS 501 : An Introduction to SCM and GForge
13
Labeling
Label all the files in the source base that
make up a product at each milestone
Just before and just after a major change (eg.
changing several interfaces)
When a new version ships, want to fix fatal
bugs in the original version.
CS 501 : An Introduction to SCM and GForge
14
Roadmap
What is SCM
Why do we need SCM
Interesting SCM features
SCM tools
GForge
Conclusion
CS 501 : An Introduction to SCM and GForge
15
CSM Tools
RCS – “revision control system”
In most Unix system, only source control
CVS – “concurrent versions system”
Free in linux, also support configuration management
SourceSafe
well-integrated into other Microsoft developer products, but not on
other platforms
ClearCase
commercial CSM tool
SourceGorge (Gforge)
Projects are available for public discovery and development
http://gforge.cis.cornell.edu/ (http://gforge.org)
CS 501 : An Introduction to SCM and GForge
16
Helpful Rules
Archived Files Should Always Compile
Update to get your codes “top-of-chunk”
Code review
Compile and run latest archived files *as a set*
before Check-in
No Cheating (even “simple bug fixes”)
Release a lock after you are done.
Don’t overwrite someone else’s code
CS 501 : An Introduction to SCM and GForge
17
Roadmap
What is SCM
Why do we need SCM
Interesting SCM features
SCM tools
GForge
Conclusion
CS 501 : An Introduction to SCM and GForge
18
GForge
CS 501 : An Introduction to SCM & GForge
GForge
GForge is an online SCM system
SCM tools: create and control access to CVS and
Subversion
Collaborating tool: forums and mailing lists;
Access control: over the automatically created
repository depending on the role settings of the project
File release, document management, news
announcements, surveys, task managements, etc.
Gforge in Cornell CIS
https://gforge.cis.cornell.edu/
CS 501 : An Introduction to SCM and GForge
20
GForge
CS 501 : An Introduction to SCM and GForge
21
GForge
CS 501 : An Introduction to SCM and GForge
22
GForge
CS 501 : An Introduction to SCM and GForge
23
GForge
CS 501 : An Introduction to SCM and GForge
24
GForge
CS 501 : An Introduction to SCM and GForge
25
GForge
CS 501 : An Introduction to SCM and GForge
26
Conclusion
SCM tools are Very Helpful
GForge is a Good Project Tools Available at
CIS
CS 501 : An Introduction to SCM and GForge
27
RCS
–
–
–
File management only
Transaction model
check out and lock
edit
check in and unlock
Little support for binaries
CS 501 : An Introduction to SCM and GForge
28
CVS
–
Built on top of RCS
Therefore little support for binaries
Database can be remote
No locking: merge before commit
Fast
Integrates with emacs
CS 501 : An Introduction to SCM and GForge
29
SourceSafe
Microsoft’s entry into the field
Project-based
Checkout-edit-checkin model
Built-in web site creation tools
Integrates with MSDEV
CS 501 : An Introduction to SCM and GForge
30
Clearcase
Clearcase is configuration management on
steroids
You create a view of the database with a config
spec, which describes how to select files from the
database.
When you set a view, Clearcase creates a virtual
filesystem containing only those versions of the
files selected by the config spec
CS 501 : An Introduction to SCM and GForge
31
SourceForge
On-line Version Control System
Projects are available for public discovery
and development
A very good environment for open source
projects
CS 501 : An Introduction to SCM and GForge
32