Subversion Tech Report (2006)

Post on 25-Jun-2015

1,112 views 3 download

Tags:

description

A technical report I did on Subversion back in 2006.

transcript

8/2/2006 v1.1 Joe Chavez

Subversion

Technical ReportJoe Chavez

August 2, 2006

1

8/2/2006 v1.1 Joe Chavez2

Overview

• Motivation• History• Why subversion?• Architecture• Deployment

• Installation• Configuration• CVS Conversion• Subversion Client• IDE Support

2

8/2/2006 v1.1 Joe Chavez3

Motivation

• Manage the change in information over time… Source code Documentation Binary files

• Not ground breaking Match main features of CVS Not duplicate the flaws Facilitate user switch

3

8/2/2006 v1.1 Joe Chavez4

History

• Started by CollabNet in 2000• “Self-hosting” in August, 2001• Debian Free Software Guidelines license• CollabNet still pays the salaries of a

“few” full time employees• Version 1.3.1 released on April 3rd

4

8/2/2006 v1.1 Joe Chavez5

Why subversion?

• Most current CVS features• Directories, renames, and file meta-

data are versioned• True version history• Atomic commits• Choice of network layers• Consistent data handling

5

8/2/2006 v1.1 Joe Chavez6

Why subversion?

• Efficient branching and tagging• Integration• Standalone server option• Versioning of symbolic links• Parse ready output• Localized messages• Properties• Secure Access - SSH/SSL

6

8/2/2006 v1.1 Joe Chavez7

Architecture

• Client Command Line (XP, *nix, OS X, etc.) IDE (IntelliJ, Eclipse… to name a few) Client Library

• Connectivity Internet

DAV (Apache mod_dav + mod_dav_svn) - http/s:// SVN - svn://

Local file://

7

8/2/2006 v1.1 Joe Chavez8

Architecture

• Repository Berkeley DB FSFS (recommended)

• Built on the Apache Portable Runtime• Architecture diagram on next slide - from

Subversion docs

8

8/2/2006 v1.1 Joe Chavez10

Deployment

• OS Solaris 10

• Hardware TBD

10

8/2/2006 v1.1 Joe Chavez11

Installation

• Distribution Via http://subversion.tigris.org/ and mirror sites

• Source Roll your own Enable options that are not part of the typical

“binary” distribution• Binary

Easy to install - don’t have to compile for all client platforms

May lag behind latest source release

11

8/2/2006 v1.1 Joe Chavez12

Installation: Source

• Download Source• Configure (with SSL client)

./configure --with-ssl --with-swig• Make

make swig-py make install swig-py (as root on *nix)

12

8/2/2006 v1.1 Joe Chavez13

Configuration

• Server Options Standalone Server Apache Module

• Standalone svn and svn+ssh (ssh tunneling)

• Apache HTTP and HTTPS (with SSL enabled client)

13

8/2/2006 v1.1 Joe Chavez14

CVS Conversion

• Convert or Export?• Conversion

cvs2svn - http://cvs2svn.tigris.org/ Several options

Trunk only - No tags or branches Exclude - Selected tags and branches Project basis - Can break svn date range commands

• Export Use cvs export then svn import cvs repos should be read only for reference

14

8/2/2006 v1.1 Joe Chavez15

Subversion Admin

• Admin svnadmin

create <path> dump load hotcopy

svnlook Inspect transaction history

svndumpfilter

• Hook scripts 9 hooks

15

8/2/2006 v1.1 Joe Chavez16

Subversion Client

• Client - svn All local/remote access

• Repository commands svn import svn checkout svn commit

16

8/2/2006 v1.1 Joe Chavez17

Subversion Client

• File commands svn add, svn delete, svn copy, and svn move svn status - client side only, no “update” side

effects -u to show repository updates

svn diff - no net access svn revert - revert to original file and undo

scheduled operations svn update - interesting if conflicts are found svn resolve - use to resolve a conflict

17

8/2/2006 v1.1 Joe Chavez18

Subversion Client

• History Commands svn log - detailed file history

-v for path changes -q for no log body -v -q for names of changed files

svn cat - display file or particular revision svn list - show file list for a directory

-v for detailed info

18

8/2/2006 v1.1 Joe Chavez19

IDE Support

• IntelliJ Check out on command line first Create new project Set subversion as source control

• Eclipse - Subclipse Plug-in Install URL

http://subclipse.tigris.org/update_1.0.x Select “SVN Repository Browsing”

perspective

19

8/2/2006 v1.1 Joe Chavez20

Summary

• Motivation• History• Why subversion?• Architecture• Deployment

• Installation• Configuration• CVS Conversion• Subversion Client• IDE Support

20

8/2/2006 v1.1 Joe Chavez21

Q & A

• Got questions?

21

8/2/2006 v1.1 Joe Chavez22

References

• SSC Subversion Main Site: https://audrey.ipac.caltech.edu/svn

Install notes This presentation Full technical report

• Subversion http://subversion.tigris.org

• Version Control with Subversion (free book) http://svnbook.red-bean.com/

• cvs2svn http://cvs2svn.tigris.org/

22

8/2/2006 v1.1 Joe Chavez23

Open Issues

• User account management• Rollout schedule• Training

23