21
(Sub)Version Control

(Sub)Version Control. 2 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

Embed Size (px)

Citation preview

(Sub)Version Control

2

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

3

Approaches to Version Control

Ignore the problem, work on your own

4

Approaches to Version Control

Ignore the problem, work on your own Email everything back and forth

5

Approaches to Version Control

Ignore the problem, work on your own Email everything back and forth Use Dropbox/AFS/some outside storage

6

Approaches to Version Control

Ignore the problem, work on your own Email everything back and forth Use Dropbox/AFS/some outside storage Use SVN

7

Why SVN is Great

SVN stores all your code somewhere the whole team can edit and download it.

8

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

9

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.

10

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.

11

Using SVN: Operating Systems

Linux/Mac use command line Windows uses a program called TortoiseSVN

– Same commands, just a graphical interface.

12

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

TortiseSVN Usage:

14

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.

15

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.

16

Using SVN: Caveats

Local changes vs. committed changes

17

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.

18

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!

19

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.

20

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.

21

Questions?