1 / 23

Using Source Code Control Effectively

Using Source Code Control Effectively. Gang Cheng gacheng@syr.edu. Why?. Why we need source code control? Keep track of code changes Prevent code loss Retrieve older versions of software that customers are currently using to examine problems they are having. Three Levels.

dima
Télécharger la présentation

Using Source Code Control Effectively

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. Using Source Code Control Effectively Gang Cheng gacheng@syr.edu

  2. Why? • Why we need source code control? • Keep track of code changes • Prevent code loss • Retrieve older versions of software that customers are currently using to examine problems they are having

  3. Three Levels • Level 1: Opening Your Eyes • Level 2: The SCC Journeyman • Level 3: Experts Only

  4. Level 1 • Opening Your Eyes • Create: creates a new area in the repository • Add: adds a file to the repository • Get: gets the current version of a file from the repository • Checkout: works on a particular file actively • Undo Checkout: throws away any changes and unlocks the file • Checkin: puts the current version of the file back to the repository

  5. Level 2 • The SCC Journeyman • Label: assigns a name to a specific version of a file • Share: allows a file to appear in more than one project • Branch: lets development diverge • Merge: takes changes from one branch and applies them to another branch

  6. Level 3 • Experts Only • Cloak: hides a project in the repository • Delete: removes a file from the repository • Move: relocates a file or subproject to a new parent project • Pin: freezes a shared file at a particular version • Rename: rename a file or project • Rollback: reverts a file to an earlier version

  7. SCC Alternatives • Some Representative SCC • AccuRev www.accurev.com • BitKeeper www.bitkeeper.com • ClearCase www.rational.com/products/clearcase • CVS www.cvshome.org • Perforce www.perforce.com • StarTeam www.borland.com/starteam/ • Subversion http://subversion.tigris.org/ • Vault www.sourcegear.com/vault/index.asp • Visual Source Safe http://msdn.microsoft.com/ssafe

  8. Choose? • Price • Concurrent Development Style • Checkout/edit/checkin (VSS) • Edit/merge/commit (CVS) • The repository • Internet Friendliness • IDE Integration • Advanced Commands • Cross-Platform Support

  9. Discussion • SCC Etiquette • Work with as few files as possible at one time • Two styles compare • Proper use of Label (Tags) • Easy to remember and find • At significant points • Branching Discipline • When different developers in the same project follows different rules • Create only when needed • Handles branching by actually creating branches • Miscellaneous Rules • Use the integration • Chapter 9 “Tracking and Squashing Bugs”

  10. SCC Checklist • Use it • Use command efficiently • Choose your SCC • Place all dev. Artifacts to SCC • Checkout only when you need it • Comment changes when checkin • Label at significant points • Create a branch whenever the rules change • Use SCC with bug tracking

  11. CVS • General • CVS Homepage https://www.cvshome.org/ • Introducton ppt http://www.geocities.com/durairaj_77/wincvs.ppt • CVS Book http://cvsbook.red-bean.com/cvsbook.html • CVS Commmand http://www.cvsnt.org/wiki/CvsCommand • CVSNT (CVS Window Server) • CVSNT Homepage http://www.cvsnt.org • Installation Guide http://w1.862.telia.com/~u86216121/InstallCVSNT.html • WinCVS (CVS Window Client) • WinCVS Homepage http://www.wincvs.org/index.html • Installation & Config Guide http://www.cmcrossroads.com/ubbthreads/showflat.php?Cat=0&Number=31083&page=0&view=collapsed&sb=2&o=&fpart=1

  12. CVS • RCS (Revision Control System) • By Walter Tichy, Purdue University • software tool for UNIX systems which lets people work on system control • Reference http://www.csc.calpoly.edu/~dbutler/tutorials/winter96/rcs/ • SharpCVSLib (CVS Client Library) • A Client API for the CVS protocol, written in C# • SCVSLib Homepage http://sharpcvslib.sourceforge.net/

  13. CVS • CVSNT Running

  14. CVS • WinCVS Login

  15. CVS • WinCVS: User Gang Import module

  16. CVS • WinCVS: User Charlie checkout module

  17. CVS • WinCVS: User Charlie Edit a file

  18. CVS • WinCVS: User Charlie commits the file

  19. CVS • WinCVS: User Gang edits the same file, commits his version and causes a conflict

  20. CVS • WinCVS: User Gang checks version tree

  21. CVS • WinCVS: User Gang retrieves the old version

  22. head 1.3; access; symbols arelease:1.1.1.1 avendor:1.1.1; locks; strict; comment @# @; 1.3 date 2004.10.07.19.40.04; author Gang; state Exp; branches; next 1.2; deltatype text; permissions 644; commitid af041659b940c05; kopt kv; filename @Please read me.txt@; 1.2 date 2004.10.07.19.14.13; author Charlie; state Exp; branches; next 1.1; deltatype text; permissions 644; commitid d0416595847838; kopt kv; filename @Please read me.txt@; …… RCS File

  23. End of Presentation

More Related