subversion tech report (2006)

23
8/2/2006 v1.1 Joe Chavez Subversion Technical Report Joe Chavez August 2, 2006 1

Upload: joe-chavez

Post on 25-Jun-2015

1.111 views

Category:

Technology


3 download

DESCRIPTION

A technical report I did on Subversion back in 2006.

TRANSCRIPT

Page 1: Subversion Tech Report (2006)

8/2/2006 v1.1 Joe Chavez

Subversion

Technical ReportJoe Chavez

August 2, 2006

1

Page 2: Subversion Tech Report (2006)

8/2/2006 v1.1 Joe Chavez2

Overview

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

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

2

Page 3: Subversion Tech Report (2006)

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

Page 4: Subversion Tech Report (2006)

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

Page 5: Subversion Tech Report (2006)

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

Page 6: Subversion Tech Report (2006)

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

Page 7: Subversion Tech Report (2006)

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

Page 8: Subversion Tech Report (2006)

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

Page 10: Subversion Tech Report (2006)

8/2/2006 v1.1 Joe Chavez10

Deployment

• OS Solaris 10

• Hardware TBD

10

Page 11: Subversion Tech Report (2006)

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

Page 12: Subversion Tech Report (2006)

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

Page 13: Subversion Tech Report (2006)

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

Page 14: Subversion Tech Report (2006)

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

Page 15: Subversion Tech Report (2006)

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

Page 16: Subversion Tech Report (2006)

8/2/2006 v1.1 Joe Chavez16

Subversion Client

• Client - svn All local/remote access

• Repository commands svn import svn checkout svn commit

16

Page 17: Subversion Tech Report (2006)

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

Page 18: Subversion Tech Report (2006)

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

Page 19: Subversion Tech Report (2006)

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

Page 20: Subversion Tech Report (2006)

8/2/2006 v1.1 Joe Chavez20

Summary

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

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

20

Page 21: Subversion Tech Report (2006)

8/2/2006 v1.1 Joe Chavez21

Q & A

• Got questions?

21

Page 22: Subversion Tech Report (2006)

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

Page 23: Subversion Tech Report (2006)

8/2/2006 v1.1 Joe Chavez23

Open Issues

• User account management• Rollout schedule• Training

23