Hi, I am also trying to do this.  I implemented ISVNEventHandler and
registered it in my SVNDiffClient but the handleEvent() method isn't being
called ever, only the checkCancelled method gets called.


for now I made the implementation really simple:


public class MergeEventHandler implements ISVNEventHandler {

    @Override
    public void handleEvent(SVNEvent event, double progress) throws
SVNException {
        System.out.println("handle event was called...");      
    }

    @Override
    public void checkCancelled() throws SVNCancelException {
        System.out.println("Check cancelled was called");
    }
}


As I said, handleEvent never gets called.  I register it like this:


cm = SVNClientManager.newInstance();
dc = cm.getDiffClient();
dc.setEventHandler(new MergeEventHandler());


and the doMerge function that I'm calling is:

public void doMerge(SVNURL url1,
                    SVNRevision revision1,
                    SVNURL url2,
                    SVNRevision revision2,
                    File dstPath,
                    SVNDepth depth,
                    boolean useAncestry,
                    boolean force,
                    boolean dryRun,
                    boolean recordOnly)
             throws SVNException


Am I doing something wrong or am I missing something?

-Adam.


Alexander Sinyushkin wrote:
> 
> Hello,
> 
> Yes, you're doing this right.When passing dryRyn=true, no real content 
> changes are performed,
> but still all SVNEvents that would come out in a normal case (not a dry 
> run) are passed to
> the registered ISVNEventHandler as well. So, you need to implement your 
> own ISVNEventHandler
> and pass it to SVNDiffClient (through its setEventHandler() setter). In 
> the handleEvent() method of
> your handler you should look through event actions which SVNKit sends 
> you in
> SVNEvent.getAction():SVNEventAction. If a merge causes a tree-conflict, 
> you'll get SVNEventAction.TREE_CONFLICT,
> to find out if there's a text or prop conflict, you have to check 
> SVNEvent.getContentsStatus() and SVNEvent.getPropertiesStatus()
> for SVNStatusType.CONFLICTED\SVNStatusType.CONFLICTED_UNRESOLVED while 
> SVNEvent.getAction() can be any of
> SVNEventAction.UPDATE_*. I hope the idea is clear.
> 
> ----
> Alexander Sinyushkin,
> TMate Software,
> http://svnkit.com/ - Java [Sub]Versioning Library!
> http://sqljet.com/ - Java SQLite Library!
> 
> 
> 
> chathu wrote:
>> Hi, 
>>
>> My svnkit version is 1.3.0. I used doMerge to mergr resository file to
>> the
>> local copy. I used fallowing method. 
>>
>> doMerge(SVNURL url1,SVNRevision revision1,File path2,SVNRevision
>> revision2,File dstPath,SVNDepth depth,boolean useAncestry,boolean
>> force,boolean dryRun,boolean recordOnly)throws SVNException  
>>
>> Also I need to first check if this file is conflicted. If it is not
>> conflicted I need to continue the merge. else stop this operation and
>> perform another operation.
>>
>> So I put dryrun as true.  
>>
>> I need to know how can I get a output from this. I couldn't find any out
>> parameters or any handlers.
>>
>> I need to know is there any wrong in my approach. Please mention is there
>> any alternative way to satisfy my requirement.  
>>
>> Thank you, 
>> Regards,
>> Chathurika.
>>
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [email protected]
> For additional commands, e-mail: [email protected]
> 
> 
> 

-- 
View this message in context: 
http://old.nabble.com/How-to-use-dryrun-of-SVNDiffClient.doMerge-method-tp25779766p32281415.html
Sent from the SVNKit - Users mailing list archive at Nabble.com.


Reply via email to