Differences between revisions 1 and 2
Revision 1 as of 2007-02-16 07:48:26
Size: 3192
Editor: 85
Comment:
Revision 2 as of 2007-02-16 08:00:05
Size: 3216
Editor: 85
Comment:
Deletions are marked like this. Additions are marked like this.
Line 2: Line 2:
Line 3: Line 4:
{{{[[TableOfContents]]}}}
[[TableOfContents]]
Line 5: Line 8:
'"SVNKit''' is a pure (100%) Java client library for working with data versioned by the Subversion version control system '''SVNKit''' is a pure (100%) Java client library for working with data versioned by the Subversion version control system
Line 11: Line 14:
Line 13: Line 17:
Working Copies are logically divided and combined in different __SVN*Client__ classes. For example, all WC update Working Copies are logically divided and combined in different '''SVN*Client''' classes. For example, all WC update
Line 15: Line 19:
[SVNUpdateClient | http://svnkit.com/kb/javadoc/org/tmatesoft/svn/core/wc/SVNUpdateClient.html] class. Arguments which [http://svnkit.com/kb/javadoc/org/tmatesoft/svn/core/wc/SVNUpdateClient.html SVNUpdateClient] class. Arguments which
Line 18: Line 22:
!!Low-level layer
[This layer | http://svnkit.com/kb/javadoc/org/tmatesoft/svn/core/io/package-summary.html] represents an abstract Subversion repository access protocol layer. There're two important things about this layer:
* It does not deal with WCs at all, since WC is a higher layer than this one. This layer knows how to ''speak to'' Subversion repositories via different protocols (in fact, this layer implements such protocols).
* Data structure is handled by this layer as an abstract data hierarchy, what gives an ability to represent more sophisticated (than just files and directories) abstractions as a tree-like hierarchy and keep such a hierarchy under version control.
!!!Repository access protocols supported by SVNKit
Since v.1.1.0 __SVNKit__ supports the following repository access schemes:
[{Im
age src = 'access_protocols.png' caption = 'SVNKit Access Protocols'}]
!!Remote access
As you can see on the diagram above, __SVNKit__
supports two kinds of accessing a Subversion repository over network:
* svn://, this also includes svn+xxx:// schemes (and svn+ssh:// in particular)
* http://, this also includes secure https:// connections
!!
Local access
Also since v.1.1.0 __SVNKit__ is able to work with a Subversion repository on a local machine (via ''file:///'').
Although there is one limitation: __SVNKit__ can work only with [FSFS | http://svnbook.red-bean.com/nightly/en/svn.reposadmin.html#svn.reposadmin.basics.backends.fsfs]-type repositories over the file:/// protocol'''.

==
Low-level layer ==
[http://svnkit.com/kb/javadoc/org/tmatesoft/svn/core/io/package-summary.html This layer] represents an abstract Subversion repository access protocol layer. There're two important things about this layer:
 
* It does not deal with WCs at all, since WC is a higher layer than this one. This layer knows how to ''speak'' to Subversion repositories via different protocols (in fact, this layer implements such protocols).
 * Data structure is handled by this layer as an abstract data hierarchy, what gives an ability to represent more sophisticated (than just files and directories) abstractions as a tree-like hierarchy and keep such a hierarchy under version control.

=
Repository access protocols supported by SVNKit =
Since v.1.1.0 '''SVNKit''' supports the following repository access schemes:

attachment:access
_protocols.png

== Remote access ==
As you can see on the di
agram above, '''SVNKit''' supports two kinds of accessing a Subversion repository over network:
 * {{{svn://}}}, this also includes {{{svn+xxx://}}} schemes (and {{{svn+ssh://}}} in particular)
* {{{http://}}}, this also includes secure {{{https://}}} connections

==
Local access ==
Also since v.1.1.0 '''SVNKit''' is able to work with a Subversion repository on a local machine (via {{{file:///}}}).
Although there is one limitation: '''SVNKit''' can work only with [http://svnbook.red-bean.com/nightly/en/svn.reposadmin.html#svn.reposadmin.basics.backends.fsfs FSFS]-type repositories over the {{{file:///}}} protocol.

[:Setting Up A Subversion Repository: << Previous Page]

[:Getting Started With Svnkit: Next Page >>]

TableOfContents

SVNKit Architecture

SVNKit is a pure (100%) Java client library for working with data versioned by the Subversion version control system right within Java applications. The library structure can be represented as following: attachment:svnkit_architecture.png That is there are two main layers in SVNKit:

High-level layer

The high-level API is similar to the commands of the Subversion native command line client: all operations for managing Working Copies are logically divided and combined in different SVN*Client classes. For example, all WC update operations (check out, update, switch, etc.) are performed by the single [http://svnkit.com/kb/javadoc/org/tmatesoft/svn/core/wc/SVNUpdateClient.html SVNUpdateClient] class. Arguments which are accepted by methods of these classes are similar to arguments of the Subversion command line client. When an access to a repository is indeed required, the high-level layer uses the low-level one.

Low-level layer

[http://svnkit.com/kb/javadoc/org/tmatesoft/svn/core/io/package-summary.html This layer] represents an abstract Subversion repository access protocol layer. There're two important things about this layer:

  • It does not deal with WCs at all, since WC is a higher layer than this one. This layer knows how to speak to Subversion repositories via different protocols (in fact, this layer implements such protocols).

  • Data structure is handled by this layer as an abstract data hierarchy, what gives an ability to represent more sophisticated (than just files and directories) abstractions as a tree-like hierarchy and keep such a hierarchy under version control.

Repository access protocols supported by SVNKit

Since v.1.1.0 SVNKit supports the following repository access schemes:

attachment:access_protocols.png

Remote access

As you can see on the diagram above, SVNKit supports two kinds of accessing a Subversion repository over network:

  • svn://, this also includes svn+xxx:// schemes (and svn+ssh:// in particular)

* http://, this also includes secure https:// connections

Local access

Also since v.1.1.0 SVNKit is able to work with a Subversion repository on a local machine (via file:///). Although there is one limitation: SVNKit can work only with [http://svnbook.red-bean.com/nightly/en/svn.reposadmin.html#svn.reposadmin.basics.backends.fsfs FSFS]-type repositories over the file:/// protocol.

SVNKit_Architecture (last edited 2008-02-20 19:01:29 by nat7)