["Main"]

[:Setting Up A Subversion Repository:Next Page >>]

Table of Contents

Preface

What Is Subversion For?

drawing:repository_tree.png

Subversion doesn't actually keep the whole contents in every revision. For every N-th revision it uses smart mechanisms to store only the differences that were made in that N-th revision itself (i.e. data differences between revisions N-1 and N). So, revisions allow you to retrieve any version of a file, or directory, or even of the whole tree (since a single revision is created for the whole repository tree) at any time, no changes will be lost. Each revision is a permanent snapshot of a tree, i.e. if an item is added to a Subversion repository it can not be removed from the repository entirely, because it can be always found in those revisions where it was added and changed. Although in this case item history is broken and it no longer exists in the repository starting with the revision where it's deleted.

A common scenario of using a Subversion repository is working with a copy of any subtree of a repository tree on a local computer and publishing results of this work into the repository. In other words, a client somehow changes files and directories taken from a repository and then commits his\her changes into the repository. Local versioned data tree is called [http://svnbook.red-bean.com/nightly/en/svn.basic.in-action.html#svn.basic.in-action.wc Working Copy ]images/out.png (WC).

Use cases

What Is SVNKit For?

According to this classification, SVNKit is a pure [http://java.sun.com Java ]images/out.png Subversion client library.

Using Subversion and SVNKit in applications

The second type of applications in this list use a Subversion repository to keep their abstract model hierarchical representations.

SVNKit is a programmatic solution to use version control in Java applications of both listed types. That is, SVNKit can be used as an integration tool to work with versioned data in a standard way (using WCs), or as an engine to speak to a Subversion repository on a repository access protocol layer.

SVNKit provides an ability to: