1 / 16

Version Control

Version Control. Why version control?. Scenario 1: Your program is working You change "just one thing" Your program breaks You change it back Your program is still broken-- why? Has this ever happened to you?. Why version control? (part 2). Your program worked well enough yesterday

Download Presentation

Version Control

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. Version Control

  2. Why version control? • Scenario 1: • Your program is working • You change "just one thing" • Your program breaks • You change it back • Your program is still broken--why? • Has this ever happened to you?

  3. Why version control? (part 2) • Your program worked well enough yesterday • You made a lot of improvements last night... • ...but you haven't gotten them to work yet • You need to turn in your program now • Has this ever happened to you?

  4. Version control for teams • Scenario: • You change one part of a program--it works • Your co-worker changes another part--it works • You put them together--it doesn't work • Some change in one part must have broken something in the other part • What were all the changes?

  5. Teams (part 2) • Scenario: • You make a number of improvements to a class • Your co-worker makes a number of different improvements to the same class • How can you merge these changes?

  6. diff tools • There are a number of tools that help you spot changes (differences) between two files • Tools include diff, rcsdiff, jDiff, etc. • Of course, they won't help unless you kept a copy of the older version • Differencing tools are useful for finding a small number of differences in a few files

  7. jDiff • jDiff is a plugin for the jEdit editor • Advantages: • Everything is color coded • Uses synchronized scrolling • It's inside an editor--you can make changes directly • Disadvantages: • Not stand-alone, but must be used within jDiff • Just a diff tool, not a complete solution

  8. jDiff

  9. Version control systems • A version control system (often called a source code control system) does these things: • Keeps multiple (older and newer) versions of everything (not just source code) • Requests comments regarding every change • Allows "check in" and "check out" of files so you know which files someone else is working on • Displays differences between versions

  10. sccs • sccs is Source Code Control System (UNIX) • sccs keeps multiple versions of a complete directory • Storage requirements are small, because sccs: • keeps the original documents • keeps the changes needed to go from one version to the next • generates any version when you ask for it

  11. rcs • rcs is Revision Control System (also UNIX) • rcs is like sccs, and does the same things, but • sccs keeps the originals, and applies changes to get to newer versions • rcs keeps the current versions, and applies changes to get back to older versions • (opinion) You usually want to work with the newer versions, so rcs is usually the better choice

  12. rcs commands • Create a directory for your rcs files • co -l file-- check out a file and lock it • Locking means you can check the file back in • ci file -- check in a revision (put file under rcs) • rcs -l file-- lock a file you already checked out • (needed when you checked it out and forgot the -l ) • rcsdiff files-- report differences between files • merge files -- merges two files into original file • Not magic--you have to check the results

  13. Who cares about UNIX? • CVS is probably the most popular version control system on Windows • CVS is based on rcs • I don't know CVS very well • CVS is built into JBuilder and CodeWarrior • "There are two ways to run CVS on Windows 95/NT. The first is as a client, talking to a CVS server on a Unix box. This is the recommended setup and is commonly used."

  14. CVS commands • cvs checkout file • cvs commit file • cvs diff file • But these are CVS commands under UNIX! • Popular GUIs on Windows: • tkCVS • jCVS • WinCVS

  15. CVS home page • http://www.cvshome.org

  16. The End

More Related