== version 1.3.5 ==

+ Changes made in Subversion since version 1.6.12 implemented, 
  all Subversion 1.6.15 features are supported.
  
+ Support for OS X Keychain as credentials storage added.
+ SSL client certificate passphrase is cached in a way 
  compatible with that of the native Subversion.
+ HTTP cookies are handled properly. 
+ SQLJet library upgraded to v1.0.4

+ Other minor bugfixes and improvements.

== version 1.3.4 ==

+ Changes made in Subversion since version 1.6.11 implemented, 
  all Subversion 1.6.12 features are supported.

+ Added support for SSH host fingerprints verification.
+ Name conflict status added which is reported on
  case-insensitive filesystems for files which name differs only in case.
+ HTTP digest authentication support improved.
+ svnkit:charset property support significantly improved.
+ SQLJet library upgraded to v1.0.3
+ JNA library upgraded to v3.2.7

+ Other minor bugfixes and improvements.

== version 1.3.3 ==

+ Changes made in Subversion since version 1.6.6 implemented, 
  all Subversion 1.6.11 features are supported.
  
+ HTTP Negotiate authentication improvements.
+ Support of MSCAPI SSL certificates added.
+ SQLJet library upgraded to version 1.0.2
+ File externals support improved
    
+ Other bugfixes

== version 1.3.2 ==

+ Changes made in Subversion since version 1.6.5 implemented, 
  all Subversion 1.6.6 features are supported.
   
   * Negotiate authorization mechanism was not used when multiple authorization 
     schemes were offered to client by server. 
   * SQLJet library upgraded to version 1.0.1.
   * JNA library upgraded to version 3.2.3.
      
+ Bugfixes and performance improvements.

== version 1.3.1 ==

