1) sparse dirs ((+/-)) 2) new list functionality ((+)) - uses repository.info() + - dispatches SVNDirEntry for the target directory + - added null-check to DAVRepository.getDir() + 3) new copy functionality: ((+)) - copying local items added with history + - copying local items scheduled for addition without history + - copying multiple sources to URL + 4) xml-safety check for lock comments 5) what was SVNErrorMessage.TYPE_WARNING used for export operations? ...did it as in Subversion ((+)) 6) new repository format for FSFS: ((+)) - support for layouts ("linear", "sharded") 7) refactorings: - common use cases like SVNEntry entry = [adminArea\access].getEntry(...); if (entry == null) { SVNErrorMessage err = SVNErrorMessage.create(SVNErrorCode..., "... is not under version control"); SVNErrorManager.error(err); } are all moved to [SVNAdminArea\SVNWCAccess].getVersionedEntry() methods ((+)) 8) validation of EXTERNALS properties in SVNPropertiesManager.setProperty() 9) changelists implementation ((+/-)) 10) commit uses SVNTranslatorInputStream for diff windows (inconsistent eols cause commit to abort) ((+)) 11) commit with --with-revprop switch ((+)) 12) SVNPropeditCommand ((+)) 13) SVNWCClient.doSetProperty(SVNURL url, ...) ((+)) 14) replacement with history performed by SVNKit fails: ((+)) - say, we've got a versioned file without props at all - we create a file with the same name in the same repository in a different location and with some props attached to it - then we run 'jsvn delete' on the first file - after that we run 'jsvn copy file:///path2/to/file file' and... SVNKit crushes in the middle of the operation with an exception stack trace something like this: java.lang.NullPointerException at org.tmatesoft.svn.core.internal.wc.SVNFileUtil.copyFile(SVNFileUtil.java:392) at org.tmatesoft.svn.core.internal.wc.admin.SVNTranslator.translate(SVNTranslator.java:138) at org.tmatesoft.svn.core.internal.wc.admin.SVNTranslator.translate(SVNTranslator.java:111) at org.tmatesoft.svn.core.internal.wc.admin.SVNTranslator.translate(SVNTranslator.java:69) at org.tmatesoft.svn.core.internal.wc.admin.SVNTranslator.translate(SVNTranslator.java:64) at org.tmatesoft.svn.core.internal.wc.admin.SVNLogRunner.runCommand(SVNLogRunner.java:297) at org.tmatesoft.svn.core.internal.wc.admin.SVNLog.run(SVNLog.java:196) at org.tmatesoft.svn.core.internal.wc.admin.SVNAdminArea.runLogs(SVNAdminArea.java:842) at org.tmatesoft.svn.core.internal.wc.SVNWCManager.addRepositoryFile(SVNWCManager.java:565) at org.tmatesoft.svn.core.wc.SVNCopyClient.doCopy(SVNCopyClient.java:683) at org.tmatesoft.svn.cli.command.SVNCopyCommand.runRemoteToLocal(SVNCopyCommand.java:128) at org.tmatesoft.svn.cli.command.SVNCopyCommand.run(SVNCopyCommand.java:50) at org.tmatesoft.svn.cli.SVN.main(SVN.java:149) As it's been discovered the problem is in relative File representations with file names only 15) revert of replacement (that added new .base props) leaves .base props of ((+)) the reverted file if there were no .revert-base prop file Remarks: need to change copy (add empty .revert-base prop file) ((+)) 16) JavaHL implementation ((+/-)) 17) cancellation during jsvn* clients' execution (shutdown hook for Runtime?) 18) SVNRepository.getDir() with selected SVNDirEntry fields ((+)) 19) --parents switch for MkDir(SVNURL), SVNCopyClient.copy() ((+)) 20) bugfix in switch: switching to non-existent dir in repos should result to failing but not deleting local directory 21) SVNDiffClient.doDiffStatus() with pegRevision ((+)) 22) UTF-8 encoding for log messages 23) add support for --xml switch to 'jsvn prop[get/list]' 24) support for UNC paths in file protocol (must be tested in various operations) ((+)) 25) in SVNADminClient call SVNRepository.closeSession() when SVNRepository itself is not needed anymore. 26) automatic conflict resolution ((+)) 27) svndumpfilter functionality 28) file:/// improvements: - new txn dir names ((+)) 29) dumpfilter