1 / 32

An Introduction to SCM & GForge

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

hilde
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. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. An Introduction to SCM & GForge Lin Guo guolin@cs.cornell.edu

  2. Roadmap • What is SCM • Why do we need SCM • Interesting SCM features • SCM tools • GForge • Conclusion

  3. 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

  4. 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

  5. Roadmap • What is SCM • Why do we need SCM • Interesting SCM features • Source control vocabulary • Code Sharing • Branch • Label • SCM tools • GForge • Conclusion

  6. 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

  7. Roadmap • What is SCM • Why do we need SCM • Interesting SCM features • Source control vocabulary • Code Sharing • Lock • Sharing • SCM tools • GForge • Conclusion

  8. 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)

  9. 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.

  10. 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

  11. Roadmap • What is SCM • Why do we need SCM • Interesting SCM features • Source control vocabulary • Code Sharing • Branching • SCM tools • GForge • Conclusion

  12. 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

  13. Roadmap • What is SCM • Why do we need SCM • Interesting SCM features • Source control vocabulary • Code Sharing • Branching • Labeling • SCM tools • GForge • Conclusion

  14. 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.

  15. Roadmap • What is SCM • Why do we need SCM • Interesting SCM features • SCM tools • GForge • Conclusion

  16. 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)

  17. 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

  18. Roadmap • What is SCM • Why do we need SCM • Interesting SCM features • SCM tools • GForge • Conclusion

  19. GForge

  20. 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/

  21. GForge

  22. GForge

  23. GForge

  24. GForge

  25. GForge

  26. GForge

  27. Conclusion • SCM tools are Very Helpful • GForge is a Good Project Tools Available at CIS

  28. RCS • File management only • Transaction model • check out and lock • edit • check in and unlock • Little support for binaries

  29. CVS • Built on top of RCS • Therefore little support for binaries • Database can be remote • No locking: merge before commit • Fast • Integrates with emacs

  30. SourceSafe • Microsoft’s entry into the field • Project-based • Checkout-edit-checkin model • Built-in web site creation tools • Integrates with MSDEV

  31. 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

  32. SourceForge • On-line Version Control System • Projects are available for public discovery and development • A very good environment for open source projects

More Related