+ Changes made in Subversion since version 1.6.2 implemented, 
  all Subversion 1.6.5 features are supported.
   
   * Representation cache DB support, using SQLJet (http://sqljet.com) library.
   * Added implementations for couple of missing JavaHL methods.
   * Fixed 'svn: Checksum mismatch while reading representation' exception on
     reading vdelta from local repositories.
   * Several dump and load operation issues fixed.
   * JNA library upgraded to version 3.1.0.
      
+ Other bugfixes and performance improvements.

== version 1.3.0

+ Changes made in Subversion since version 1.5.6 implemented, 
  all Subversion 1.6.2 features are supported:
   * Tree conflicts handled more gracefully
   * File-externals support for intra-repository files
   * File protocol: 1.6.2 Subversion repositories format supported
   * Administrative tools: support for packing repository shards
   * Command line client: repository root relative URL support on most commands
   * Performance improvements on huge files during update\commits

+ Other bugfixes and performance improvements.

== version 1.3.0-beta3

+ Changes made in Subversion since version 1.5.6 implemented, 
  all Subversion 1.6.1 features are supported.
+ Bugfixes since version 1.3.0-beta2

== version 1.3.0-beta2

+ Changes made in Subversion since version 1.5.6 implemented, 
  all Subversion 1.6.1 features are supported.
+ JavaHL implementation bugfixes.
+ Compatibility with pre-1.6 working copies improved for 
  'no working copy upgrade' cases.
+ Update performance on large files improved.
+ Command line client improvements.
+ Other bugfixes and performance improvements.

== version 1.3.0-beta

+ Changes made in Subversion since version 1.5.6 implemented, 
  all Subversion 1.6.1 features are supported.
+ Merge tracking bugfixes
+ Other bugfixes and performance improvements.

== version 1.2.3

+ Changes made in Subversion since version 1.5.5 implemented, 
  all Subversion 1.5.6 features are supported.
+ Merge tracking bugfixes
+ Better interacting with external diff programs
+ svnkit.no.safe.copy system property introduced for file system copy operations
+ Other bugfixes and performance improvements.

== version 1.2.2

+ Changes made in Subversion since version 1.5.4 implemented, 
  all Subversion 1.5.5 features are supported.
+ Merge tracking implementation changed to match Subversion 1.5.5.
+ HP-UX support added.
+ Other stability and performance improvements.

== version 1.2.1

+ Changes made in Subversion since version 1.5.0 implemented, 
  all Subversion 1.5.4 features are supported.
+ JNA library updated to version 3.0.9.
+ JNA-based code fixed to work properly on amd64 systems.
+ HTTP Negotiate authentication scheme support added. 
+ "Fast" update feature has been added to SVNUpdateClient API.
+ Command line client improvements.
+ Other stability and performance improvements.

== version 1.2.0

+ Possible NPE on WC to URL copy operation fixed.
+ Log operation didn't work properly with 'limit' options set to value 
  larger than Integer.MAX_VALUE, fixed. 
+ OSGI manifest fixes.

== version 1.2.0-rc4

+ JNA library updated to version 3.0.5.
+ jsvnlook 'cat' and 'lock' commands added.
+ Update operation didn't work properly on sparse directories with 1.4.x Subversion servers, fixed.
+ SASL: minor bugfixes.
+ Other bugfixes.

== version 1.2.0-rc3

+ SVNKit Eclipse plugin divided into two features: core svnkit library and optional JNA library.
+ SVNKit Eclipse plugin made compatible with base OSGI framework.
+ SVN+SSH protocol performance improvements.
+ File uid and guid wasn't properly fetched on OSX and BSD.
+ Other bugfixes and minor improvements.

== version 1.2.0-rc2

+ SASL: incorrect output buffer size might result in failed commits, fixed.
+ Possible NPE on copy operation fixed.

== version 1.2.0-rc1

+ Javadoc updated
+ SASL authentication support bugfixes
+ Bug in keyword expansion code fixed
+ Other bugfixes

== version 1.2.0-beta5

+ SASL authentication support improved
+ Java SSH Trilead library updated to build 213
+ JNA library updated to version 3.0.4
+ Fixed: SSH connectivity problems with non-OpenSSH servers
+ Javadoc updated
+ Other bugfixes

== version 1.2.0-beta4

+ Bugfixes

== version 1.2.0-beta3

+ SASL authentication support improved.
+ Other bugfixes.

== version 1.2.0-beta2

+ JavaHL compatiblity bugfixes
+ DAV protocol performance improvements

== version 1.2.0-beta

+ Subversion 1.5.0 features support

== version 1.1.7

+ SVNKit didn't work properly with Subversion 1.5.0 servers over svn protocol
+ JNA library updated to version 3.0.2
+ Trilead-SSH library updated to build 212
+ Other bugfixes

== version 1.1.6

+ Bugfixes:
+  Copy WC to URL sometimes didn't work properly with switched directories.
+  Several NPEs in HTTP connection code fixed.
+  Authentication cancellation didn't work with SSH connection in some cases.

== version 1.1.5

+ Connections pool has been improved.
+ New version of SSH library (Trilead build 211) is used.
+ When possible, JNA library is used for most of native calls instead of Runtime.exec(...)
+ HTTP Digest authentications works better.
+ Bug in keywords expansion code fixed.
+ Other bugfixes.

= version 1.1.4

+ Connections pool closes inactive connections on timeout.
+ Bugfixes.

= version 1.1.3

+ Encrypted credentials supported on Windows.
+ OpenVMS support improved.
+ Bugfixes.
+ Daily builds now available at http://teamcity.svnkit.com/

= version 1.1.2

+ SVNKit command line client: interactive credentials prompt added.
+ SVNKit command line client: jsvnversion added.
+ JavaHL: SVNAdmin implemented using SVNKit API.
+ System-wide configuration files support (e.g. /etc/subversion on Linux)
+ bugfixes.

= version 1.1.1

+ added support for svnlook features.
+ added support for svnadmin dump/verify/load/rmtxns/lstxns features.
+ svn, svnadmin, svnlook and svnsync scripts are 
  renamed to jsvn, jsvnadmin, jsvnlook and jsvnsync to distinguish them 
  from the native programs.
+ command line scripts supports OpenVMS.
+ bugfixes.

= version 1.1.0

+ command line application and API to perform svnsync.
+ bugfixes.

= version 1.1.0.beta5

+ support for Subversion 1.4 working copy and new fsfs repository format.
+ support for new features introduced by Subversion 1.4.
+ bugfixes.

= version 1.1.0.beta4

+ bug introduced in beta3 version fixed: 
  Eclipse keyring credentials storage support was broken.

= version 1.1.0.beta3

+ Minor API improvements.
+ Minor bugfixes.

= version 1.1.0.beta2

+ NTLM authentication method support.
+ Javadoc updated to match new SVNKit features.
+ Minor bugfixes.

= version 1.1.0.beta

+ 'file' protocol support (for 'fsfs' repositories).

= version 1.0.3

+ improved cancellation support
+ improved versioned symlinks handling
+ improved HTTP proxies support
+ bugfixes

= version 1.0.2

+ full support of the new Subversion 1.3.0 features.
+ ssh 'keyboard-interactive' authentication support.
+ ssl client certificate prompt support.
+ error codes and error messages hierarchy support in the API.
+ utility classes to genereta operatios output in XML format.
+ faster delta generation and delta processing code.
+ utility API classes to process and generate deltas.
+ documentations improved, Commit and Export examples simplified.
+ bugfixes

! Note: 
  This version includes minor API changes and is not binary compatible 
  with the previous versions. API changes are:
  * String error messages replaced with SVNErrorMessage objects
  * ISVNFileRevisionHanlder callback interface changed
  * all callback interfaces methods now declared as throwing SVNException

= version 1.0.1

+ bugfixes

= version 1.0.0

+ documentation related improvements
+ bugfixes

= version 0.9.3

+ licensing conditions changed
+ support for atomic commit from different working copies
+ persistent connections support
+ improvements in performance and memory consumption
+ bugfixes

= version 0.9.2

+ RC2: bugfixes related to configuration handling and svn+ssh authentication

= version 0.9.1

+ RC1: All features planned for 1.0 version are completed.

= version 0.8.8.1

+ critical bug in SVNKit Eclipse plugin fixed.

= version 0.8.8

+ http digest auth support (requires apache version > 2.0.48)
+ wc->url and url->wc copy operations
+ use-commit-times option support
+ bugfixes

= version 0.8.7.2

+ Subclipse v0.9.30 compatible

= version 0.8.7.1

+ Subclipse v0.9.29 compatible

= version 0.8.7

+ http proxy support
+ svn "keywords" are expanded properly
+ different eol's in a file are handled correctly
+ other minor bugfixes

= version 0.8.6

+ annotate (blame) operation is implemented.
+ http: server socket close detected properly and doesn't result in operation failure.
+ SVNClient: absolute paths are used in notifications.
+ SVNClient: fileContent method traces file renames.
+ SVNClient: list and logMessages methods return paths sorted alphabetically.
+ SVNClient: auth info is stored in Eclipse key ring when used within Eclipse.

= version 0.8.5

+ SVNClient: WC copy and move operations work properly on Linux and OS X.
+ SVNClient: "conflicted" status is reported correctly during update
             ("merged" was reported instead).

= version 0.8.4

+ Subclipse Extension supports Subclipse 0.9.28
+ tabulations in externals definitions processed correctly.

= version 0.8.3

+ children of copied or moved directories were not committed properly when
  their wc revision was different from the parent's one.
+ http: all DAV requests (including commit comments) are sent in UTF-8 encoding.
+ SvnClient: add and remove methods didn't work for directories, fixed.
+ SvnClient: commit of single file deletion didn't work, fixed.
+ Eclipse: SVNKit features installed from update site supports automatic update

= version 0.8.2

+ svn+ssh: persistent ssh connection is used to improve svn+ssh performance.
+ http: problems with accessing repository location that needs different credentials then
  repository root is fixed.
+ http: all paths in requests are canonicalized, some svn server versions failed to 
  process non-canonicalized paths.
+ wc: changes in externals were not committed correctly over http when using ISVNWorkspace.commit(...), fixed.
+ SvnClient: diff method implemented (so that Eclipse "generate patch" action works).  
+ SvnClient: copy and move methods fixed to work properly in Subclipse repository view.
+ SvnClient: setPrompt support, better notifications, "windows" paths are handled correctly.
+ logging: Pluggable loggers support and detailed http logging added (thanks to Marc Strapez). 
+ logging: Eclipse SVNKit version uses Eclipse logging facilities.

= version 0.8.1

+ bugs with committing files within moved directories fixed
+ bugfixes related to operations over http connection
+ for subclipse users: more detailed console notifications on svn operations

= version 0.8.0

+ new builds versioning schema introduced
+ update site with eclipse plugin and subclipse extension added 

= build 20050131

+ import works properly with single file and when importing to
  non-yet-existing directories
+ switch works properly when switching single file
+ more minor bugfixes

= build 20050120

+ bugs with commiting locally copied files fixed
+ DAV '/' repository location handled correctly

= build 20050112

+ lot of incompatibilities with native svn fixed
+ SVNClient supports remote deletion, copy and move operations

= build 20050106

+ number of bugs in remote status implementation fixed
+ ISVNWorkspace.getFileContent method restored to keep binary compatibility 
+ Diff generators framework added, now SVNKit provides API for
  generating diff in different formats ('unified' and 'normal') for arbitrary
  input sources

= build 20050105

+ svn+ssh authentication failed to work in some cases - fixed
+ revisions in working copy now updated correctly after update
+ got rid of number of minor inconsistences between SVNKit and native SVN
+ http and https protocols supports compressed data (gzip)

= build 20041223

+ ISVNWorkspace.delete now accepts 'force' parameter
+ bug fixed that prevented Subclipse committing single 
  file in non-windows systems
+ complete svn and svn+ssh protocol logging may be enabled 
  with -Dsvnkit.log.svn=true command line switch

= build 20041221

+ when using svn+ssh SVNKit takes private key path from the java property,
  if it is not defined explicitly
+ svn+ssh bugfixes
+ bugfixes

= build 20041219

+ infinite loop on commits that includes workspace root fixed
+ JavaHL: SVNClient accepts all revision kinds (DATE, HEAD, etc.)

= build 20041217

+ bugfixes

= build 20041216

+ bugfixes

= build 20041211

+ command line svn client (status, import, checkout are implemented)
+ python tests launcher to reuse original svn python tests suite
+ bugfixes

= build 20041209

+ bugfixes

= build 20041204

+ bugfixes
+ SVNKit works with Subclipse 0.9.24

= build 20041130

+ bugfixes

= build 20041126

+ svn+shh protocol support (with the jsch library)
+ bugfixes

= build 20041124

+ javahl copy, move and mkdir methods implementation
+ methods to manage global ignore added to ISVNWorkspace
+ bugfixes

= build 20041123

+ recursive property set operation
+ ISVNWorkspace accepts credentials provider
+ SSLContext made pluggable
+ javahl replacement works with Subclipse
+ bugfixes

= build 20041118

+ javahl implementation (SvnClient) is included into the library
+ workspace accepts credentials provider

= build 20041116

+ bugfixes

= build 20041110

+ svn:externals support
+ bugfixes

= build 20041109

+ bug that prevents checkout sometimes fixed

= build 20041108

+ authentication API simplified
+ performance improvements
+ bugfixes

= build 20041105

+ switch and relocate operations
+ bugfixes