Subversion for administrators

Subversion for
administrators
Martin Žugec
Principal Consultant
[email protected]
Developers know why…
1200 hubs,
10000+
developers, 120
revisions per
day…
...especially the open source ones…
…but why should
administrators care?
Ehm? (without SVN)
We can do it
better (with SVN)
Few examples…
 Backups
 Change
tracking
 Documenting changes
 Disaster recovery
 Easier for new team members to learn
How much does it cost?
 FREE
server and client
 NO infrastructure needed*
 First
repository can be up and running in 5
minutes (demo) and is managed using
familiar Windows Explorer
*for filesystem based repository and TortoiseSVN
Terminology 1
 Repository
(central database)
 Working copy (local folder)
1
repository can have multiple attached
working copies
Repository
 Filesystem



based database (single folder)
Https:// - Apache
Svn:// - SvnServer
File:// - Regular filesystem
Doesn’t require
server!!!
Working copy
 Working
copy is just a regular folder, that
keeps information about the repository
and stores the last revision
 Subversion data are stored in “.svn”
subfolders
 Can point to any folder within repository
Terminology 2
 Checkout
– creating new working copy
 Update
– downloading changes from
repository
 Commit
– uploading changes to
repository
Terminology 3
 Revision
is increased whenever you
change something. Revision number is
assigned automatically and you cannot
change it.
 You can either specify revision number or
use “HEAD” (latest)
 Every WRITE operation gets revision
number automatically, commits are
atomic (do all or nothing)
Terminology
Trunk, branches, tags





Trunk is never-ending line of changes
Tag is “cheap-copy” of specific trunk revision
Branch is “cheap-copy” of specific trunk
revision.
Difference between Tag and Branch is that
we NEVER change tag (used for release
management), but we can change Branch
(playground)
Trunk, Tag and Branch is just recommendation
How developers are using it
SVN in SVN…
How admins are using it
Coffee
January
at 8am
Coffee
February
at 10am
After
March
lunch
Boring
April
meeting
Going
May
home
Clients
 WebSVN
– web-based view
 TortoiseSVN – best client for Windows
 AnkhSVN – integration with Visual Studio
 SVN.exe – used for scripting\automation,
part of Apache package (!)
 Vercue – “Outlook for Subversion”
 …tons…
BUT!?
 Problems
with some directory operations
(rename)
 Performance over HTTP
 Permissions and access control limitations
 Strictly folder based operations
Q&A