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