cs 501 : an introduction to scm & gforge an introduction to scm & gforge lin guo...

32
CS 501 : An Introduction to SCM & GForge An Introduction to SCM & GForge Lin Guo [email protected]

Post on 21-Dec-2015

241 views

Category:

Documents


4 download

TRANSCRIPT

CS 501 : An Introduction to SCM & GForge

An Introduction to SCM & GForge

Lin [email protected]

2CS 501 : An Introduction to SCM and GForge

Roadmap

What is SCM Why do we need SCM Interesting SCM features SCM tools GForge Conclusion

3CS 501 : An Introduction to SCM and GForge

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

4CS 501 : An Introduction to SCM and GForge

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

5CS 501 : An Introduction to SCM and GForge

Roadmap What is SCM Why do we need SCM Interesting SCM features

Source control vocabulary Code Sharing Branch Label

SCM tools GForge Conclusion

6CS 501 : An Introduction to SCM and GForge

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

7CS 501 : An Introduction to SCM and GForge

Roadmap What is SCM Why do we need SCM Interesting SCM features

Source control vocabulary Code Sharing

Lock Sharing

SCM tools GForge Conclusion

8CS 501 : An Introduction to SCM and GForge

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)

9CS 501 : An Introduction to SCM and GForge

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.

10CS 501 : An Introduction to SCM and GForge

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

11CS 501 : An Introduction to SCM and GForge

Roadmap What is SCM Why do we need SCM Interesting SCM features

Source control vocabulary Code Sharing Branching

SCM tools GForge Conclusion

12CS 501 : An Introduction to SCM and GForge

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

1.0.12.0

13CS 501 : An Introduction to SCM and GForge

Roadmap What is SCM Why do we need SCM Interesting SCM features

Source control vocabulary Code Sharing Branching Labeling

SCM tools GForge Conclusion

14CS 501 : An Introduction to SCM and GForge

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.

15CS 501 : An Introduction to SCM and GForge

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

16CS 501 : An Introduction to SCM and GForge

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)

17CS 501 : An Introduction to SCM and GForge

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

18CS 501 : An Introduction to SCM and GForge

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

CS 501 : An Introduction to SCM & GForge

GForge

20CS 501 : An Introduction to SCM and 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/

21CS 501 : An Introduction to SCM and GForge

GForge

22CS 501 : An Introduction to SCM and GForge

GForge

23CS 501 : An Introduction to SCM and GForge

GForge

24CS 501 : An Introduction to SCM and GForge

GForge

25CS 501 : An Introduction to SCM and GForge

GForge

26CS 501 : An Introduction to SCM and GForge

GForge

27CS 501 : An Introduction to SCM and GForge

Conclusion

SCM tools are Very Helpful GForge is a Good Project Tools Available

at CIS

28CS 501 : An Introduction to SCM and GForge

RCS

File management only Transaction model

– check out and lock

– edit

– check in and unlock Little support for binaries

29CS 501 : An Introduction to SCM and GForge

CVS

Built on top of RCS

– Therefore little support for binaries Database can be remote No locking: merge before commit Fast Integrates with emacs

30CS 501 : An Introduction to SCM and GForge

SourceSafe

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

31CS 501 : An Introduction to SCM and GForge

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

32CS 501 : An Introduction to SCM and GForge

SourceForge

On-line Version Control System Projects are available for public discovery

and development A very good environment for open source

projects