Polarion Software ® SUBTRAIN Subversion User Training All SubTrain materials are published under...

116
Polarion Software ® SUBTRAIN Subversion 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 ®

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.

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.

© 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.

•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.

Introduction

Page 5: Polarion Software ® SUBTRAIN Subversion User Training All SubTrain materials are published under the Creative Commons Attribution License and contain material.

© 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.

© 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.

Architecture

Page 8: Polarion Software ® SUBTRAIN Subversion User Training All SubTrain materials are published under the Creative Commons Attribution License and contain material.

© 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.

© 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.

© 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.

© 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.

© 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.

© 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.

© 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.

© 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.

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.

© 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.

© 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.

© 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.

© 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.

© 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.

© 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.

© 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.

© 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.

© 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.

© 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.

© 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.

© 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.

© 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.

© 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.

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.

© 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.

© 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.

© 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.

© 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.

© 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.

© 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.

© 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.

© 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.

© 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.

© 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.

© 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.

© 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.

© 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.

© 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.

© 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.

© 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.

Locking

Page 49: Polarion Software ® SUBTRAIN Subversion User Training All SubTrain materials are published under the Creative Commons Attribution License and contain material.

© 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.

© 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.

© 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.

© 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.

© 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.

© 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.

© 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.

© 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.

© 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.

SVN properties

Page 59: Polarion Software ® SUBTRAIN Subversion User Training All SubTrain materials are published under the Creative Commons Attribution License and contain material.

© 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.

© 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.

© 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.

© 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.

© 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.

© 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.

© 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.

© 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.

© 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.

© 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.

© 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.

© 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.

© 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.

© 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.

© 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.

© 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.

© 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.

Managing versions

Page 77: Polarion Software ® SUBTRAIN Subversion User Training All SubTrain materials are published under the Creative Commons Attribution License and contain material.

© 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.

© 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.

© 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.

© 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.

© 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.

© 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.

© 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.

© 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.

© 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.

© 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.

© 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.

© 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.

Branching strategies

Page 90: Polarion Software ® SUBTRAIN Subversion User Training All SubTrain materials are published under the Creative Commons Attribution License and contain material.

© 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.

© 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.

© 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.

© 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.

© 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.

Merging

Page 96: Polarion Software ® SUBTRAIN Subversion User Training All SubTrain materials are published under the Creative Commons Attribution License and contain material.

© 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.

© 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.

© 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.

© 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.

© 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.

© 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.

© 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.

© 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.

© 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.

Subversion Configuration

Page 106: Polarion Software ® SUBTRAIN Subversion User Training All SubTrain materials are published under the Creative Commons Attribution License and contain material.

© 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.

© 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.

© 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.

© 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.

© 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.

© 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.

© 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.

Any Questions?

Page 114: Polarion Software ® SUBTRAIN Subversion User Training All SubTrain materials are published under the Creative Commons Attribution License and contain material.

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.

© 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.

You'll find the latest version of SubTrain & FREE Subversion tools at:

Thank You!

www.polarion.com