an introduction to scm gforge l.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
An Introduction to SCM & GForge PowerPoint Presentation
Download Presentation
An Introduction to SCM & GForge

Loading in 2 Seconds...

play fullscreen
1 / 32

An Introduction to SCM & GForge - PowerPoint PPT Presentation


  • 91 Views
  • Uploaded on

An Introduction to SCM & GForge. Lin Guo guolin@cs.cornell.edu. Roadmap. What is SCM Why do we need SCM Interesting SCM features SCM tools GForge Conclusion. What is SCM. Source Control Management Maintain a repository of source files Track all changes Control changes

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

An Introduction to SCM & GForge


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.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
an introduction to scm gforge

An Introduction to SCM & GForge

Lin Guo

guolin@cs.cornell.edu

roadmap
Roadmap
  • What is SCM
  • Why do we need SCM
  • Interesting SCM features
  • SCM tools
  • GForge
  • Conclusion
what is scm
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
why we need scm
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
roadmap5
Roadmap
  • What is SCM
  • Why do we need SCM
  • Interesting SCM features
    • Source control vocabulary
    • Code Sharing
    • Branch
    • Label
  • SCM tools
  • GForge
  • Conclusion
source control vocabulary
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
roadmap7
Roadmap
  • What is SCM
  • Why do we need SCM
  • Interesting SCM features
    • Source control vocabulary
    • Code Sharing
      • Lock
      • Sharing
  • SCM tools
  • GForge
  • Conclusion
slide8

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)
locking
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.
merging
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
roadmap11
Roadmap
  • What is SCM
  • Why do we need SCM
  • Interesting SCM features
    • Source control vocabulary
    • Code Sharing
    • Branching
  • SCM tools
  • GForge
  • Conclusion
branching
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
  • Branching repository “fork” and branch off the base repository.
  • Double update: (manually) merge back changes in the branching repository

1.0

2.0

1.0.1

roadmap13
Roadmap
  • What is SCM
  • Why do we need SCM
  • Interesting SCM features
    • Source control vocabulary
    • Code Sharing
    • Branching
    • Labeling
  • SCM tools
  • GForge
  • Conclusion
labeling
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.
roadmap15
Roadmap
  • What is SCM
  • Why do we need SCM
  • Interesting SCM features
  • SCM tools
  • GForge
  • Conclusion
csm tools
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)
helpful rules
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
roadmap18
Roadmap
  • What is SCM
  • Why do we need SCM
  • Interesting SCM features
  • SCM tools
  • GForge
  • Conclusion
gforge20
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/
conclusion
Conclusion
  • SCM tools are Very Helpful
  • GForge is a Good Project Tools Available at CIS
slide28
RCS
  • File management only
  • Transaction model
  • check out and lock
  • edit
  • check in and unlock
  • Little support for binaries
slide29
CVS
  • Built on top of RCS
  • Therefore little support for binaries
  • Database can be remote
  • No locking: merge before commit
  • Fast
  • Integrates with emacs
sourcesafe
SourceSafe
  • Microsoft’s entry into the field
  • Project-based
  • Checkout-edit-checkin model
  • Built-in web site creation tools
  • Integrates with MSDEV
clearcase
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
sourceforge
SourceForge
  • On-line Version Control System
  • Projects are available for public discovery and development
  • A very good environment for open source projects