Hello Casten,

> I've looked into some of the callbacks for SVNCopySource, but it appears I 
> can only get notifications or callbacks for wc to repo copies.  Is there any 
> relatively simple way to achieve this and if not, what might be the classes I 
> should look at modifying to add this support.
Unfortunately, High Level API of SVNKit is not able to do such tricks.
The only option is to use SVNRepository and ISVNEditor interfaces to
perform remote copy operation with necessary changes.

If I understand the whole your problem correctly there is a couple of
sub-tasks you have to deal with:

1. Collect all the floating externals.

For the certain branch in Subversion repository you have to traverse all
the directory properties and filter svn:externals with locations
pointing to HEAD revision.

Probably the most efficient solution is to run SVNRepository#status with
your implementation of ISVNEditor which will not receive file contents
but will receive necessary properties via a few requests, instead of
fetching directory properties recursively.

2. Once you have externals, you have to run commit editor (see
SVNRepository#getCommitEditor).

In order to understand which methods of ISVNEditor you should call, try
exactly the same operation with your working copy:

- Create working copy with externals locations you'd like to pin.

- Modify svn:externals properties as needed.

- Enable SVNKit logging, see https://wiki.svnkit.com/Troubleshooting.

- Run the following command with jsvn utility:

$ jsvn copy -m "Commit message" $wc $repository

After that you'll find the connection log file with corresponding method
calls.

Another hint is to use internal API — SVNCommitUtil#driveCommitEditor.
This method makes it a bit easier to run ISVNEditor with known modified
paths.

Hope that helps.

Semen Vadishev,
TMate Software,
http://svnkit.com/ - Java [Sub]Versioning Library!
http://sqljet.com/ - Java SQLite Library!



On 19 May 2011 19:01, Casten Riepling wrote:
> Hi folks,
>
> I'm looking for information and guidance on how I might handle or implement 
> the following case:
>
> When performing a copy operation, I'd like to pin any floating svn externals 
> to their current revision.  I'd like this to work for a repo to repo copy, 
> not wc.
>
> I've looked into some of the callbacks for SVNCopySource, but it appears I 
> can only get notifications or callbacks for wc to repo copies.  Is there any 
> relatively simple way to achieve this and if not, what might be the classes I 
> should look at modifying to add this support.
>
> Thank you for your help and guidance.
>
> -Casten
>
>
>


Reply via email to