Differences between revisions 5 and 6
Revision 5 as of 2007-02-20 07:34:47
Size: 3721
Editor: squid
Comment:
Revision 6 as of 2007-03-01 18:00:20
Size: 3781
Editor: nat
Comment:
Deletions are marked like this. Additions are marked like this.
Line 21: Line 21:
'''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:
["SVNKit"] is a pure (100%) [http://java.sun.com Java] client library for working with data versioned by the ["Subversion"] version control system
right within [http://java.sun.com Java] applications. The library structure can be represented as following:
Line 26: Line 26:
That is there are two main layers in '''SVNKit''': That is there are two main layers in ["SVNKit"]:
Line 28: Line 28:
 * A low-level layer is similar to the [http://svnbook.red-bean.com/nightly/en/svn.developer.html#svn.developer.layerlib.ra Subversion Repository Access Layer]. It represents a driver for direct working with a Subversion Repository.  * A low-level layer is similar to the [http://svnbook.red-bean.com/nightly/en/svn.developer.html#svn.developer.layerlib.ra Subversion Repository Access Layer]. It represents a driver for direct working with a ["Subversion"] Repository.
Line 31: Line 31:
The high-level API is similar to the commands of the Subversion native command line client: all operations for managing The high-level API is similar to the commands of the ["Subversion"] native command line client: all operations for managing
Line 35: Line 35:
are accepted by methods of these classes are similar to arguments of the Subversion command line client. are accepted by methods of these classes are similar to arguments of the ["Subversion"] command line client.
Line 39: Line 39:
[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).
[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).
Line 44: Line 44:
Since v.1.1.0 '''SVNKit''' supports the following repository access schemes: Since v.1.1.0 ["SVNKit"] supports the following repository access schemes:
Line 49: Line 49:
As you can see on the diagram above, '''SVNKit''' supports two kinds of accessing a Subversion repository over network: As you can see on the diagram above, ["SVNKit"] supports two kinds of accessing a ["Subversion"] repository over network:
Line 54: Line 54:
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.
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.

["Main"]

  • + ["What Is Subversion For"]
  • + ["Setting Up A Subversion Repository"]
  • - SVNKit Architecture
  • + ["Getting Started With SVNKit"]
  • + ["Authentication"]
  • + ["Managing Repository With SVNKit"]
    • + ["Printing Out A Subversion Repository Tree"]
    • + ["Printing Out File Contents"]
    • + ["Printing Out Repository History"]
    • + [:Committing To A Repository:Editing operation: committing to a repository]

    • + [:Updating From A Repository:Editing Operation: receiving changes from a repository]

    • + ["Replicating An Existing Repository"]
    • + ["Managing A Working Copy"]


TableOfContents

SVNKit Architecture

["SVNKit"] is a pure (100%) [http://java.sun.com Java] client library for working with data versioned by the ["Subversion"] version control system right within [http://java.sun.com 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)