Polarion Conf 2012 - CMMi Constellation and Polarion Integration
Polarion Software ® SUBTRAIN Subversion User Training All SubTrain materials are published under...
-
Upload
audrey-bailey -
Category
Documents
-
view
221 -
download
3
Transcript of Polarion Software ® SUBTRAIN Subversion User Training All SubTrain materials are published under...
![Page 1: Polarion Software ® SUBTRAIN Subversion User Training All SubTrain materials are published under the Creative Commons Attribution License and contain material.](https://reader033.fdocuments.in/reader033/viewer/2022051214/56649dbd5503460f94aaffbe/html5/thumbnails/1.jpg)
Polarion Software®
SUBTRAINSubversion User Training
All SubTrain materials are published under the Creative Commons Attribution License and contain material from other works published under the same license. To view a copy of this license, visit http://creativecommons.org/licenses/by/2.0/ or send a letter to Creative Commons, 559 Nathan AbbottWay, Stanford, California 94305, USA. Special thanks to the authors of the comprehensive Subversion book book “Version Control with Subversion” by Ben Collins-Sussman, Brian W. Fitzpatrick, and C. Michael Pilato. You are free to adjust the materials to your needs. Please respect our work by adding the SubTrain logo to your slides.
© Polarion Software®
![Page 2: Polarion Software ® SUBTRAIN Subversion User Training All SubTrain materials are published under the Creative Commons Attribution License and contain material.](https://reader033.fdocuments.in/reader033/viewer/2022051214/56649dbd5503460f94aaffbe/html5/thumbnails/2.jpg)
© Polarion Software® Subtrain – SVN User training – www.polarion.com
“software is hard“Donald E. Knuth, Selected Papers on Computer Science
Preface
2
![Page 3: Polarion Software ® SUBTRAIN Subversion User Training All SubTrain materials are published under the Creative Commons Attribution License and contain material.](https://reader033.fdocuments.in/reader033/viewer/2022051214/56649dbd5503460f94aaffbe/html5/thumbnails/3.jpg)
•Introduction•Architecture•Working cycle •Locking•SVN Properties•Managing versions•Branching strategies•Merging•Configuration
![Page 4: Polarion Software ® SUBTRAIN Subversion User Training All SubTrain materials are published under the Creative Commons Attribution License and contain material.](https://reader033.fdocuments.in/reader033/viewer/2022051214/56649dbd5503460f94aaffbe/html5/thumbnails/4.jpg)
Introduction
![Page 5: Polarion Software ® SUBTRAIN Subversion User Training All SubTrain materials are published under the Creative Commons Attribution License and contain material.](https://reader033.fdocuments.in/reader033/viewer/2022051214/56649dbd5503460f94aaffbe/html5/thumbnails/5.jpg)
© Polarion Software® Subtrain – SVN User training – www.polarion.com
Introduction What is Subversion?
5
You may be interested in
Subversion Training and C
onsulting Services
from Polarion Software's
Subversion experts!
![Page 6: Polarion Software ® SUBTRAIN Subversion User Training All SubTrain materials are published under the Creative Commons Attribution License and contain material.](https://reader033.fdocuments.in/reader033/viewer/2022051214/56649dbd5503460f94aaffbe/html5/thumbnails/6.jpg)
© Polarion Software® Subtrain – SVN User training – www.polarion.com
Introduction Testimonials
6
http://svn.apache.org/repos/asf
Stuart Robertson of Absolute Systems, Inc In the last 4 months we have migrated all of our internal product source repositories from XXX to SVN […]Our largest SVN repository is now 3.7GB and currently has 68806 revisions. We are running SVN 1.0.1 + Apache 2.0.48 on Linux. ...SVN is a superb piece of work, and it is a *huge* step forward from XXX. To put things in perspective... previously we had 26 XXX databases for one product
More testimonials on: http://subversion.tigris.org/testimonials.html
Gustavo Niemeyer of Conectiva LinuxShortening the history a lot, 1 year and 6 months ago, the first revision was committed into our repository.[...]Since then, 5 complete Conectiva Linux distributions were committed into the repository, and every single update in the distribution is done using Subversion. We've already surpassed 50000 revisions, in a 30GB repository. Even though we have had space, memory, and other kinds of problems around the repository, I'm proud to say we have never lost a single bit of information since then.
933300Revisions
813637
![Page 7: Polarion Software ® SUBTRAIN Subversion User Training All SubTrain materials are published under the Creative Commons Attribution License and contain material.](https://reader033.fdocuments.in/reader033/viewer/2022051214/56649dbd5503460f94aaffbe/html5/thumbnails/7.jpg)
Architecture
![Page 8: Polarion Software ® SUBTRAIN Subversion User Training All SubTrain materials are published under the Creative Commons Attribution License and contain material.](https://reader033.fdocuments.in/reader033/viewer/2022051214/56649dbd5503460f94aaffbe/html5/thumbnails/8.jpg)
© Polarion Software® Subtrain – SVN User training – www.polarion.com
Architecture Overview
8
Berkley DB
FSFS
SubversionRepository
Client Interface Repository Interface
GUI client apps
Command lineclient apps
ClientLibrary
Working Copy Management
Library
Repositoryaccess
DAV
SVN
Local
Apache
mod_dav
mod_dav_svn
svnserve
Internet(Any TCP/IP Network)
TortoiseSVN
Subversive
WebClient for SVN
![Page 9: Polarion Software ® SUBTRAIN Subversion User Training All SubTrain materials are published under the Creative Commons Attribution License and contain material.](https://reader033.fdocuments.in/reader033/viewer/2022051214/56649dbd5503460f94aaffbe/html5/thumbnails/9.jpg)
© Polarion Software® Subtrain – SVN User training – www.polarion.com
• file://
Direct repository access to local or network drive.
• http:// Access via WebDAV protocol to Subversion-aware Apache server.
• https:// Same as http://, but with SSL encryption.
• svn:// Unauthenticated TCP/IP access via custom protocol to an svnserve server.
• svn+ssh:// Authenticated, encrypted TCP/IP access via custom protocol to an svn server.
Architecture Access URLs
9
![Page 10: Polarion Software ® SUBTRAIN Subversion User Training All SubTrain materials are published under the Creative Commons Attribution License and contain material.](https://reader033.fdocuments.in/reader033/viewer/2022051214/56649dbd5503460f94aaffbe/html5/thumbnails/10.jpg)
© Polarion Software® Subtrain – SVN User training – www.polarion.com
• file://hostname/path/to/repos
On local machines the hostname part must either be absent or localhost.
• This results in a path like this one:
file:///path/to/repos
• On Windows you have to specify the drive where to find the repository:
file:///X:/path/to/repos
Architecture Access URLs
10
![Page 11: Polarion Software ® SUBTRAIN Subversion User Training All SubTrain materials are published under the Creative Commons Attribution License and contain material.](https://reader033.fdocuments.in/reader033/viewer/2022051214/56649dbd5503460f94aaffbe/html5/thumbnails/11.jpg)
© Polarion Software® Subtrain – SVN User training – www.polarion.com
Architecture The revision numbers
11
10
0 1 2 3 4
1
1
1
1
2
1
1
1
1
2
2
3
1
1
1
1
3
2
3
3
4
4
4
1
1
3
2
3
3
atomic commit gives
Subversion power to version
code, documents,
requirements, tests, graphics, ...
![Page 12: Polarion Software ® SUBTRAIN Subversion User Training All SubTrain materials are published under the Creative Commons Attribution License and contain material.](https://reader033.fdocuments.in/reader033/viewer/2022051214/56649dbd5503460f94aaffbe/html5/thumbnails/12.jpg)
© Polarion Software® Subtrain – SVN User training – www.polarion.com
Architecture The working copy
12
repositoryworking copy
“Checking out” creates a working copy of a specific revision of the repository
22
10
3
.svn
.svn
SVN's config data. Do not edit these folders!
![Page 13: Polarion Software ® SUBTRAIN Subversion User Training All SubTrain materials are published under the Creative Commons Attribution License and contain material.](https://reader033.fdocuments.in/reader033/viewer/2022051214/56649dbd5503460f94aaffbe/html5/thumbnails/13.jpg)
© Polarion Software® Subtrain – SVN User training – www.polarion.com
Architecture Repository Layout 1/3
13
modules on root
•each module has to be checked out separately•commits can not span multiple modules•tags can not span multiple modules in single commit (workaround by 3rd party tools)•„official“ svn layout
![Page 14: Polarion Software ® SUBTRAIN Subversion User Training All SubTrain materials are published under the Creative Commons Attribution License and contain material.](https://reader033.fdocuments.in/reader033/viewer/2022051214/56649dbd5503460f94aaffbe/html5/thumbnails/14.jpg)
© Polarion Software® Subtrain – SVN User training – www.polarion.com
Architecture Repository Layout 2/3
14
trunk/tags/branches on root; each module will be tagged separately
•checkout of all modules is possible•commits can span multiple modules•tags can not span multiple modules in single commit (workaround by 3rd party tools)
![Page 15: Polarion Software ® SUBTRAIN Subversion User Training All SubTrain materials are published under the Creative Commons Attribution License and contain material.](https://reader033.fdocuments.in/reader033/viewer/2022051214/56649dbd5503460f94aaffbe/html5/thumbnails/15.jpg)
© Polarion Software® Subtrain – SVN User training – www.polarion.com
Architecture Repository Layout 3/3
15
trunk/tags/branches on rootall modules will be tagged
•checkout of all modules is possible•commits can span multiple modules•tags can span multiple modules in single commit•maybe difficult to determine relevant modules of a tag
![Page 16: Polarion Software ® SUBTRAIN Subversion User Training All SubTrain materials are published under the Creative Commons Attribution License and contain material.](https://reader033.fdocuments.in/reader033/viewer/2022051214/56649dbd5503460f94aaffbe/html5/thumbnails/16.jpg)
The working cycle
-single person-
![Page 17: Polarion Software ® SUBTRAIN Subversion User Training All SubTrain materials are published under the Creative Commons Attribution License and contain material.](https://reader033.fdocuments.in/reader033/viewer/2022051214/56649dbd5503460f94aaffbe/html5/thumbnails/17.jpg)
© Polarion Software® Subtrain – SVN User training – www.polarion.com
The Working Cycle -single person-
17
svn checkoutsvn update
get content
svn addsvn movesvn delete
Make changes
svn commit
Submit your changes
10
0
10
1
SubversionRepository
![Page 18: Polarion Software ® SUBTRAIN Subversion User Training All SubTrain materials are published under the Creative Commons Attribution License and contain material.](https://reader033.fdocuments.in/reader033/viewer/2022051214/56649dbd5503460f94aaffbe/html5/thumbnails/18.jpg)
© Polarion Software® Subtrain – SVN User training – www.polarion.com
The Working Cycle Check Out
18
• A check out will transfer the project’s contentfrom the repository server to the client machine.
Repository ServerThe client machine
Check out a working copy
2
10
2
![Page 19: Polarion Software ® SUBTRAIN Subversion User Training All SubTrain materials are published under the Creative Commons Attribution License and contain material.](https://reader033.fdocuments.in/reader033/viewer/2022051214/56649dbd5503460f94aaffbe/html5/thumbnails/19.jpg)
© Polarion Software® Subtrain – SVN User training – www.polarion.com
The Working Cycle Check Out
19
sparse checkout
svn checkout file:///c:/subtrain/repo/trunk c:\subtrain\harry
![Page 20: Polarion Software ® SUBTRAIN Subversion User Training All SubTrain materials are published under the Creative Commons Attribution License and contain material.](https://reader033.fdocuments.in/reader033/viewer/2022051214/56649dbd5503460f94aaffbe/html5/thumbnails/20.jpg)
© Polarion Software® Subtrain – SVN User training – www.polarion.com
The Working Cycle Sparse Check Out
20
Fully recursive Immediate children,including folders
Only file children only this item
Important for restructuring repository (eg. /branches directory)!
![Page 21: Polarion Software ® SUBTRAIN Subversion User Training All SubTrain materials are published under the Creative Commons Attribution License and contain material.](https://reader033.fdocuments.in/reader033/viewer/2022051214/56649dbd5503460f94aaffbe/html5/thumbnails/21.jpg)
© Polarion Software® Subtrain – SVN User training – www.polarion.com
The Working Cycle TortoiseSVN Icon Overlays
21
normal
modified
added
non-versioned
read only
locked
ignored
deleted conflict
Where is Polar
Bear icon? :)
svn status c:\subtrain\harry
![Page 22: Polarion Software ® SUBTRAIN Subversion User Training All SubTrain materials are published under the Creative Commons Attribution License and contain material.](https://reader033.fdocuments.in/reader033/viewer/2022051214/56649dbd5503460f94aaffbe/html5/thumbnails/22.jpg)
© Polarion Software® Subtrain – SVN User training – www.polarion.com
The Working Cycle Adding and moving files
22
add folder/files via context menu to SVNmove or copy folder/files via dragging with right mouse button
svn add c:\subtrain\harry\libs svn move c:\subtrain\harry\library.txt c:\subtrain\harry\libs\library.txt
![Page 23: Polarion Software ® SUBTRAIN Subversion User Training All SubTrain materials are published under the Creative Commons Attribution License and contain material.](https://reader033.fdocuments.in/reader033/viewer/2022051214/56649dbd5503460f94aaffbe/html5/thumbnails/23.jpg)
© Polarion Software® Subtrain – SVN User training – www.polarion.com
The Working Cycle Deleting files
23
•files will immediately be removed from your working copy•folders will be marked as deleted until commit
svn delete c:\subtrain\harry\file2del.txt
![Page 24: Polarion Software ® SUBTRAIN Subversion User Training All SubTrain materials are published under the Creative Commons Attribution License and contain material.](https://reader033.fdocuments.in/reader033/viewer/2022051214/56649dbd5503460f94aaffbe/html5/thumbnails/24.jpg)
© Polarion Software® Subtrain – SVN User training – www.polarion.com
The Working Cycle Comparing files
24
svn diff c:\subtrain\harry\libs\library.txt
![Page 25: Polarion Software ® SUBTRAIN Subversion User Training All SubTrain materials are published under the Creative Commons Attribution License and contain material.](https://reader033.fdocuments.in/reader033/viewer/2022051214/56649dbd5503460f94aaffbe/html5/thumbnails/25.jpg)
© Polarion Software® Subtrain – SVN User training – www.polarion.com
The Working Cycle Commit
25
A commit transfers the project’s modified filesfrom the client machine to the repository server.
Repository ServerThe client machine
commit changes to repository
21
0
2
3
![Page 26: Polarion Software ® SUBTRAIN Subversion User Training All SubTrain materials are published under the Creative Commons Attribution License and contain material.](https://reader033.fdocuments.in/reader033/viewer/2022051214/56649dbd5503460f94aaffbe/html5/thumbnails/26.jpg)
© Polarion Software® Subtrain – SVN User training – www.polarion.com
The Working Cycle Commit
26
svn commit -m"initial project" c:\subtrain\harry
![Page 27: Polarion Software ® SUBTRAIN Subversion User Training All SubTrain materials are published under the Creative Commons Attribution License and contain material.](https://reader033.fdocuments.in/reader033/viewer/2022051214/56649dbd5503460f94aaffbe/html5/thumbnails/27.jpg)
© Polarion Software® Subtrain – SVN User training – www.polarion.com
The Working Cycle Show log / show history
27
svn log c:\subtrain\harry
![Page 28: Polarion Software ® SUBTRAIN Subversion User Training All SubTrain materials are published under the Creative Commons Attribution License and contain material.](https://reader033.fdocuments.in/reader033/viewer/2022051214/56649dbd5503460f94aaffbe/html5/thumbnails/28.jpg)
© Polarion Software® Subtrain – SVN User training – www.polarion.com
The Working Cycle Warning
28
WARNING WARNING • Never move, delete, copy files or
create directories without the Subversion commands:• svn move• svn delete• svn copy• svn mkdir
• Easy if using TortoiseSVN as it is integrated directly in Windows Explorer, or Subversive integrated into Eclipse, or Polarion Track & Wiki
![Page 29: Polarion Software ® SUBTRAIN Subversion User Training All SubTrain materials are published under the Creative Commons Attribution License and contain material.](https://reader033.fdocuments.in/reader033/viewer/2022051214/56649dbd5503460f94aaffbe/html5/thumbnails/29.jpg)
© Polarion Software® Subtrain – SVN User training – www.polarion.com
The Working Cycle Exercise I: adding files
29
• checkout trunk (into a folder named „harry“)
• create two files in your working copy (create the following content):• main_e.txt• library.txt
• commit your changes as „initial project“
![Page 30: Polarion Software ® SUBTRAIN Subversion User Training All SubTrain materials are published under the Creative Commons Attribution License and contain material.](https://reader033.fdocuments.in/reader033/viewer/2022051214/56649dbd5503460f94aaffbe/html5/thumbnails/30.jpg)
© Polarion Software® Subtrain – SVN User training – www.polarion.com
The Working Cycle Exercise II: restructuring files
30
•rename main_e.txt into main.txt
•create a folder named libs and add it to SVN
•move library.txt into libs (modify main.txt accordingly!)
•commit your changes as „restructuring project“
![Page 31: Polarion Software ® SUBTRAIN Subversion User Training All SubTrain materials are published under the Creative Commons Attribution License and contain material.](https://reader033.fdocuments.in/reader033/viewer/2022051214/56649dbd5503460f94aaffbe/html5/thumbnails/31.jpg)
The working cycle
-teamwork-
![Page 32: Polarion Software ® SUBTRAIN Subversion User Training All SubTrain materials are published under the Creative Commons Attribution License and contain material.](https://reader033.fdocuments.in/reader033/viewer/2022051214/56649dbd5503460f94aaffbe/html5/thumbnails/32.jpg)
© Polarion Software® Subtrain – SVN User training – www.polarion.com
The working Cycle Teamwork
32
svn checkoutsvn update
get content
svn addsvn movesvn delete
Make changes
svn status -u
See what was changed in the repository in the meantime
svn update
Update your local copy
svn diffsvn resolved
Merge your changesResolve conflicts
svn commit
Submit your changes
10
5
10
0
10
6
SubversionRepository
![Page 33: Polarion Software ® SUBTRAIN Subversion User Training All SubTrain materials are published under the Creative Commons Attribution License and contain material.](https://reader033.fdocuments.in/reader033/viewer/2022051214/56649dbd5503460f94aaffbe/html5/thumbnails/33.jpg)
© Polarion Software® Subtrain – SVN User training – www.polarion.com
The working Cycle Teamwork 1/5
33
Harry and Sally both check out a directory in their repository.
Both get the same revision of this particular directory copied to their machine.
Their working copy.
![Page 34: Polarion Software ® SUBTRAIN Subversion User Training All SubTrain materials are published under the Creative Commons Attribution License and contain material.](https://reader033.fdocuments.in/reader033/viewer/2022051214/56649dbd5503460f94aaffbe/html5/thumbnails/34.jpg)
© Polarion Software® Subtrain – SVN User training – www.polarion.com
The working Cycle Teamwork 2/5
34
Harry and Sally change different lines in the same file.
Sally commits first and creates revision 2.
![Page 35: Polarion Software ® SUBTRAIN Subversion User Training All SubTrain materials are published under the Creative Commons Attribution License and contain material.](https://reader033.fdocuments.in/reader033/viewer/2022051214/56649dbd5503460f94aaffbe/html5/thumbnails/35.jpg)
© Polarion Software® Subtrain – SVN User training – www.polarion.com
The working Cycle Teamwork 3/5
35
As Harry tries to commit his changes, her receives an error telling him that his working copy is probably out of date.
His commit fails.
Polarion Software’s integrated Wiki removes the information barrier between tracker, collaboration tool, and VCS.
![Page 36: Polarion Software ® SUBTRAIN Subversion User Training All SubTrain materials are published under the Creative Commons Attribution License and contain material.](https://reader033.fdocuments.in/reader033/viewer/2022051214/56649dbd5503460f94aaffbe/html5/thumbnails/36.jpg)
© Polarion Software® Subtrain – SVN User training – www.polarion.com
The working Cycle Teamwork 4/5
36
Harry has to update his working copy and SVN integrates Sallies changes into his working copy.
![Page 37: Polarion Software ® SUBTRAIN Subversion User Training All SubTrain materials are published under the Creative Commons Attribution License and contain material.](https://reader033.fdocuments.in/reader033/viewer/2022051214/56649dbd5503460f94aaffbe/html5/thumbnails/37.jpg)
© Polarion Software® Subtrain – SVN User training – www.polarion.com
The working Cycle Teamwork 5/5
37
Now Harry is ready tocommit his changes.
He creates revision 3.
![Page 38: Polarion Software ® SUBTRAIN Subversion User Training All SubTrain materials are published under the Creative Commons Attribution License and contain material.](https://reader033.fdocuments.in/reader033/viewer/2022051214/56649dbd5503460f94aaffbe/html5/thumbnails/38.jpg)
© Polarion Software® Subtrain – SVN User training – www.polarion.com
The working CycleCheck what other users
have changed
38
svn status -uv c:\subtrain\harry
![Page 39: Polarion Software ® SUBTRAIN Subversion User Training All SubTrain materials are published under the Creative Commons Attribution License and contain material.](https://reader033.fdocuments.in/reader033/viewer/2022051214/56649dbd5503460f94aaffbe/html5/thumbnails/39.jpg)
© Polarion Software® Subtrain – SVN User training – www.polarion.com
The working Cycle Exercise III: teamwork
39
•check out trunk a second time into a folder called „Sally“
•change the third line in Harry's working copy
•commit Harry's changes as „Harry's 1st changes in our library“
•change the first line in Sally's working copy and try to commit
•update Sally's working copy
•commit Sally's changes as „Sally's 1st changes added“
'
'
![Page 40: Polarion Software ® SUBTRAIN Subversion User Training All SubTrain materials are published under the Creative Commons Attribution License and contain material.](https://reader033.fdocuments.in/reader033/viewer/2022051214/56649dbd5503460f94aaffbe/html5/thumbnails/40.jpg)
© Polarion Software® Subtrain – SVN User training – www.polarion.com
Teamwork Conflicts
40
How does a conflict evolve?
This is a good
question!
![Page 41: Polarion Software ® SUBTRAIN Subversion User Training All SubTrain materials are published under the Creative Commons Attribution License and contain material.](https://reader033.fdocuments.in/reader033/viewer/2022051214/56649dbd5503460f94aaffbe/html5/thumbnails/41.jpg)
© Polarion Software® Subtrain – SVN User training – www.polarion.com
Teamwork Conflicts 1/6
41
Harry and Sally check out their repo again.
This time they change the same lines in this particular file.
![Page 42: Polarion Software ® SUBTRAIN Subversion User Training All SubTrain materials are published under the Creative Commons Attribution License and contain material.](https://reader033.fdocuments.in/reader033/viewer/2022051214/56649dbd5503460f94aaffbe/html5/thumbnails/42.jpg)
© Polarion Software® Subtrain – SVN User training – www.polarion.com
Teamwork Conflicts 2/6
42
Sally commits her changes and creates a new revision.
Her changes are submitted to the repository
![Page 43: Polarion Software ® SUBTRAIN Subversion User Training All SubTrain materials are published under the Creative Commons Attribution License and contain material.](https://reader033.fdocuments.in/reader033/viewer/2022051214/56649dbd5503460f94aaffbe/html5/thumbnails/43.jpg)
© Polarion Software® Subtrain – SVN User training – www.polarion.com
Teamwork Conflicts 3/6
43
As Harry tries to commit his changes, he receives the well known “out-of-date”-error and an advice to update his working copy.
![Page 44: Polarion Software ® SUBTRAIN Subversion User Training All SubTrain materials are published under the Creative Commons Attribution License and contain material.](https://reader033.fdocuments.in/reader033/viewer/2022051214/56649dbd5503460f94aaffbe/html5/thumbnails/44.jpg)
© Polarion Software® Subtrain – SVN User training – www.polarion.com
Teamwork Conflicts 4/6
44
As both Harry and Sally had changed the same lines, SVN cannot decide how to merge Harry's changes and the changes from the repository.
So SVN raises a conflict which must be resolved by Harry.
![Page 45: Polarion Software ® SUBTRAIN Subversion User Training All SubTrain materials are published under the Creative Commons Attribution License and contain material.](https://reader033.fdocuments.in/reader033/viewer/2022051214/56649dbd5503460f94aaffbe/html5/thumbnails/45.jpg)
© Polarion Software® Subtrain – SVN User training – www.polarion.com
Teamwork Conflicts 5/6
45
Harry cannot commit a file which is in a conflicted state.
Harry has to resolve the conflict/s and then notifies SVN via
svn resolved
![Page 46: Polarion Software ® SUBTRAIN Subversion User Training All SubTrain materials are published under the Creative Commons Attribution License and contain material.](https://reader033.fdocuments.in/reader033/viewer/2022051214/56649dbd5503460f94aaffbe/html5/thumbnails/46.jpg)
© Polarion Software® Subtrain – SVN User training – www.polarion.com
Teamwork Conflicts 6/6
46
Harry commits his changes and creates a new revision.
![Page 47: Polarion Software ® SUBTRAIN Subversion User Training All SubTrain materials are published under the Creative Commons Attribution License and contain material.](https://reader033.fdocuments.in/reader033/viewer/2022051214/56649dbd5503460f94aaffbe/html5/thumbnails/47.jpg)
© Polarion Software® Subtrain – SVN User training – www.polarion.com
The Working Cycle Exercise IV: conflicts
47
•update Harry's working copy to get Sally's last changes
•change the fifth (last) line in Harry's working copy
•commit Harry's changes as „Harry's 2nd changes in our library“
•change the fifth (last) in Sally's working copy and try to commit
•update Sally's working copy
•edit and resolve the conflict:
•commit Sally's changes as „Sally's changes added“
'
'
'
'
'
'
'
'
'
'
![Page 48: Polarion Software ® SUBTRAIN Subversion User Training All SubTrain materials are published under the Creative Commons Attribution License and contain material.](https://reader033.fdocuments.in/reader033/viewer/2022051214/56649dbd5503460f94aaffbe/html5/thumbnails/48.jpg)
Locking
![Page 49: Polarion Software ® SUBTRAIN Subversion User Training All SubTrain materials are published under the Creative Commons Attribution License and contain material.](https://reader033.fdocuments.in/reader033/viewer/2022051214/56649dbd5503460f94aaffbe/html5/thumbnails/49.jpg)
© Polarion Software® Subtrain – SVN User training – www.polarion.com
• The default model of Subversion is the “copy-edit-merge” model.This means:
• Check out a working copy
• Edit content
• Merge changes from server
• Commit changes
• But there are situations in which this model might cause problems:
• Binary files
• files which are frequently updated by many users
Locking Copy-Edit-Merge Model
49
![Page 50: Polarion Software ® SUBTRAIN Subversion User Training All SubTrain materials are published under the Creative Commons Attribution License and contain material.](https://reader033.fdocuments.in/reader033/viewer/2022051214/56649dbd5503460f94aaffbe/html5/thumbnails/50.jpg)
© Polarion Software® Subtrain – SVN User training – www.polarion.com
• You can’t use the “copy-modify-merge” model with files like Word or Excel (this applies for other types too) because you can’t merge those files.
• So you have to find another way. There are two possible solutions:
• You can lock the file before you start to edit a file of the above type (called optimistic locking). You do not have to lock a file.
• The second one is to use the “pessimistic-locking” alternative.
You have to lock the file, otherwise it will be write-protected
Locking The Two Models
50
![Page 51: Polarion Software ® SUBTRAIN Subversion User Training All SubTrain materials are published under the Creative Commons Attribution License and contain material.](https://reader033.fdocuments.in/reader033/viewer/2022051214/56649dbd5503460f94aaffbe/html5/thumbnails/51.jpg)
© Polarion Software® Subtrain – SVN User training – www.polarion.com
• To lock a file just type the svn lock command with a particular destination.
• Use a descriptive lock message to tell your co-workers why you need this lock
LockingOptimistic Locking:
How to lock a file
51
svn lock –m “I need to lock this file“ c:\subtrain\harry\main.txt
![Page 52: Polarion Software ® SUBTRAIN Subversion User Training All SubTrain materials are published under the Creative Commons Attribution License and contain material.](https://reader033.fdocuments.in/reader033/viewer/2022051214/56649dbd5503460f94aaffbe/html5/thumbnails/52.jpg)
© Polarion Software® Subtrain – SVN User training – www.polarion.com
• To unlock a file just type the svn unlock command with a particular destination.
• Locks will be released automatically if you commit your changes.
LockingOptimistic Locking:
Unlock a file
52
svn unlock c:\subtrain\harry\main.txt
![Page 53: Polarion Software ® SUBTRAIN Subversion User Training All SubTrain materials are published under the Creative Commons Attribution License and contain material.](https://reader033.fdocuments.in/reader033/viewer/2022051214/56649dbd5503460f94aaffbe/html5/thumbnails/53.jpg)
© Polarion Software® Subtrain – SVN User training – www.polarion.com
• Pessimistic-Locking:• You can put a special property to a file svn:needs-lock with any
value.
• The result is if you check out a file with the property set, the file will be marked as read-only.
• Advantage:• The application you use with this type of file will give you a
reminder about the read-only state.
• Disadvantage:• The system isn't flawless, either. It's possible that even when
a file has the property, the read-only reminder won't always work. Sometimes applications misbehave and “hijack” the read-only file, silently allowing users to edit and save the file anyway. Unfortunately there's not much Subversion can do about this.
Locking Pessimistic Locking
53
![Page 54: Polarion Software ® SUBTRAIN Subversion User Training All SubTrain materials are published under the Creative Commons Attribution License and contain material.](https://reader033.fdocuments.in/reader033/viewer/2022051214/56649dbd5503460f94aaffbe/html5/thumbnails/54.jpg)
© Polarion Software® Subtrain – SVN User training – www.polarion.com
Locking Pessimistic Locking
54
svn propset svn:needs-lock T c:\subtrain\harry\main.txt
![Page 55: Polarion Software ® SUBTRAIN Subversion User Training All SubTrain materials are published under the Creative Commons Attribution License and contain material.](https://reader033.fdocuments.in/reader033/viewer/2022051214/56649dbd5503460f94aaffbe/html5/thumbnails/55.jpg)
© Polarion Software® Subtrain – SVN User training – www.polarion.com
Locking Take a look on the server…
55
svn status -uv c:\subtrain\harry
![Page 56: Polarion Software ® SUBTRAIN Subversion User Training All SubTrain materials are published under the Creative Commons Attribution License and contain material.](https://reader033.fdocuments.in/reader033/viewer/2022051214/56649dbd5503460f94aaffbe/html5/thumbnails/56.jpg)
© Polarion Software® Subtrain – SVN User training – www.polarion.com
• lock the main.txt in Harry's working copy
• change the main.txt in Sally's working copy
• try to commit Sally's changes
• change main.txt in Harry's working copy
• commit changes as „changes to locked file“
• revert Sally's changes
• update Sally's working copy
Locking Exercise V: optimistic locking
56
Polarion is
optimistic!
![Page 57: Polarion Software ® SUBTRAIN Subversion User Training All SubTrain materials are published under the Creative Commons Attribution License and contain material.](https://reader033.fdocuments.in/reader033/viewer/2022051214/56649dbd5503460f94aaffbe/html5/thumbnails/57.jpg)
© Polarion Software® Subtrain – SVN User training – www.polarion.com
• set property svn:needs-lock on main.txt in Sally's working copy
• commit as "enabling pessimistic locking"
• update Harry's working copy
• try to change main.txt in Harry's working copy
• get lock on main.txt in Sally's working copy
• change Sally's main.txt
• try to get lock on main.txt in Harry's working copy
• commit Sally's working copy as „new changes to locked file“
• remove svn:needs-lock and commit as „disabling pessimistic locking“
LockingExercise VI:
pessimistic locking
57
![Page 58: Polarion Software ® SUBTRAIN Subversion User Training All SubTrain materials are published under the Creative Commons Attribution License and contain material.](https://reader033.fdocuments.in/reader033/viewer/2022051214/56649dbd5503460f94aaffbe/html5/thumbnails/58.jpg)
SVN properties
![Page 59: Polarion Software ® SUBTRAIN Subversion User Training All SubTrain materials are published under the Creative Commons Attribution License and contain material.](https://reader033.fdocuments.in/reader033/viewer/2022051214/56649dbd5503460f94aaffbe/html5/thumbnails/59.jpg)
© Polarion Software® Subtrain – SVN User training – www.polarion.com
• Subversion provides interfaces for adding, modifying, and removing
versioned metadata on each of your versioned directories and files.
• We refer to this metadata as properties, which exist as two-column tables
that map property names to values attached to each item in your working
copy
• The names and values of the properties can be whatever you want them to
be, with the constraint that the names must contain only ASCII characters
• Properties are versioned just like the textual contents of your files. You can
modify, commit, and revert property changes
• Every property-change must be committed just as the resources that exist
in your working copy
SVN properties Overview
59
![Page 60: Polarion Software ® SUBTRAIN Subversion User Training All SubTrain materials are published under the Creative Commons Attribution License and contain material.](https://reader033.fdocuments.in/reader033/viewer/2022051214/56649dbd5503460f94aaffbe/html5/thumbnails/60.jpg)
© Polarion Software® Subtrain – SVN User training – www.polarion.com
• svn:eol-style
• svn:executable
• svn:externals
• svn:ignore
• svn:keywords
• svn:needs-lock
• svn:mime-type
• svn:merge-info
SVN properties
60
do not edit this property!
Did you know?Polarion Software provides software and systems development solutions to over 500,000 licensed end users in over 65 countries. You may be interested in our solutions.
![Page 61: Polarion Software ® SUBTRAIN Subversion User Training All SubTrain materials are published under the Creative Commons Attribution License and contain material.](https://reader033.fdocuments.in/reader033/viewer/2022051214/56649dbd5503460f94aaffbe/html5/thumbnails/61.jpg)
© Polarion Software® Subtrain – SVN User training – www.polarion.com
Properties List Properties
61
• You can get a list of properties using the following command:
svn proplist --verbose destinationdestination
1) The Subversion “proplist”-command.2) Print out much information (verbose).3) The file/directory.
![Page 62: Polarion Software ® SUBTRAIN Subversion User Training All SubTrain materials are published under the Creative Commons Attribution License and contain material.](https://reader033.fdocuments.in/reader033/viewer/2022051214/56649dbd5503460f94aaffbe/html5/thumbnails/62.jpg)
© Polarion Software® Subtrain – SVN User training – www.polarion.com
Properties Get Properties
62
• You can set a property using the following command:
svn propget propertynamepropertyname destinationdestination
1) The Subversion “propget”-command.2) The name of the property e.g. svn:ignore.3) The file/directory for which the property should be set.
![Page 63: Polarion Software ® SUBTRAIN Subversion User Training All SubTrain materials are published under the Creative Commons Attribution License and contain material.](https://reader033.fdocuments.in/reader033/viewer/2022051214/56649dbd5503460f94aaffbe/html5/thumbnails/63.jpg)
© Polarion Software® Subtrain – SVN User training – www.polarion.com
Properties Set Properties
63
• You can set a property using the following command:
svn propset propertynamepropertyname valuevalue destinationdestination
1) The Subversion “propset”-command.2) The name of the property e.g. svn:ignore.3) The value for the property.4) The file/directory for which the property should be set.
![Page 64: Polarion Software ® SUBTRAIN Subversion User Training All SubTrain materials are published under the Creative Commons Attribution License and contain material.](https://reader033.fdocuments.in/reader033/viewer/2022051214/56649dbd5503460f94aaffbe/html5/thumbnails/64.jpg)
© Polarion Software® Subtrain – SVN User training – www.polarion.com
Properties Delete Properties
64
• You can set a property using the following command:
svn propdel propertynamepropertyname destinationdestination
1) The Subversion “propdel”-command.2) The name of the property e.g. svn:needs-lock.3) The file/directory for which the property should be set.
![Page 65: Polarion Software ® SUBTRAIN Subversion User Training All SubTrain materials are published under the Creative Commons Attribution License and contain material.](https://reader033.fdocuments.in/reader033/viewer/2022051214/56649dbd5503460f94aaffbe/html5/thumbnails/65.jpg)
© Polarion Software® Subtrain – SVN User training – www.polarion.com
Properties TortoiseSVN Properties
65
![Page 66: Polarion Software ® SUBTRAIN Subversion User Training All SubTrain materials are published under the Creative Commons Attribution License and contain material.](https://reader033.fdocuments.in/reader033/viewer/2022051214/56649dbd5503460f94aaffbe/html5/thumbnails/66.jpg)
© Polarion Software® Subtrain – SVN User training – www.polarion.com
PropertiesSpecial SVN Properties:
ignore
66
• svn:ignore
• Tell Subversion which files and subdirectories to ignore• Equivalent to CVS’s .cvsignore file
• You can define a special file/directory or patterns defining the files/directories which will be ignored.
• You can suppress the exclusion if you use the --no-ignore flag for the svn status command.
![Page 67: Polarion Software ® SUBTRAIN Subversion User Training All SubTrain materials are published under the Creative Commons Attribution License and contain material.](https://reader033.fdocuments.in/reader033/viewer/2022051214/56649dbd5503460f94aaffbe/html5/thumbnails/67.jpg)
© Polarion Software® Subtrain – SVN User training – www.polarion.com
• svn:keywords• Keyword substitution in files.
The only available keyword substitutions are:• LastChangedDate, LastChangedRevision• LastChangedBy, HeadURL, Id, Header
• Only keywords listed in the svn:keywords property value are replaced in the file
$LastChangedDate: 2008-07-22 21:42:37 -0700 (Sun, 22 Jul 2008) $$LastChangedRevision: 14 $$LastChangedBy: sally $$HeadURL: file:///c:/subtrain/repo/trunk/main.txt $$Id: main.txt 14 2008-07-28 21:30:43Z sally $$Header: file:///c:/subtrain/repo/trunk/main.txt 148
2008-07-28 21:30:43Z sally $
• Special fixed width keyword substitutions:use $Author:: $ instead of $Author$
PropertiesSpecial SVN Properties:
keywords
67
![Page 68: Polarion Software ® SUBTRAIN Subversion User Training All SubTrain materials are published under the Creative Commons Attribution License and contain material.](https://reader033.fdocuments.in/reader033/viewer/2022051214/56649dbd5503460f94aaffbe/html5/thumbnails/68.jpg)
© Polarion Software® Subtrain – SVN User training – www.polarion.com
What is the format of timestamps in Subversion?
Subversion will always store timestamps in UTC(Coordinated Universal Time)
$Id: calc.c 148 2002-07-28 21:30:43Z sally $
On Wikipedia:The UTC time zone is sometimes denoted by the letter Z – a
reference to the equivalent nautical time zone (GMT), which has been denoted by a Z since about 1950. The letter also refers to the "zone description" of zero hours, which has been used since 1920 (see time zone history). Since the NATO phonetic alphabet and amateur radio word for Z is "Zulu", UTC is sometimes known as Zulu time.
http://en.wikipedia.org/wiki/Coordinated_Universal_Time#Time_zones
PropertiesSpecial SVN Properties:
Timestamps in Subversion
68
![Page 69: Polarion Software ® SUBTRAIN Subversion User Training All SubTrain materials are published under the Creative Commons Attribution License and contain material.](https://reader033.fdocuments.in/reader033/viewer/2022051214/56649dbd5503460f94aaffbe/html5/thumbnails/69.jpg)
© Polarion Software® Subtrain – SVN User training – www.polarion.com
PropertiesSpecial SVN Properties:
executable
69
• svn:executable• For files only, sets the executable bit• Useful for scripts and programs• The executable bit is set when the property is applied to the file, not when
the commit is performed• The executable bit is removed when this property is removed from the file.• The property value does not matter, any value will do.
![Page 70: Polarion Software ® SUBTRAIN Subversion User Training All SubTrain materials are published under the Creative Commons Attribution License and contain material.](https://reader033.fdocuments.in/reader033/viewer/2022051214/56649dbd5503460f94aaffbe/html5/thumbnails/70.jpg)
© Polarion Software® Subtrain – SVN User training – www.polarion.com
PropertiesSpecial SVN Properties:
mime-type
70
• svn:mime-type• SVN assumes a text file if svn:mime-type is not set or is set and matches “text/*”, otherwise it is a binary file.• If a file is a text file SVN can use diff and patch to update changes from the
repository.• Useful for setting the MIME type of a file for web browsing.
![Page 71: Polarion Software ® SUBTRAIN Subversion User Training All SubTrain materials are published under the Creative Commons Attribution License and contain material.](https://reader033.fdocuments.in/reader033/viewer/2022051214/56649dbd5503460f94aaffbe/html5/thumbnails/71.jpg)
© Polarion Software® Subtrain – SVN User training – www.polarion.com
PropertiesSpecial SVN Properties:
externals
71
• svn:externals• If you use a library (source form) as part of your development which is used in more than one project, you can make a kind of a link to the repository for that library. This avoids redundant copies of the library’s source code.
• Advantages:• Just a single point of development for 3rd party library or libraries at all.
• Disadvantages:• No automatic commits etc. in directories which are created by svn:externals.• If you create a branch the externalized content will NOT be branched accordingly.• If you create a tag the externalized content will NOT be frozen.
For example: you create a tag in revision 10. Six weeks later you export it to deliver it to a customer. As the externalized content was NOT frozen you get the latest (HEAD revision e.g. rev 24) externalized code and have therefore exported a source-code bundle which does not look the same as six weeks ago.
![Page 72: Polarion Software ® SUBTRAIN Subversion User Training All SubTrain materials are published under the Creative Commons Attribution License and contain material.](https://reader033.fdocuments.in/reader033/viewer/2022051214/56649dbd5503460f94aaffbe/html5/thumbnails/72.jpg)
© Polarion Software® Subtrain – SVN User training – www.polarion.com
PropertiesSpecial SVN Properties:
externals
72
![Page 73: Polarion Software ® SUBTRAIN Subversion User Training All SubTrain materials are published under the Creative Commons Attribution License and contain material.](https://reader033.fdocuments.in/reader033/viewer/2022051214/56649dbd5503460f94aaffbe/html5/thumbnails/73.jpg)
© Polarion Software® Subtrain – SVN User training – www.polarion.com
PropertiesSpecial SVN Properties:
externals
73
new svn:externals syntax
-r 1234 http://example.com/repos/foo bar -r HEAD ^/same/repo/libraries/common commons -r 3456 //another_svr.net/repo/prj_a framework
Relative URLs:
../ parent directory ^/ repository root // url scheme / servername
![Page 74: Polarion Software ® SUBTRAIN Subversion User Training All SubTrain materials are published under the Creative Commons Attribution License and contain material.](https://reader033.fdocuments.in/reader033/viewer/2022051214/56649dbd5503460f94aaffbe/html5/thumbnails/74.jpg)
© Polarion Software® Subtrain – SVN User training – www.polarion.com
PropertiesSpecial SVN Properties:
externals
74
Subversion 1.6 introduced external definitions for files.
File externals are configured just like externals for directories and appear as a versioned file in the working copy.
Limitations:•Not all clients support svn 1.6 yet.•Binary files are not supported•Deletion is not supported•Only applicable if the file lies in the same repository
![Page 75: Polarion Software ® SUBTRAIN Subversion User Training All SubTrain materials are published under the Creative Commons Attribution License and contain material.](https://reader033.fdocuments.in/reader033/viewer/2022051214/56649dbd5503460f94aaffbe/html5/thumbnails/75.jpg)
© Polarion Software® Subtrain – SVN User training – www.polarion.com
PropertiesSpecial SVN Properties:
eol-style
75
• svn:eol-style• Native
• Convert all CR, CRLF and LF’s to the system’s native eol• CR
• Convert all CRLF and LF’s to CR’s• CRLF
• Convert all CR and LF’s to CRLF’s• LF
• Convert all CR and CRLF’s to LF’s
• Property not set, this is the default when a file is added.Do not change end of lines upon check in or update.
![Page 76: Polarion Software ® SUBTRAIN Subversion User Training All SubTrain materials are published under the Creative Commons Attribution License and contain material.](https://reader033.fdocuments.in/reader033/viewer/2022051214/56649dbd5503460f94aaffbe/html5/thumbnails/76.jpg)
Managing versions
![Page 77: Polarion Software ® SUBTRAIN Subversion User Training All SubTrain materials are published under the Creative Commons Attribution License and contain material.](https://reader033.fdocuments.in/reader033/viewer/2022051214/56649dbd5503460f94aaffbe/html5/thumbnails/77.jpg)
© Polarion Software® Subtrain – SVN User training – www.polarion.com
• Why do we need tags?• Mark a release state of a product.
• Mark a snapshot of the current development.
• Typical Release names:• Release 1.0.0, Release 2.3.1, PRODUCT 1.0.0RC1 etc.
• A Tag name should be unique to mark all components of the given product (source code and documentation) and is used to reproduce the state of the tag in the future.
Tagging Why Tagging?
77
![Page 78: Polarion Software ® SUBTRAIN Subversion User Training All SubTrain materials are published under the Creative Commons Attribution License and contain material.](https://reader033.fdocuments.in/reader033/viewer/2022051214/56649dbd5503460f94aaffbe/html5/thumbnails/78.jpg)
© Polarion Software® Subtrain – SVN User training – www.polarion.com
• If we take a look at the architecture chapter we really don‘t need a special tag. We only need to write down the revision number.
• But human beings have other requirements.• They like to have self-explanatory tag names which are more
handy.
• But the question is: • Where to put the tag information in the repository?
Tagging Why Tagging?
78
![Page 79: Polarion Software ® SUBTRAIN Subversion User Training All SubTrain materials are published under the Creative Commons Attribution License and contain material.](https://reader033.fdocuments.in/reader033/viewer/2022051214/56649dbd5503460f94aaffbe/html5/thumbnails/79.jpg)
© Polarion Software® Subtrain – SVN User training – www.polarion.com
Tagging Tagging by Copy
79
To create a release tag just copy …
…anyway you have the revision number …
tags
Project 1
Root
Release 1
trunk
I'm a copy!
![Page 80: Polarion Software ® SUBTRAIN Subversion User Training All SubTrain materials are published under the Creative Commons Attribution License and contain material.](https://reader033.fdocuments.in/reader033/viewer/2022051214/56649dbd5503460f94aaffbe/html5/thumbnails/80.jpg)
© Polarion Software® Subtrain – SVN User training – www.polarion.com
Tagging Exercise VII: tagging
80
•create a tag named „/tags/release_01“ with commit message
„creating tag after locking exercise“
svn copy –m “creating release 01“file:///c:/subtrain/repo/trunk file:///c:/subtrain/repo/tags/release_01
![Page 81: Polarion Software ® SUBTRAIN Subversion User Training All SubTrain materials are published under the Creative Commons Attribution License and contain material.](https://reader033.fdocuments.in/reader033/viewer/2022051214/56649dbd5503460f94aaffbe/html5/thumbnails/81.jpg)
© Polarion Software® Subtrain – SVN User training – www.polarion.com
Branches Why branching?
81
• Assume the following situation:• You have implemented a piece of software and it has been delivered to
your customer.
• Before you delivered the product you have created a tag, let’s say „Release 1.0.0“
• Your current development crew is working on Release 1.1.0 with new features.
• And now Murphy‘s Law caught you:• Your customer calls you and reports that he has found a bug in your
software.
![Page 82: Polarion Software ® SUBTRAIN Subversion User Training All SubTrain materials are published under the Creative Commons Attribution License and contain material.](https://reader033.fdocuments.in/reader033/viewer/2022051214/56649dbd5503460f94aaffbe/html5/thumbnails/82.jpg)
© Polarion Software® Subtrain – SVN User training – www.polarion.com
Branches Why branching?
82
• The development has continued after the release of RELEASE 1.0.0• You want to fix the bug
to satisfy your customer!• In your current development
you have enhanced many of the product’s functionsbut you don‘t want to delivera product with morefeatures and you haven‘tfinished testing yet.
• How to solve this situation?Main line of development
RELEASE 1.0.0
![Page 83: Polarion Software ® SUBTRAIN Subversion User Training All SubTrain materials are published under the Creative Commons Attribution License and contain material.](https://reader033.fdocuments.in/reader033/viewer/2022051214/56649dbd5503460f94aaffbe/html5/thumbnails/83.jpg)
© Polarion Software® Subtrain – SVN User training – www.polarion.com
Branches Why branching?
83
• Based on the tag you‘ve created during the delivery you can check out the exact state of the delivery.
• You create a Branch tofix the bug in the software.
• After you have fixed the bugyou can tag the Branch and deliver another version to the customer.
• Your customer is satisfiedthat you fixed the bug so fast.
• You haven‘t disturbed thecurrent development.
RELEASE 1.0.0
BUGFIX_BRANCH
RELEASE 1.0.1
![Page 84: Polarion Software ® SUBTRAIN Subversion User Training All SubTrain materials are published under the Creative Commons Attribution License and contain material.](https://reader033.fdocuments.in/reader033/viewer/2022051214/56649dbd5503460f94aaffbe/html5/thumbnails/84.jpg)
© Polarion Software® Subtrain – SVN User training – www.polarion.com
BranchesCreating branches by
copy in repository
84
branches
trunk
Root
bugfix_release_01
tags
release_01
svn copy –m “creating branch for bugfixing..“file:///c:/subtrain/repo/tags/release_01 file:///c:/subtrain/repo/branches/bugfix_release_01
![Page 85: Polarion Software ® SUBTRAIN Subversion User Training All SubTrain materials are published under the Creative Commons Attribution License and contain material.](https://reader033.fdocuments.in/reader033/viewer/2022051214/56649dbd5503460f94aaffbe/html5/thumbnails/85.jpg)
© Polarion Software® Subtrain – SVN User training – www.polarion.com
BranchesCreating branches from
your working copy
85
svn copy c:\subtrain\harry\file:///c:/subtrain/repo/branches/bugfix_release_01
![Page 86: Polarion Software ® SUBTRAIN Subversion User Training All SubTrain materials are published under the Creative Commons Attribution License and contain material.](https://reader033.fdocuments.in/reader033/viewer/2022051214/56649dbd5503460f94aaffbe/html5/thumbnails/86.jpg)
© Polarion Software® Subtrain – SVN User training – www.polarion.com
Branches Creating branches
86
• You can create a branch using the following command:
svn copy source destination
1) The Subversion “copy”-command.2) The source of the operation may be the local working copy.3) The destination of the operation. This means the name
of the Branch.
![Page 87: Polarion Software ® SUBTRAIN Subversion User Training All SubTrain materials are published under the Creative Commons Attribution License and contain material.](https://reader033.fdocuments.in/reader033/viewer/2022051214/56649dbd5503460f94aaffbe/html5/thumbnails/87.jpg)
© Polarion Software® Subtrain – SVN User training – www.polarion.com
Branches Switching branches
87
• If you want to work on a different branch, you can „switch“ your working copy instead of a new checkout.svn switch url path
1) The Subversion “switch”-command.
2) The url where your working copy should point to.
3) The path of your working copy.
svn switch file:///c:/subtrain/repo/branches\bugfix_release_01c:\subtrain\sally
![Page 88: Polarion Software ® SUBTRAIN Subversion User Training All SubTrain materials are published under the Creative Commons Attribution License and contain material.](https://reader033.fdocuments.in/reader033/viewer/2022051214/56649dbd5503460f94aaffbe/html5/thumbnails/88.jpg)
© Polarion Software® Subtrain – SVN User training – www.polarion.com
Branches Exercise VIII: branching
88
•create a branch named „/branches/bugfix_release_01“ with commit message
„creating branch for bugfixing“
•Switch Sally's working copy to this new branch
•add a line in Harry's main.txt and commit it as „making progress in trunk“
•change Sally's main.txt and libs/library.txt:
•commit Sally's changes as „bugfixing on branch“
'
'
'
![Page 89: Polarion Software ® SUBTRAIN Subversion User Training All SubTrain materials are published under the Creative Commons Attribution License and contain material.](https://reader033.fdocuments.in/reader033/viewer/2022051214/56649dbd5503460f94aaffbe/html5/thumbnails/89.jpg)
Branching strategies
![Page 90: Polarion Software ® SUBTRAIN Subversion User Training All SubTrain materials are published under the Creative Commons Attribution License and contain material.](https://reader033.fdocuments.in/reader033/viewer/2022051214/56649dbd5503460f94aaffbe/html5/thumbnails/90.jpg)
© Polarion Software® Subtrain – SVN User training – www.polarion.com
Branching Strategies Developer Branches
90
• Separation of team members can be realized with branches.• One branch per team member or several members on a branch - the decision
is based on the size of the teams.
Member 2
Main line
Member 1
![Page 91: Polarion Software ® SUBTRAIN Subversion User Training All SubTrain materials are published under the Creative Commons Attribution License and contain material.](https://reader033.fdocuments.in/reader033/viewer/2022051214/56649dbd5503460f94aaffbe/html5/thumbnails/91.jpg)
© Polarion Software® Subtrain – SVN User training – www.polarion.com
• Advantages using branches for team work:• No changes during development on the main line needed => Code
stability.• Every team member can work in their own environment.
• Disadvantages:• Sometimes the mainline and the branch will diverge if the branch
lives too long.• large merge effort for maintainer of trunk
Branching Strategies Developer Branches
91
Polarion Application Lifecycle Management (ALM) helps you solve the challenges of branching and merging
![Page 92: Polarion Software ® SUBTRAIN Subversion User Training All SubTrain materials are published under the Creative Commons Attribution License and contain material.](https://reader033.fdocuments.in/reader033/viewer/2022051214/56649dbd5503460f94aaffbe/html5/thumbnails/92.jpg)
© Polarion Software® Subtrain – SVN User training – www.polarion.com
Branching Strategies Feature Branches
92
• Separation by features (one branch each).
• Branch will be obsolete after merge
• trunk will progress in atomic features
Feature 2(multilingualism
)
Main line
Feature 1(new UI)
![Page 93: Polarion Software ® SUBTRAIN Subversion User Training All SubTrain materials are published under the Creative Commons Attribution License and contain material.](https://reader033.fdocuments.in/reader033/viewer/2022051214/56649dbd5503460f94aaffbe/html5/thumbnails/93.jpg)
© Polarion Software® Subtrain – SVN User training – www.polarion.com
• branches will live as longas the platform is supported
Branching Strategies Platform Branches
93
Platform 2(Windows)
Main line
Platform 1(UNIX)
![Page 94: Polarion Software ® SUBTRAIN Subversion User Training All SubTrain materials are published under the Creative Commons Attribution License and contain material.](https://reader033.fdocuments.in/reader033/viewer/2022051214/56649dbd5503460f94aaffbe/html5/thumbnails/94.jpg)
© Polarion Software® Subtrain – SVN User training – www.polarion.com
Branching Strategies Vendor Branches
94
Important, if you get distributions of 3rd party source code which contains your own modifications:
1. new versions of source code will be placed into a branch and replaces the old version svn_load_dirs.pl will help to keep track of file movements/additions/deletions
2. changes between versions will be merged into /trunk/vendor_dev
trunk
tags
vendor_branch
vendor_1.1
vendor_1.0
vendor_1.2
vendor_dev
svn_load_dirs.pl1.
2.
![Page 95: Polarion Software ® SUBTRAIN Subversion User Training All SubTrain materials are published under the Creative Commons Attribution License and contain material.](https://reader033.fdocuments.in/reader033/viewer/2022051214/56649dbd5503460f94aaffbe/html5/thumbnails/95.jpg)
Merging
![Page 96: Polarion Software ® SUBTRAIN Subversion User Training All SubTrain materials are published under the Creative Commons Attribution License and contain material.](https://reader033.fdocuments.in/reader033/viewer/2022051214/56649dbd5503460f94aaffbe/html5/thumbnails/96.jpg)
© Polarion Software® Subtrain – SVN User training – www.polarion.com
Merging Merging from a branch
96
• What’s with the bug you've fixed on the bug-fix-branch?• What about your current development?• You have to merge the
changes made in the branchback to the main line.
RELEASE 1.0.0
BUGFIX_BRANCH
Merge back
![Page 97: Polarion Software ® SUBTRAIN Subversion User Training All SubTrain materials are published under the Creative Commons Attribution License and contain material.](https://reader033.fdocuments.in/reader033/viewer/2022051214/56649dbd5503460f94aaffbe/html5/thumbnails/97.jpg)
© Polarion Software® Subtrain – SVN User training – www.polarion.com
MergingMerging means: applying
a „patch” to your wc
97
3
4 6 7
5 8
bran
ch
mer
ge
4
5
6
8=
4+6
trunk (wc)
branch3
8
• a merge will always apply a “patch” to a working copy• a patch is always a difference between two versions/trees• in this sample below we create the patch between revision 4 and 7
![Page 98: Polarion Software ® SUBTRAIN Subversion User Training All SubTrain materials are published under the Creative Commons Attribution License and contain material.](https://reader033.fdocuments.in/reader033/viewer/2022051214/56649dbd5503460f94aaffbe/html5/thumbnails/98.jpg)
© Polarion Software® Subtrain – SVN User training – www.polarion.com
• If you need to create a branch, you should do it from a completely committed working copy. This prevents you from becoming confused.
• If you merge check out a clean copy into another directory.• Otherwise you can't go back using “svn revert”.• After you've merged commit the changes and provide a log message with
information on which revision/branch you have merged (merge tracking).• You can first test the merge using the --dry-run flag of the merge command.
Merging Best Practices
98
![Page 99: Polarion Software ® SUBTRAIN Subversion User Training All SubTrain materials are published under the Creative Commons Attribution License and contain material.](https://reader033.fdocuments.in/reader033/viewer/2022051214/56649dbd5503460f94aaffbe/html5/thumbnails/99.jpg)
© Polarion Software® Subtrain – SVN User training – www.polarion.com
Merging
99
reintegrate branch
![Page 100: Polarion Software ® SUBTRAIN Subversion User Training All SubTrain materials are published under the Creative Commons Attribution License and contain material.](https://reader033.fdocuments.in/reader033/viewer/2022051214/56649dbd5503460f94aaffbe/html5/thumbnails/100.jpg)
© Polarion Software® Subtrain – SVN User training – www.polarion.com
Merging Reintegrate branch
100
3
4 6 8
5 11
bran
ch
merge
4
5
trunk (wc)
feature branch 3
9 10
7
reintegrate branch keeps track of all previous merged revisions and will not try to merge them againconditions which must apply: •no switched working copy•you cannot skip any revision for merging from trunk into branch(so example below will not work if only 7 is merged to branch, and not 5)
![Page 101: Polarion Software ® SUBTRAIN Subversion User Training All SubTrain materials are published under the Creative Commons Attribution License and contain material.](https://reader033.fdocuments.in/reader033/viewer/2022051214/56649dbd5503460f94aaffbe/html5/thumbnails/101.jpg)
© Polarion Software® Subtrain – SVN User training – www.polarion.com
Merging
101
merge a range of revisions reintegrate a branch
svn merge –c 14 file:///c:/subtrain/repo/branches\bugfix_release_01c:\subtrain\sally
![Page 102: Polarion Software ® SUBTRAIN Subversion User Training All SubTrain materials are published under the Creative Commons Attribution License and contain material.](https://reader033.fdocuments.in/reader033/viewer/2022051214/56649dbd5503460f94aaffbe/html5/thumbnails/102.jpg)
© Polarion Software® Subtrain – SVN User training – www.polarion.com
Merging
102
merge two different trees
svn merge –c 14 file:///c:/subtrain/repo/branches\bugfix_release_01c:\subtrain\sally
![Page 103: Polarion Software ® SUBTRAIN Subversion User Training All SubTrain materials are published under the Creative Commons Attribution License and contain material.](https://reader033.fdocuments.in/reader033/viewer/2022051214/56649dbd5503460f94aaffbe/html5/thumbnails/103.jpg)
© Polarion Software® Subtrain – SVN User training – www.polarion.com
Merging Merge tracking in svn log
103
merge tracking
svn log –use-merge-history c:\subtrain\sally
![Page 104: Polarion Software ® SUBTRAIN Subversion User Training All SubTrain materials are published under the Creative Commons Attribution License and contain material.](https://reader033.fdocuments.in/reader033/viewer/2022051214/56649dbd5503460f94aaffbe/html5/thumbnails/104.jpg)
© Polarion Software® Subtrain – SVN User training – www.polarion.com
• Switch Sally's working copy back to /trunk
• merge the appropriate revision(s) from /branches/bugfix_release_01/ into Sally's working copy
• check if the merge add the bugfix into the trunk
• commit Sally's changes as:
• „merged bugfix from branches/bugfix_release_01 rev13:14 into trunk“
• as this you have some kind of human readable merge tracking
• control the merge tracking with TortoiseSVN‘s „show log“
Merging Exercise IX: merging
104
![Page 105: Polarion Software ® SUBTRAIN Subversion User Training All SubTrain materials are published under the Creative Commons Attribution License and contain material.](https://reader033.fdocuments.in/reader033/viewer/2022051214/56649dbd5503460f94aaffbe/html5/thumbnails/105.jpg)
Subversion Configuration
![Page 106: Polarion Software ® SUBTRAIN Subversion User Training All SubTrain materials are published under the Creative Commons Attribution License and contain material.](https://reader033.fdocuments.in/reader033/viewer/2022051214/56649dbd5503460f94aaffbe/html5/thumbnails/106.jpg)
© Polarion Software® Subtrain – SVN User training – www.polarion.com
• Under Linux you will find the configuration under:• /home/UsernameUsername/.subversion/config
• Under Windows you will find the configuration under:• %APPDATA%/subversion/
• In the config file [config.txt] you can change the behaviour of parts of Subversion.
• in the server configuration file [servers] you can setup proxy-server settings and ssl authorities
Subversion Configuration
106
![Page 107: Polarion Software ® SUBTRAIN Subversion User Training All SubTrain materials are published under the Creative Commons Attribution License and contain material.](https://reader033.fdocuments.in/reader033/viewer/2022051214/56649dbd5503460f94aaffbe/html5/thumbnails/107.jpg)
© Polarion Software® Subtrain – SVN User training – www.polarion.com
Subversion Configuration
107
![Page 108: Polarion Software ® SUBTRAIN Subversion User Training All SubTrain materials are published under the Creative Commons Attribution License and contain material.](https://reader033.fdocuments.in/reader033/viewer/2022051214/56649dbd5503460f94aaffbe/html5/thumbnails/108.jpg)
© Polarion Software® Subtrain – SVN User training – www.polarion.com
• Auto-properties can be useful if you like to set Word/Excel files to read-only.• You have to turn on enable-auto-props which means set it to
„yes“.• After that you can set svn:needs-lock for particular file types.
Subversion Configuration auto-properties
108
![Page 109: Polarion Software ® SUBTRAIN Subversion User Training All SubTrain materials are published under the Creative Commons Attribution License and contain material.](https://reader033.fdocuments.in/reader033/viewer/2022051214/56649dbd5503460f94aaffbe/html5/thumbnails/109.jpg)
© Polarion Software® Subtrain – SVN User training – www.polarion.com
Subversion Configuration auto-properties
109
[auto-props]
### The format of the entries is:
### file-name-pattern = propname[=value][;propname[=value]...]
### The file-name-pattern can contain wildcards (such as '*' and
### '?'). All entries which match will be applied to the file.
### Note that auto-props functionality must be enabled, which
### is typically done by setting the 'enable-auto-props' option.
# *.c = svn:eol-style=native
# *.cpp = svn:eol-style=native
# *.h = svn:eol-style=native
# *.dsp = svn:eol-style=CRLF
# *.dsw = svn:eol-style=CRLF
# *.sh = svn:eol-style=native;svn:executable
# *.txt = svn:eol-style=native
# *.png = svn:mime-type=image/png
# *.jpg = svn:mime-type=image/jpeg
# Makefile = svn:eol-style=native
![Page 110: Polarion Software ® SUBTRAIN Subversion User Training All SubTrain materials are published under the Creative Commons Attribution License and contain material.](https://reader033.fdocuments.in/reader033/viewer/2022051214/56649dbd5503460f94aaffbe/html5/thumbnails/110.jpg)
© Polarion Software® Subtrain – SVN User training – www.polarion.com
Subversion Configuration global-ignore
110
You can put whatever file extension into global-ignores to globally ignore files of a particular type.
[miscellany]### Set global-ignores to a set of whitespace-delimited globs### which Subversion will ignore in its 'status' output.# global-ignores = *.o *.lo *.la #*# .*.rej *.rej .*~ *~ .#* .DS_Store
![Page 111: Polarion Software ® SUBTRAIN Subversion User Training All SubTrain materials are published under the Creative Commons Attribution License and contain material.](https://reader033.fdocuments.in/reader033/viewer/2022051214/56649dbd5503460f94aaffbe/html5/thumbnails/111.jpg)
© Polarion Software® Subtrain – SVN User training – www.polarion.com
Subversion Configuration commit-times
111
• Sometimes you need to have the changed time to be set on the commit-time instead of the created local time. This is often used in relationship with Make-files.
• You can simply uncomment the line with “use-commit-times = yes“.• After that every check out will set the time stamp to commit time and
not to the check out time.
### Set use-commit-times to make check out/update/switch/revert### put last-committed timestamps on every file touched.# use-commit-times = yes
![Page 112: Polarion Software ® SUBTRAIN Subversion User Training All SubTrain materials are published under the Creative Commons Attribution License and contain material.](https://reader033.fdocuments.in/reader033/viewer/2022051214/56649dbd5503460f94aaffbe/html5/thumbnails/112.jpg)
© Polarion Software® Subtrain – SVN User training – www.polarion.com
• Subtrain online:
• http://subtrain.tigris.org
• Book: Version Control with Subversion:
• http://svnbook.red-bean.com/
• Subversion Developer Portal and downloads:
• http://subversion.apache.org/
• Subversion Wiki:
• http://www.subversionary.org
• Subversion Free Tools:
• http://www.polarion.org
• Subversion Forums:
• http://www.svnforum.org/
• Subversion News
• http://svn.haxx.se/
Additional Links and SVN info Sources
112
Do not forget to visit www.POLARION.COM for FREE and Open Source Tools & Solutions for Subversion like:
• Subversive - SVN Provider for Eclipse
• WebClient for SVN- free Subversion web
client
• Importer for SVN - migrate data fast, safely,
and FREE
![Page 113: Polarion Software ® SUBTRAIN Subversion User Training All SubTrain materials are published under the Creative Commons Attribution License and contain material.](https://reader033.fdocuments.in/reader033/viewer/2022051214/56649dbd5503460f94aaffbe/html5/thumbnails/113.jpg)
Any Questions?
![Page 114: Polarion Software ® SUBTRAIN Subversion User Training All SubTrain materials are published under the Creative Commons Attribution License and contain material.](https://reader033.fdocuments.in/reader033/viewer/2022051214/56649dbd5503460f94aaffbe/html5/thumbnails/114.jpg)
SVN Command reference
![Page 115: Polarion Software ® SUBTRAIN Subversion User Training All SubTrain materials are published under the Creative Commons Attribution License and contain material.](https://reader033.fdocuments.in/reader033/viewer/2022051214/56649dbd5503460f94aaffbe/html5/thumbnails/115.jpg)
© Polarion Software® Subtrain – SVN User training – www.polarion.com
Still lost?
Checkout Subversion Training
and Consulting Services from
Polarion Software's Subversion
experts and DOWNLOAD FREE
WHITEPAPER:
SVN Command reference
115
addblame (praise, annotate, ann)catchangelist (cl)checkout (co)cleanupcommit (ci)copy (cp)delete (del, remove, rm)diff (di)exporthelp (?, h)importinfolist (ls)locklog
mergemergeinfomkdirmove (mv, rename, ren)propdel (pdel, pd)propedit (pedit, pe)propget (pget, pg)proplist (plist, pl)propset (pset, ps)resolveresolvedrevertstatus (stat, st)switch (sw)unlockupdate (up)
Migrating to Subversion: Top 10 Tips for Success
![Page 116: Polarion Software ® SUBTRAIN Subversion User Training All SubTrain materials are published under the Creative Commons Attribution License and contain material.](https://reader033.fdocuments.in/reader033/viewer/2022051214/56649dbd5503460f94aaffbe/html5/thumbnails/116.jpg)
You'll find the latest version of SubTrain & FREE Subversion tools at:
Thank You!
www.polarion.com