Subversion workshop
-
Upload
trafex -
Category
Technology
-
view
797 -
download
0
description
Transcript of Subversion workshop
![Page 1: Subversion workshop](https://reader036.fdocuments.us/reader036/viewer/2022062319/55629602d8b42aa17d8b542f/html5/thumbnails/1.jpg)
SVN workshop
By Tim de Pater / @trafex
![Page 2: Subversion workshop](https://reader036.fdocuments.us/reader036/viewer/2022062319/55629602d8b42aa17d8b542f/html5/thumbnails/2.jpg)
Index
• Basics• Conflicts• Branching• Merging• Release management • Best practice
![Page 3: Subversion workshop](https://reader036.fdocuments.us/reader036/viewer/2022062319/55629602d8b42aa17d8b542f/html5/thumbnails/3.jpg)
Basics
svn checkout
$ svn checkout http://repos.enrise.com/svn/project/branches/release-2.1 projectfolder A projectfolder/filesChecked out revision 14.
![Page 4: Subversion workshop](https://reader036.fdocuments.us/reader036/viewer/2022062319/55629602d8b42aa17d8b542f/html5/thumbnails/4.jpg)
Basics
svn info
Path: .URL: http://repos.enrise.com/svn/4106-Nederlands%20dagblad/trunkRepository Root: http://repos.enrise.com/svnRepository UUID: 317ccd4c-6b34-0410-924f-f0004c2b7d44Revision: 12664Node Kind: directorySchedule: normalLast Changed Author: tpaterLast Changed Rev: 12664Last Changed Date: 2011-03-11 11:25:13 +0100 (Fri, 11 Mar 2011)
![Page 5: Subversion workshop](https://reader036.fdocuments.us/reader036/viewer/2022062319/55629602d8b42aa17d8b542f/html5/thumbnails/5.jpg)
Basics
svn status 'A' Added 'C' Conflicted 'D' Deleted 'I' Ignored 'M' Modified 'R' Replaced 'X' an unversioned directory created by an externals definition '?' item is not under version control '!' item is missing (removed by non-svn command) or incomplete '~' versioned item obstructed by some item of a different kind
![Page 6: Subversion workshop](https://reader036.fdocuments.us/reader036/viewer/2022062319/55629602d8b42aa17d8b542f/html5/thumbnails/6.jpg)
Basics
svn update
$ svn upU grocerylist.txtUpdated to revision 14.
![Page 7: Subversion workshop](https://reader036.fdocuments.us/reader036/viewer/2022062319/55629602d8b42aa17d8b542f/html5/thumbnails/7.jpg)
Basics
svn add
$ svn add index.php A index.php
![Page 8: Subversion workshop](https://reader036.fdocuments.us/reader036/viewer/2022062319/55629602d8b42aa17d8b542f/html5/thumbnails/8.jpg)
Basics
svn commit
$ svn commit -m 'Commit melding' Sending src/templates/admin/newspapermanagement.phpTransmitting file data .Committed revision 12854.
![Page 9: Subversion workshop](https://reader036.fdocuments.us/reader036/viewer/2022062319/55629602d8b42aa17d8b542f/html5/thumbnails/9.jpg)
Basics
svn revert
$ svn revert public/index.php Reverted 'public/index.php'
![Page 10: Subversion workshop](https://reader036.fdocuments.us/reader036/viewer/2022062319/55629602d8b42aa17d8b542f/html5/thumbnails/10.jpg)
Basics
svn mvsvn rmsvn cp
svn mkdirsvn ls
svn help <command>
![Page 11: Subversion workshop](https://reader036.fdocuments.us/reader036/viewer/2022062319/55629602d8b42aa17d8b542f/html5/thumbnails/11.jpg)
Conflicts
$ svn upConflict discovered in 'grocery.txt'.Select: (p) postpone, (df) diff-full,(e) edit, (mc) mine-conflict,(tc) theirs-conflict, (s) show all options:
![Page 12: Subversion workshop](https://reader036.fdocuments.us/reader036/viewer/2022062319/55629602d8b42aa17d8b542f/html5/thumbnails/12.jpg)
Conflicts
Ontstaan doordat 2 mensen dezelfde regel bewerken
![Page 13: Subversion workshop](https://reader036.fdocuments.us/reader036/viewer/2022062319/55629602d8b42aa17d8b542f/html5/thumbnails/13.jpg)
Conflicts
grocery.txt
Milk<<<<<<< .mineHot Dog=======Cheese>>>>>>> .r12Juice
MilkHot DogJuice
svn up
![Page 14: Subversion workshop](https://reader036.fdocuments.us/reader036/viewer/2022062319/55629602d8b42aa17d8b542f/html5/thumbnails/14.jpg)
Resolving conflicts - option 1
Versie van collega accepteren
$ svn revert grocery.txtReverted 'grocery.txt'
![Page 15: Subversion workshop](https://reader036.fdocuments.us/reader036/viewer/2022062319/55629602d8b42aa17d8b542f/html5/thumbnails/15.jpg)
Resolving conflicts - option 2
Eigen versie behouden• grocery.txt – orgineel met markeringen• grocery.txt.mine – eigen versie• grocery.txt.r5 – orgineel die je bewerkt hebt• grocery.txt.r6 – nieuwste versie die je collega bewerkt heeft
$ cp grocery.txt.mine grocery.txt$ svn resolved grocery.txt Resolved conflicted state of 'grocery.txt'edition
![Page 16: Subversion workshop](https://reader036.fdocuments.us/reader036/viewer/2022062319/55629602d8b42aa17d8b542f/html5/thumbnails/16.jpg)
Resolving conflicts - option 3
Handmatig mergen
Conflict oplossen optie 2Milk<<<<<<< .mineHot Dog=======Cheese>>>>>>> .r12Juice
MilkHot DogCheeseJuice
$ svn resolved grocery.txt
![Page 17: Subversion workshop](https://reader036.fdocuments.us/reader036/viewer/2022062319/55629602d8b42aa17d8b542f/html5/thumbnails/17.jpg)
Conflict your neighbour
• Checkout http://svnworkshop.enrise.com/svn/TestProject/trunk
• Zorg dat je een conflict krijgt met je buurman • Los het conflict handmatig op
![Page 18: Subversion workshop](https://reader036.fdocuments.us/reader036/viewer/2022062319/55629602d8b42aa17d8b542f/html5/thumbnails/18.jpg)
Branching
![Page 19: Subversion workshop](https://reader036.fdocuments.us/reader036/viewer/2022062319/55629602d8b42aa17d8b542f/html5/thumbnails/19.jpg)
Branching
$ svn cp http://svnworkshop.enrise.com/svn/TestProject/trunk \http://svnworkshop.enrise.com/svn/TestProject/branches/feat-guestbook \-m 'Created branch to implement guestbook feature' Committed revision 13.
svn cp
![Page 20: Subversion workshop](https://reader036.fdocuments.us/reader036/viewer/2022062319/55629602d8b42aa17d8b542f/html5/thumbnails/20.jpg)
Branching
$ svn sw http://svnworkshop.enrise.com/svn/TestProject/branches/feat-guestbook At revision 13.
svn switch
![Page 21: Subversion workshop](https://reader036.fdocuments.us/reader036/viewer/2022062319/55629602d8b42aa17d8b542f/html5/thumbnails/21.jpg)
Branch pattern
![Page 22: Subversion workshop](https://reader036.fdocuments.us/reader036/viewer/2022062319/55629602d8b42aa17d8b542f/html5/thumbnails/22.jpg)
Merging
We willen feat-digitaledition mergen met release-2.1 branch.1.Vind het revisie nummer waarin de feature branch
is aangemaakt• Vind het revisie nummer van de laatste wijziging
in de feature branch• Voer de merge uit• Commit
![Page 23: Subversion workshop](https://reader036.fdocuments.us/reader036/viewer/2022062319/55629602d8b42aa17d8b542f/html5/thumbnails/23.jpg)
Merging
Vind het revisie nummer waarin de rfc branch is aangemaakt
$ svn log --stop-on-copy http://svnworkshop.enrise.com/svn/TestProject/feat-digitaledition<...scroll down...> -------------------------------------------------------r13 | tpater | 2011-03-28 12:20:38 +0200 (Mon, 28 Mar 2011) | 1 line
Created branch to implement digitaledition-------------------------------------------------------$
![Page 24: Subversion workshop](https://reader036.fdocuments.us/reader036/viewer/2022062319/55629602d8b42aa17d8b542f/html5/thumbnails/24.jpg)
Merging
Vind het revisie nummer van de laatste wijziging in de rfc branch
$ svn log -l 1 http://svnworkshop.enrise.com/svn/TestProject/feat-digitaledition-----------------------------------------------------r15 | tpater | 2011-03-28 16:55:53 +0200 (Mon, 28 Mar 2011) | 2 linesImplemented crap
![Page 25: Subversion workshop](https://reader036.fdocuments.us/reader036/viewer/2022062319/55629602d8b42aa17d8b542f/html5/thumbnails/25.jpg)
Merging
svn merge
$ svn merge -r 13:15 http://svnworkshop.enrise.com/svn/TestProject/branches/feat-digitaledition--- Merging r14 through r15 into '.':A test.txt
$ svn ci -m 'Merged with feat-digitaledition'Sending .Adding test.txt
Committed revision 16.
![Page 26: Subversion workshop](https://reader036.fdocuments.us/reader036/viewer/2022062319/55629602d8b42aa17d8b542f/html5/thumbnails/26.jpg)
Merging your ass off
• Mergeo NederlandsDagbladXX/branches/release-2.1o NederlandsDagbladXX/branches/feat-digitaledition
• Repo: http://svnworkshop.enrise.com/svn
![Page 27: Subversion workshop](https://reader036.fdocuments.us/reader036/viewer/2022062319/55629602d8b42aa17d8b542f/html5/thumbnails/27.jpg)
Release management
• Mantis• Deploy • Versie's• Changelogs
![Page 28: Subversion workshop](https://reader036.fdocuments.us/reader036/viewer/2022062319/55629602d8b42aa17d8b542f/html5/thumbnails/28.jpg)
Best practice
1. Committen doe je per rfc/bugfix/wijziging 2. Zorg dat het aantal wijzigingen per commit klein blijven 3. Commit alleen werkende code4. Geef in je commentaar aan WAAROM je een bepaalde wijziging
hebt doorgevoerd.5. Geef in het commentaar niet aan om welke bestanden het gaat,
deze gegevens zijn beschikbaar.
![Page 29: Subversion workshop](https://reader036.fdocuments.us/reader036/viewer/2022062319/55629602d8b42aa17d8b542f/html5/thumbnails/29.jpg)
• http://wiki.4worx.com/index.php/Svn_guidelines• http://www.slideshare.net/lornajane/practical-php-for-svn-
developers• http://www.makebetterthings.com/blogs/php/introduction-to-
version-control-system/
URL's
![Page 30: Subversion workshop](https://reader036.fdocuments.us/reader036/viewer/2022062319/55629602d8b42aa17d8b542f/html5/thumbnails/30.jpg)
Vragen?