DOC PREVIEW
CORNELL CS 501 - Source Code Management

This preview shows page 1-2-20-21 out of 21 pages.

Save
View full document
View full document
Premium Document
Do you want full access? Go Premium and unlock all 21 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 21 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 21 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 21 pages.
Access to all documents
Download any document
Ad free experience
Premium Document
Do you want full access? Go Premium and unlock all 21 pages.
Access to all documents
Download any document
Ad free experience

Unformatted text preview:

Source Code Management Or Configuration Management: How I learned to Stop Worrying and Hate My Co-workers LessSource Code ManagementWhy You Want A Source Control SystemSource Code Management Tools Are NotHow They WorkWhat should be in the databaseVersion ControlCode SharingLockingMergingLabellingVersion TreesBranchingExamplesRCSCVSSourceSafeClearcaseClearcase FeaturesMore Clearcase FeaturesHelpful Rules for Version Control BlissSource Code ManagementOrConfiguration Management: How I learned to Stop Worrying and Hate My Co-workers LessSource Code Management•Also known as Configuration Management•Source Code Managers are tools that:–Archive your development files–Serve as a single point of entry/exit when adding or updating development filesWhy You Want A Source Control System•Supports concurrent development •Manage diverging source code bases•Records file/release versions•Easy access to all previous revisions•Can record why a revision was made•Optimal disk space usage•You’ll end up doing something equivalent anyway so it may as well be automatedSource Code Management Tools Are Not•A substitute for project management•A replacement for developer communicationHow They Work•Central database of source code, documentation, build tools•Each file stored only once - all other versions are diffs of that one copy•To Make a Change–Check out the latest version of a file–Make the changes–Update the databaseWhat should be in the database•Source Code•Documentation•Build Tools–Often need old versions of the tools to build old versions of the software–Ensures software is rebuilt exactly as the customer received it•Test Suites•Anything else you might want laterVersion Control•Companies ship several products from the same source base (ie Win NT and Windows 2000 versions of MS Office)•When tracking down bugs you want to examine the code as it was when the product shippedCode Sharing•Multiple people can work on the same source base without colliding–(1) Locks individual files so only one person at a time can modify it *OR*–(2) Allows multiple people to modify a source file and the system will automatically merge the changes (usually)Locking•Only one person can work on a file at once•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 goof and lose changesMerging•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 mergeLabelling•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 shipsVersion Trees•Each file in the database has a version tree•Can branch off the version tree to allow separate development paths•Typically a main path (trunk) for the next major version and branches off of shipped versions for maintenanceBranching•When a new version ships, typically create a branch in the version tree for maintenance•Double update: fix a defect in the latest version and then merge the changes (often by hand) into the maintenance version•Also create personal versions so you can make a change against a stable source base and then merge in the latest version laterExamples•RCS–Solaris: man rcsintro•CVS–Solaris: man cvs–www.cyclic.com/cvs/info.html•Visual SourceSafe–msdn.microsoft.com/SSAFE•ClearCase–www.rational.comRCS•File management only•Transaction model–check out and lock–edit–check in and unlock•Little support for binariesCVS•Built on top of RCS–Therefore little support for binaries•Database can be remote•No locking: merge before commit•Fast•Integrates with emacsSourceSafe•Microsoft’s entry into the field•Project-based•Checkout-edit-checkin model•Built-in web site creation tools•Integrates with MSDEVClearcase•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 specClearcase Features•Distributed System–Several groups at different locations can work on the same database•Can install triggers–Example: e-mail the author of a file when some one makes a change to it•Uses merging model like CVS, but can also lock filesMore Clearcase Features•Integrates with MSDEV•Build Management–Knows to rebuild out-of-date files even if your makefile doesn’t•Slow and a bit buggyHelpful Rules for Version Control Bliss•Archived Files Should Always Compile•Code Review Files Before Check-in•Compile and run latest archived files *as a set* before Check-in•No Cheating (even “simple bug fixes” need to undergo this


View Full Document

CORNELL CS 501 - Source Code Management

Documents in this Course
Quiz 2

Quiz 2

2 pages

Usability

Usability

31 pages

Quiz 1

Quiz 1

2 pages

Stulba;''

Stulba;''

33 pages

Load more
Download Source Code Management
Our administrator received your request to download this document. We will send you the file to your email shortly.
Loading Unlocking...
Login

Join to view Source Code Management and access 3M+ class-specific study document.

or
We will never post anything without your permission.
Don't have an account?
Sign Up

Join to view Source Code Management 2 2 and access 3M+ class-specific study document.

or

By creating an account you agree to our Privacy Policy and Terms Of Use

Already a member?