210 likes | 377 Views
(Sub)Version Control. Keep large teams working on the same code Back up your work so you don't lose it all Compare changes to previous versions Revert if you broke everything. Version Control is Important. Approaches to Version Control. Ignore the problem, work on your own.
E N D
Keep large teams working on the same code Back up your work so you don't lose it all Compare changes to previous versions Revert if you broke everything Version Control is Important
Approaches to Version Control Ignore the problem, work on your own
Approaches to Version Control Ignore the problem, work on your own Email everything back and forth
Approaches to Version Control Ignore the problem, work on your own Email everything back and forth Use Dropbox/AFS/some outside storage
Approaches to Version Control Ignore the problem, work on your own Email everything back and forth Use Dropbox/AFS/some outside storage Use SVN
Why SVN is Great SVN stores all your code somewhere the whole team can edit and download it.
Why SVN is Great SVN stores all your code somewhere the whole team can edit and download it. Every time someone makes a change, SVN stores that change in case you want to see it later
Why SVN is Great SVN stores all your code somewhere the whole team can edit and download it. Every time someone makes a change, SVN stores that change in case you want to see it later We are at version 1849.
Why SVN is Great SVN stores all your code somewhere the whole team can edit and download it. Every time someone makes a change, SVN stores that change in case you want to see it later We are at version 1849. It even helps you sync your files and see conflicts when two people try to edit the same file at the same time.
Using SVN: Operating Systems Linux/Mac use command line Windows uses a program called TortoiseSVN Same commands, just a graphical interface.
Using SVN: Simple commands SVN checkout: Downloads a copy of the repository to your computer. SVN update: Executed within an SVN folder, downloads only the non-conflicting changes to your computer. SVN commit: Uploads your changes to the repository
Using SVN: Flashy stuff Branching: allows users to commit changes and test them without breaking other parts of the repository. Changes are then merged in.
Using SVN: Flashy stuff Branching: allows users to commit changes and test them without breaking other parts of the repository. Changes are then merged in. Conflicts: SVN warns you when you and another user changed the same file. If it can't gracefully merge, it won't commit or replace anything.
Using SVN: Caveats Local changes vs. committed changes
Using SVN: Caveats Local changes vs. committed changes When you add/delete/move files, you run the risk of moving them on your machine but not in the repository.
Using SVN: Caveats Local changes vs. committed changes When you add/delete/move files, you run the risk of moving them on your machine but not in the repository. Use the svn commands add/delete/move rather than your normal filesystem commands!
Using SVN: Caveats Local changes vs. committed changes When you add/delete/move files, you run the risk of moving them on your machine but not in the repository. Use the svn commands add/delete/move rather than your normal filesystem commands! Local changes are useful, though.
SVN in Lab 2 For lab2, we have a separate SVN repository you can check out and make changes to. Experiment a bit and get comfortable with SVN here. After the labs, you'll be working in the main Colony repository.