Hi Dmitry,

Thank you so much for your assistance. That is one of the things I like
about the svnkit project, you and your team are always quick to respond and
are always very helpful.


Thanks again,

Dale



On Thu, Jun 12, 2014 at 2:50 AM, Dmitry Pavlenko <pavle...@tmatesoft.com>
wrote:

> Hello Dale,
> Our documentation is outdated, this is true. You can find examples in
> SVNKit sources.
>
> You can have a look at sources of org.tmatesoft.svn.core.wc.SVNXXXClient
> classes. Every
>
> SVNXXXClient#doXXX of old SVNKit API is implement using new API.
>
> For example, SVNUpdateClient#doSwitch is implemented this way:
>
>     public long doSwitch(File path, SVNURL url, SVNRevision pegRevision,
> SVNRevision revision,
> SVNDepth depth, boolean allowUnversionedObstructions, boolean
> depthIsSticky, boolean ignoreAncestry)
> throws SVNException {
>         SvnSwitch sw = getOperationsFactory().createSwitch();
>         sw.setUpdateLocksOnDemand(isUpdateLocksOnDemand());
>         sw.setSwitchTarget(SvnTarget.fromURL(url, pegRevision));
>         sw.setSingleTarget(SvnTarget.fromFile(path));
>         sw.setRevision(revision);
>         sw.setDepth(depth);
>         sw.setDepthIsSticky(depthIsSticky);
>         sw.setAllowUnversionedObstructions(allowUnversionedObstructions);
>         sw.setIgnoreAncestry(ignoreAncestry);
>         sw.setIgnoreExternals(isIgnoreExternals());
>
> sw.setExternalsHandler(SvnCodec.externalsHandler(getExternalsHandler()));
>
>         return sw.run();
>     }
>
>
> You can also have a look at  org.tmatesoft.svn.test.XXXTest classes, they
> use both old and new API.
> Usually the code looks this way:
>
>         final SvnOperationFactory svnOperationFactory = new
> SvnOperationFactory();
>         try {
>
> svnOperationFactory.setAuthenticationManager(authenticationManager);
>             svnOperationFactory.setEventHandler(eventHandler);
>             ..........
>             svnOperationFactory.setZZZ(...);
>             ..........
>             final SvnXXX operation = svnOperationFactory.createXXX();
>             ..........
>             operation.setYYY(...);
>             ........
>
> operation.setSingleTarget(SvnTarget.fromFile(workingCopyDirectory));
>             operation.run();
>
>         } finally {
>             svnOperationFactory.dispose();
>         }
>
> Note, that SvnOperationFactory contains SVN connections pool, so it can be
> reused between operations
> and it should be disposed after all.
>
>
>
> We will mostly add new SVN features to the new API only, so prefer the new
> API to the old API.
>
> --
> Dmitry Pavlenko,
> TMate Software,
> http://subgit.com/ - git-svn bridge
>
> > Thanks, that worked nicely. Are there any other examples of how to use
> the
> > new API? I'm finding getting status doesn't work like it used to, so I'm
> > assuming I should update to use the new API to get correct status. The
> wiki
> > doesn't seem to have as much as it did in the past, so I'm wondering if
> I'm
> > looking in the wrong place for documentation?
> >
> > Thanks,
> >
> > Dale
> >
> >
> >
> >
> > On Wed, Jun 11, 2014 at 2:52 PM, Dmitry Pavlenko <pavle...@tmatesoft.com
> >
> >
> > wrote:
> > > Hello Dale,
> > > You can try this command:
> > >
> > > $ ./gradlew clean publish -Pto=/your/destination/directory -x
> > > svnkit:signMaven -x svnkit-javahl16:signMaven
> > >
> > > --
> > > Dmitry Pavlenko,
> > > TMate Software,
> > > http://subgit.com/ - git-svn bridge
> > >
> > > > Hi Dmitry,
> > > >
> > > > A follow on question -- how can I build from source? The instructions
> > > > on the website appear to be out of date, referencing ant rather than
> > > > gradle. Running 'gradlew clean assemble' give this error:
> > > >
> > > > FAILURE: Build failed with an exception.
> > > >
> > > > * What went wrong:
> > > > Execution failed for task ':svnkit:signMaven'.
> > > >
> > > > > Cannot perform signing task ':svnkit:signMaven' because it has no
> > > >
> > > > configured signatory
> > > >
> > > > Any thoughts on this? I have checked out the latest svnkit code from
> > >
> > > trunk
> > >
> > > > at revision 10276.
> > > >
> > > > Thanks,
> > > >
> > > > Dale
> > > >
> > > >
> > > >
> > > > On Tue, Jun 10, 2014 at 4:42 AM, Dmitry Pavlenko
> > > > <pavle...@tmatesoft.com
> > > >
> > > > wrote:
> > > > > Hello Dale,
> > > > > Thanks for pointing to that, I fixed the problem at r10276 of
> SVNKit
> > > > > trunk.
> > > > >
> > > > > For now as a workaround you can also specify primary WC generation
> > > > > (SvnOperationFactory#setPrimaryWcGeneration) in addition to
> > > > > targetWorkingCopyFormat.
> > > > > --
> > > > > Dmitry Pavlenko,
> > > > > TMate Software,
> > > > > http://subgit.com/ - git-svn bridge
> > > > >
> > > > > > Hi Dmitry,
> > > > > >
> > > > > > Actually, not so perfect. The way you described only works for
> 1.7
> > >
> > > and
> > >
> > > > > 1.8
> > > > >
> > > > > > working format. Choosing 1.6 working format gives this error:
> > > > > >
> > > > > > svn: E155036: Working copy format of '/path/to/directory' is too
> > > > > > old '10'
> > > > > >
> > > > > > Frankly, I'm not too concerned about people using versions older
> > > > > > than
> > > > >
> > > > > 1.7,
> > > > >
> > > > > > so really I'm just wondering if this approach should work?
> > > > > >
> > > > > > Here's the code I'm trying now
> > > > > >
> > > > > >         final SvnCheckout checkout =
> > > > > >
> > > > > > client.getOperationsFactory().createCheckout();
> > > > > >
> > > > > >
> checkout.setSource(SvnTarget.fromURL(SVNURL.parseURIDecoded
> > > > > >         (
> > > > > >
> > > > > > cd.getURL() )));
> > > > > >
> > > > > >         checkout.setSingleTarget(SvnTarget.fromFile(localPath));
> > > > > >         checkout.setTargetWorkingCopyFormat(wc_format);
> > > > > >         Long revision = checkout.run();
> > > > > >
> > > > > > Setting wc_format to anything less than ISVNWCDb.WC_FORMAT_17
> > > > > > causes the same error I mentioned.
> > > > > >
> > > > > > Thanks,
> > > > > >
> > > > > > Dale
> > > > > >
> > > > > > On Fri, Jun 6, 2014 at 6:21 PM, Dale Anson <d...@daleanson.com>
> > >
> > > wrote:
> > > > > > > Perfect! Thank you!
> > > > > > >
> > > > > > > On Jun 6, 2014 4:42 PM, "Dmitry Pavlenko"
> > > > > > > <pavle...@tmatesoft.com>
> > > > >
> > > > > wrote:
> > > > > > >> Hello Dale,
> > > > > > >> Please have a look at my answer to a similar question:
> > > > > > >>
> > > > > > >> http://issues.tmatesoft.com/issue/SVNKIT-495
> > > > > > >>
> > > > > > >> I hope this helps.
> > > > > > >>
> > > > > > >> client.getOperationsFactory().setPrimaryWcGeneration(
> > > > > > >> SvnWcGeneration.V16 );
> > > > > > >> statement is not the valid way SVNKit API should be used. Use
> > > > > > >>
> > > > > > >> svnOperationFactory.createCheckout();
> > > > > > >>
> > > > > > >> instead as in my answer to the issue.
> > > > > > >> --
> > > > > > >> Dmitry Pavlenko,
> > > > > > >> TMate Software,
> > > > > > >> http://subgit.com/ - git-svn bridge
> > > > > > >>
> > > > > > >> > I'm updating the svn plugin for jEdit, which uses svnkit, to
> > > > > > >> > svnkit
> > > > > > >>
> > > > > > >> 1.8.5.
> > > > > > >>
> > > > > > >> > With previous versions (1.7.9 and earlier, anyway), it was
> > > > > > >> > possible
> > > > >
> > > > > to
> > > > >
> > > > > > >> set
> > > > > > >>
> > > > > > >> > the desired working copy format. This doesn't seem possible
> > > > > > >> > with 1.8.5.
> > > > > > >> >
> > > > > > >> > I was using code like this:
> > > > > > >> >
> > > > > > >> > SVNUpdateClient client = clientManager.getUpdateClient();
> > > > > > >> > client.getOperationsFactory().setPrimaryWcGeneration(
> > > > > > >>
> > > > > > >> SvnWcGeneration.V16
> > > > > > >>
> > > > > > >> > ); revision = client.doCheckout( SVNURL.parseURIDecoded( url
> > > > > > >> > ),
> > > > > > >>
> > > > > > >> localPath,
> > > > > > >>
> > > > > > >> > SVNRevision.HEAD, SVNRevision.HEAD, SVNDepth.INFINITY, true
> );
> > > > > > >> >
> > > > > > >> > This used to checkout the code in 1.6 working copy format.
> > > > > > >> > With
> > > > >
> > > > > 1.8.5,
> > > > >
> > > > > > >> it's
> > > > > > >>
> > > > > > >> > always 1.8 format regardless of the value set in
> > > > > > >>
> > > > > > >> setPrimaryWcGeneration. Is
> > > > > > >>
> > > > > > >> > there a different way to achieve this with the new version
> of
> > > > >
> > > > > svnkit?
> > > > >
> > > > > > >> This
> > > > > > >>
> > > > > > >> > is a nice feature for people who for some reason, like
> > > > > > >> > compatibility
> > > > > > >>
> > > > > > >> with
> > > > > > >>
> > > > > > >> > other tools, can't use the 1.8 working format.
> > > > > > >> >
> > > > > > >> > Thanks,
> > > > > > >> >
> > > > > > >> > Dale
>

Reply via email to