0
A day with Subversion (SVN)

            Sebastian Heimann

Institut f¨r Geophysik, Arbeitsgruppe Seismologie
          u
...
Outline




    1. Concepts (by example)
    2. Vocabulary
    3. Benefits
    4. Further reading
The initial work


   Let’s assume we have just made a quick and dirty hack, which we
   now want to put under version con...
Create an empty repository


   > svnadmin create --fs-type fsfs /my/repos



                                        Repo...
The initial import

   > svn import /my/hack file:///my/repos/hack/trunk 
              -m ’Initial import’



           ...
Checkout a working copy of hack


   > svn checkout file:///my/repos/hack/trunk /work/hack



                            ...
Add a new feature to hack

   > cd /work/hack ; vi hack



                                   Repository
         Working ...
Commit your changes to the repository

   > svn commit



                                            Repository
         ...
More than one person can now work on hack



                          Repository


  Fu’s working copy   2               ...
Both implement their improvements



                          Repository


  Fu’s working copy   2                Fara’s ...
Fu commits his changes to the repository



                        Repository
  > svn commit
                         3

...
Fara commits her changes to the repository

                        Repository

                         4



            ...
To get each others changes

                        Repository

                        4



  > svn update               ...
Fu and Fara can go back to any previous revision

                        Repository

                         4



  > sv...
Internally the repository will only store differences...

                           Repository

                          ...
...but it pretends to make a new copy on every commit.

                        Repository

                         4



...
Sometimes it may be useful to branch the project...




   > svn cp -r 2 file:///my/repos/hack/trunk 
                 fil...
...this creates a copy directly in the repository.


                       4




                       3




           ...
Check out a working copy of the branch




   > svn checkout file:///my/repos/hack/branches/mad 
                  /work/m...
You can now safely experiment with mad-hack, while
maintaining a stable version of hack in the trunk.


                  ...
Tagging: You can also use the branching mechanism to
mark a specific revisions as somehow special.




   > svn cp -r 2 fil...
Tagged stable version 1 of hack


                      4




                      3




          .../trunk             ...
Vocabulary




      repository
      revision
      working copy
      to check out
      to commit
      to update
Vocabulary




      to branch
      to merge
      to tag
Conventions




      hack/trunk
      hack/branches/mad
      hack/tags/stable-v1
Benefits




      Unlimited undo!
      Collaborate with others!
      Enforces structured development
      Makes you doc...
Further reading


   Tutorial
       http://artis.imag.fr/~Xavier.Decoret/resources/svn/



   Documentation (A good intro...
Upcoming SlideShare
Loading in...5
×

Sub Version Intro

1,373

Published on

Published in: Education, Technology, Business
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
1,373
On Slideshare
0
From Embeds
0
Number of Embeds
4
Actions
Shares
0
Downloads
57
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Transcript of "Sub Version Intro"

  1. 1. A day with Subversion (SVN) Sebastian Heimann Institut f¨r Geophysik, Arbeitsgruppe Seismologie u February 15, 2007
  2. 2. Outline 1. Concepts (by example) 2. Vocabulary 3. Benefits 4. Further reading
  3. 3. The initial work Let’s assume we have just made a quick and dirty hack, which we now want to put under version contol for further development: > ls /my/hack
  4. 4. Create an empty repository > svnadmin create --fs-type fsfs /my/repos Repository
  5. 5. The initial import > svn import /my/hack file:///my/repos/hack/trunk -m ’Initial import’ Repository 1
  6. 6. Checkout a working copy of hack > svn checkout file:///my/repos/hack/trunk /work/hack Repository Working copy 1
  7. 7. Add a new feature to hack > cd /work/hack ; vi hack Repository Working copy 1
  8. 8. Commit your changes to the repository > svn commit Repository Working copy 2 1
  9. 9. More than one person can now work on hack Repository Fu’s working copy 2 Fara’s working copy 1
  10. 10. Both implement their improvements Repository Fu’s working copy 2 Fara’s working copy 1
  11. 11. Fu commits his changes to the repository Repository > svn commit 3 Fara’s working copy Fu’s working copy 2 1
  12. 12. Fara commits her changes to the repository Repository 4 > svn commit Fu’s working copy 3 Fara’s working copy 2 1
  13. 13. To get each others changes Repository 4 > svn update > svn update 3 Fu’s working copy Fara’s working copy 2 1
  14. 14. Fu and Fara can go back to any previous revision Repository 4 > svn update -r 1 > svn update -r 3 3 Fu’s working copy Fara’s working copy 2 1
  15. 15. Internally the repository will only store differences... Repository 4 3 2 1
  16. 16. ...but it pretends to make a new copy on every commit. Repository 4 3 2 1
  17. 17. Sometimes it may be useful to branch the project... > svn cp -r 2 file:///my/repos/hack/trunk file:///my/repos/hack/branches/mad
  18. 18. ...this creates a copy directly in the repository. 4 3 .../trunk .../branches/mad 2 5 1
  19. 19. Check out a working copy of the branch > svn checkout file:///my/repos/hack/branches/mad /work/mad-hack
  20. 20. You can now safely experiment with mad-hack, while maintaining a stable version of hack in the trunk. 4 > cd /work/mad-hack > # edit it 3 6 2 5 1 > svn commit
  21. 21. Tagging: You can also use the branching mechanism to mark a specific revisions as somehow special. > svn cp -r 2 file:///my/repos/hack/trunk file:///my/repos/hack/tags/stable-v1
  22. 22. Tagged stable version 1 of hack 4 3 .../trunk .../tags/stable-v1 2 5 1
  23. 23. Vocabulary repository revision working copy to check out to commit to update
  24. 24. Vocabulary to branch to merge to tag
  25. 25. Conventions hack/trunk hack/branches/mad hack/tags/stable-v1
  26. 26. Benefits Unlimited undo! Collaborate with others! Enforces structured development Makes you document what you are doing Automatic changelog! Helps you organize your mess in $HOME
  27. 27. Further reading Tutorial http://artis.imag.fr/~Xavier.Decoret/resources/svn/ Documentation (A good intro is in Chapter 2) http://svnbook.red-bean.com/nightly/en/ Online help > svn help > svn [command] help
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×