Bug in "svn:log" handling in SVNKit svnsync

View: New views
7 Messages — Rating Filter:   Alert me  

Bug in "svn:log" handling in SVNKit svnsync

by Greg Gibeling-2 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

        SVNKit 1.3.0, and I presume many past versions (based on the
contents of my repository backups), seems not to handle the "svn:log"
revprop correctly during doSynchronize().  In particular it seems to always
leave the "svn:log" blank.
        The logic on lines 133-138 of SVNReplayHandler.java appears to be at
fault, though I've not yet been able to completely understand it.  In
particular the top half of the "if" special cases the author and date
revprops, but not the log, which I suspect it should.  I could be wrong
though as the second half of the if statement (where
myHasCommitRevPropsCapability is false) should never be entered because
unless I misunderstand how svnsync revprop changes are required for it to
work.
        I should mention that the source server is SVN 1.4, so
replayRangeImpl() on SVNRepository exceptions out, and lines 2289-2294 of
SVNRepository.java come into play.  The call to filterProperties() from
SVNReplayHandler.java line 116 is the one which seems to return incorrect
revprops, as after that call filtered contains "svn:date" and "svn:author"
but not "svn:log" though all three are in revisionProperties.

        Let me know if there's thing more I can do to help narrow this down.
Thanks in advance for looking into this.

-Greg


---------------------------------------------------------------------
To unsubscribe, e-mail: svnkit-users-unsubscribe@...
For additional commands, e-mail: svnkit-users-help@...


Re: Bug in "svn:log" handling in SVNKit svnsync

by Alexander Sinyushkin :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Hello Greg,

Thank you for pointing at this problem, I've found the problem and
expect the fix to appear soon in trunk. I'll give you to know about that
anyway.
----
Alexander Sinyushkin,
TMate Software,
http://svnkit.com/ - Java [Sub]Versioning Library!

Greg Gibeling wrote:

> SVNKit 1.3.0, and I presume many past versions (based on the
> contents of my repository backups), seems not to handle the "svn:log"
> revprop correctly during doSynchronize().  In particular it seems to always
> leave the "svn:log" blank.
> The logic on lines 133-138 of SVNReplayHandler.java appears to be at
> fault, though I've not yet been able to completely understand it.  In
> particular the top half of the "if" special cases the author and date
> revprops, but not the log, which I suspect it should.  I could be wrong
> though as the second half of the if statement (where
> myHasCommitRevPropsCapability is false) should never be entered because
> unless I misunderstand how svnsync revprop changes are required for it to
> work.
> I should mention that the source server is SVN 1.4, so
> replayRangeImpl() on SVNRepository exceptions out, and lines 2289-2294 of
> SVNRepository.java come into play.  The call to filterProperties() from
> SVNReplayHandler.java line 116 is the one which seems to return incorrect
> revprops, as after that call filtered contains "svn:date" and "svn:author"
> but not "svn:log" though all three are in revisionProperties.
>
> Let me know if there's thing more I can do to help narrow this down.
> Thanks in advance for looking into this.
>
> -Greg
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: svnkit-users-unsubscribe@...
> For additional commands, e-mail: svnkit-users-help@...
>
>
>

---------------------------------------------------------------------
To unsubscribe, e-mail: svnkit-users-unsubscribe@...
For additional commands, e-mail: svnkit-users-help@...


RE: Bug in "svn:log" handling in SVNKit svnsync

by Greg Gibeling-2 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

        As always, thanks.  SVNKit is a real life saver.

-Greg

> -----Original Message-----
> From: Alexander Sinyushkin [mailto:Alexander.Sinyushkin@...]
> Sent: Thursday, May 28, 2009 9:31 AM
> To: svnkit-users@...
> Subject: Re: Bug in "svn:log" handling in SVNKit svnsync
>
> Hello Greg,
>
> Thank you for pointing at this problem, I've found the problem and
> expect the fix to appear soon in trunk. I'll give you to know about
> that
> anyway.
> ----
> Alexander Sinyushkin,
> TMate Software,
> http://svnkit.com/ - Java [Sub]Versioning Library!
>
> Greg Gibeling wrote:
> > SVNKit 1.3.0, and I presume many past versions (based on the
> > contents of my repository backups), seems not to handle the "svn:log"
> > revprop correctly during doSynchronize().  In particular it seems to
> always
> > leave the "svn:log" blank.
> > The logic on lines 133-138 of SVNReplayHandler.java appears to be
> at
> > fault, though I've not yet been able to completely understand it.  In
> > particular the top half of the "if" special cases the author and date
> > revprops, but not the log, which I suspect it should.  I could be
> wrong
> > though as the second half of the if statement (where
> > myHasCommitRevPropsCapability is false) should never be entered
> because
> > unless I misunderstand how svnsync revprop changes are required for
> it to
> > work.
> > I should mention that the source server is SVN 1.4, so
> > replayRangeImpl() on SVNRepository exceptions out, and lines 2289-
> 2294 of
> > SVNRepository.java come into play.  The call to filterProperties()
> from
> > SVNReplayHandler.java line 116 is the one which seems to return
> incorrect
> > revprops, as after that call filtered contains "svn:date" and
> "svn:author"
> > but not "svn:log" though all three are in revisionProperties.
> >
> > Let me know if there's thing more I can do to help narrow this
> down.
> > Thanks in advance for looking into this.
> >
> > -Greg
> >
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: svnkit-users-unsubscribe@...
> > For additional commands, e-mail: svnkit-users-help@...
> >
> >
> >
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: svnkit-users-unsubscribe@...
> For additional commands, e-mail: svnkit-users-help@...



---------------------------------------------------------------------
To unsubscribe, e-mail: svnkit-users-unsubscribe@...
For additional commands, e-mail: svnkit-users-help@...


Re: Bug in "svn:log" handling in SVNKit svnsync

by Alexander Sinyushkin :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Hello Greg,

the fix is already in trunk. Can you please approve that it fixes your
problem. Thank you!
----
Alexander Sinyushkin,
TMate Software,
http://svnkit.com/ - Java [Sub]Versioning Library!

Greg Gibeling wrote:

> As always, thanks.  SVNKit is a real life saver.
>
> -Greg
>
>> -----Original Message-----
>> From: Alexander Sinyushkin [mailto:Alexander.Sinyushkin@...]
>> Sent: Thursday, May 28, 2009 9:31 AM
>> To: svnkit-users@...
>> Subject: Re: Bug in "svn:log" handling in SVNKit svnsync
>>
>> Hello Greg,
>>
>> Thank you for pointing at this problem, I've found the problem and
>> expect the fix to appear soon in trunk. I'll give you to know about
>> that
>> anyway.
>> ----
>> Alexander Sinyushkin,
>> TMate Software,
>> http://svnkit.com/ - Java [Sub]Versioning Library!
>>
>> Greg Gibeling wrote:
>>> SVNKit 1.3.0, and I presume many past versions (based on the
>>> contents of my repository backups), seems not to handle the "svn:log"
>>> revprop correctly during doSynchronize().  In particular it seems to
>> always
>>> leave the "svn:log" blank.
>>> The logic on lines 133-138 of SVNReplayHandler.java appears to be
>> at
>>> fault, though I've not yet been able to completely understand it.  In
>>> particular the top half of the "if" special cases the author and date
>>> revprops, but not the log, which I suspect it should.  I could be
>> wrong
>>> though as the second half of the if statement (where
>>> myHasCommitRevPropsCapability is false) should never be entered
>> because
>>> unless I misunderstand how svnsync revprop changes are required for
>> it to
>>> work.
>>> I should mention that the source server is SVN 1.4, so
>>> replayRangeImpl() on SVNRepository exceptions out, and lines 2289-
>> 2294 of
>>> SVNRepository.java come into play.  The call to filterProperties()
>> from
>>> SVNReplayHandler.java line 116 is the one which seems to return
>> incorrect
>>> revprops, as after that call filtered contains "svn:date" and
>> "svn:author"
>>> but not "svn:log" though all three are in revisionProperties.
>>>
>>> Let me know if there's thing more I can do to help narrow this
>> down.
>>> Thanks in advance for looking into this.
>>>
>>> -Greg
>>>
>>>
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: svnkit-users-unsubscribe@...
>>> For additional commands, e-mail: svnkit-users-help@...
>>>
>>>
>>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: svnkit-users-unsubscribe@...
>> For additional commands, e-mail: svnkit-users-help@...
>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: svnkit-users-unsubscribe@...
> For additional commands, e-mail: svnkit-users-help@...
>
>
>

---------------------------------------------------------------------
To unsubscribe, e-mail: svnkit-users-unsubscribe@...
For additional commands, e-mail: svnkit-users-help@...


RE: Bug in "svn:log" handling in SVNKit svnsync

by Greg Gibeling-2 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

        In testing that appears to solve the problem.  I'm going to resync
the repositories tonight (I've got 10000+ revs without log messages!) but I
expect that to go smoothly.  Thanks again!

-Greg

> -----Original Message-----
> From: Alexander Sinyushkin [mailto:Alexander.Sinyushkin@...]
> Sent: Friday, May 29, 2009 5:53 AM
> To: svnkit-users@...
> Subject: Re: Bug in "svn:log" handling in SVNKit svnsync
>
> Hello Greg,
>
> the fix is already in trunk. Can you please approve that it fixes your
> problem. Thank you!
> ----
> Alexander Sinyushkin,
> TMate Software,
> http://svnkit.com/ - Java [Sub]Versioning Library!
>
> Greg Gibeling wrote:
> > As always, thanks.  SVNKit is a real life saver.
> >
> > -Greg
> >
> >> -----Original Message-----
> >> From: Alexander Sinyushkin [mailto:Alexander.Sinyushkin@...]
> >> Sent: Thursday, May 28, 2009 9:31 AM
> >> To: svnkit-users@...
> >> Subject: Re: Bug in "svn:log" handling in SVNKit svnsync
> >>
> >> Hello Greg,
> >>
> >> Thank you for pointing at this problem, I've found the problem and
> >> expect the fix to appear soon in trunk. I'll give you to know about
> >> that
> >> anyway.
> >> ----
> >> Alexander Sinyushkin,
> >> TMate Software,
> >> http://svnkit.com/ - Java [Sub]Versioning Library!
> >>
> >> Greg Gibeling wrote:
> >>> SVNKit 1.3.0, and I presume many past versions (based on the
> >>> contents of my repository backups), seems not to handle the
> "svn:log"
> >>> revprop correctly during doSynchronize().  In particular it seems
> to
> >> always
> >>> leave the "svn:log" blank.
> >>> The logic on lines 133-138 of SVNReplayHandler.java appears to be
> >> at
> >>> fault, though I've not yet been able to completely understand it.
> In
> >>> particular the top half of the "if" special cases the author and
> date
> >>> revprops, but not the log, which I suspect it should.  I could be
> >> wrong
> >>> though as the second half of the if statement (where
> >>> myHasCommitRevPropsCapability is false) should never be entered
> >> because
> >>> unless I misunderstand how svnsync revprop changes are required for
> >> it to
> >>> work.
> >>> I should mention that the source server is SVN 1.4, so
> >>> replayRangeImpl() on SVNRepository exceptions out, and lines 2289-
> >> 2294 of
> >>> SVNRepository.java come into play.  The call to filterProperties()
> >> from
> >>> SVNReplayHandler.java line 116 is the one which seems to return
> >> incorrect
> >>> revprops, as after that call filtered contains "svn:date" and
> >> "svn:author"
> >>> but not "svn:log" though all three are in revisionProperties.
> >>>
> >>> Let me know if there's thing more I can do to help narrow this
> >> down.
> >>> Thanks in advance for looking into this.
> >>>
> >>> -Greg
> >>>
> >>>
> >>> -------------------------------------------------------------------
> --
> >>> To unsubscribe, e-mail: svnkit-users-unsubscribe@...
> >>> For additional commands, e-mail: svnkit-users-help@...
> >>>
> >>>
> >>>
> >> --------------------------------------------------------------------
> -
> >> To unsubscribe, e-mail: svnkit-users-unsubscribe@...
> >> For additional commands, e-mail: svnkit-users-help@...
> >
> >
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: svnkit-users-unsubscribe@...
> > For additional commands, e-mail: svnkit-users-help@...
> >
> >
> >
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: svnkit-users-unsubscribe@...
> For additional commands, e-mail: svnkit-users-help@...



---------------------------------------------------------------------
To unsubscribe, e-mail: svnkit-users-unsubscribe@...
For additional commands, e-mail: svnkit-users-help@...


RE: Bug in "svn:log" handling in SVNKit svnsync

by Greg Gibeling-2 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

        Found a related bug.  When attempting to synchronize two
repositories which are not out of sync (e.g. both are at rev 414 in the
smaller of my repositories) I get an NPE.  Here's the top of the stack
trace:

java.lang.NullPointerException
        at
org.tmatesoft.svn.core.wc.admin.SVNReplayHandler.getNormalizedNodePropsCount
(SVNReplayHandler.java:140)
        at
org.tmatesoft.svn.core.wc.admin.SVNAdminClient.doSynchronize(SVNAdminClient.
java:696)

        Obviously the addition of property normalization from rev5862 is
what did it.  One possible fix is to change line 140 of
SVNReplayHandler.java to:

return (mySyncEditor == null) ? 0 :
mySyncEditor.getNormalizedNodePropsCounter();

        That seems to fix my problem for now at least.  I'll be running a
complete resync of the repositories tonight through tomorrow with that hack
in place.  Obviously you'll hear from me if it fails.
        Just let me know if I can help in any way.

-Greg

> -----Original Message-----
> From: Alexander Sinyushkin [mailto:Alexander.Sinyushkin@...]
> Sent: Friday, May 29, 2009 5:53 AM
> To: svnkit-users@...
> Subject: Re: Bug in "svn:log" handling in SVNKit svnsync
>
> Hello Greg,
>
> the fix is already in trunk. Can you please approve that it fixes your
> problem. Thank you!
> ----
> Alexander Sinyushkin,
> TMate Software,
> http://svnkit.com/ - Java [Sub]Versioning Library!
>
> Greg Gibeling wrote:
> > As always, thanks.  SVNKit is a real life saver.
> >
> > -Greg
> >
> >> -----Original Message-----
> >> From: Alexander Sinyushkin [mailto:Alexander.Sinyushkin@...]
> >> Sent: Thursday, May 28, 2009 9:31 AM
> >> To: svnkit-users@...
> >> Subject: Re: Bug in "svn:log" handling in SVNKit svnsync
> >>
> >> Hello Greg,
> >>
> >> Thank you for pointing at this problem, I've found the problem and
> >> expect the fix to appear soon in trunk. I'll give you to know about
> >> that
> >> anyway.
> >> ----
> >> Alexander Sinyushkin,
> >> TMate Software,
> >> http://svnkit.com/ - Java [Sub]Versioning Library!
> >>
> >> Greg Gibeling wrote:
> >>> SVNKit 1.3.0, and I presume many past versions (based on the
> >>> contents of my repository backups), seems not to handle the
> "svn:log"
> >>> revprop correctly during doSynchronize().  In particular it seems
> to
> >> always
> >>> leave the "svn:log" blank.
> >>> The logic on lines 133-138 of SVNReplayHandler.java appears to be
> >> at
> >>> fault, though I've not yet been able to completely understand it.
> In
> >>> particular the top half of the "if" special cases the author and
> date
> >>> revprops, but not the log, which I suspect it should.  I could be
> >> wrong
> >>> though as the second half of the if statement (where
> >>> myHasCommitRevPropsCapability is false) should never be entered
> >> because
> >>> unless I misunderstand how svnsync revprop changes are required for
> >> it to
> >>> work.
> >>> I should mention that the source server is SVN 1.4, so
> >>> replayRangeImpl() on SVNRepository exceptions out, and lines 2289-
> >> 2294 of
> >>> SVNRepository.java come into play.  The call to filterProperties()
> >> from
> >>> SVNReplayHandler.java line 116 is the one which seems to return
> >> incorrect
> >>> revprops, as after that call filtered contains "svn:date" and
> >> "svn:author"
> >>> but not "svn:log" though all three are in revisionProperties.
> >>>
> >>> Let me know if there's thing more I can do to help narrow this
> >> down.
> >>> Thanks in advance for looking into this.
> >>>
> >>> -Greg
> >>>
> >>>
> >>> -------------------------------------------------------------------
> --
> >>> To unsubscribe, e-mail: svnkit-users-unsubscribe@...
> >>> For additional commands, e-mail: svnkit-users-help@...
> >>>
> >>>
> >>>
> >> --------------------------------------------------------------------
> -
> >> To unsubscribe, e-mail: svnkit-users-unsubscribe@...
> >> For additional commands, e-mail: svnkit-users-help@...
> >
> >
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: svnkit-users-unsubscribe@...
> > For additional commands, e-mail: svnkit-users-help@...
> >
> >
> >
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: svnkit-users-unsubscribe@...
> For additional commands, e-mail: svnkit-users-help@...



---------------------------------------------------------------------
To unsubscribe, e-mail: svnkit-users-unsubscribe@...
For additional commands, e-mail: svnkit-users-help@...


Re: Bug in "svn:log" handling in SVNKit svnsync

by Alexander Sinyushkin :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Thank you, Greg!

You are really a big help for us. I've committed the fix in
trunk.
----
Alexander Sinyushkin,
TMate Software,
http://svnkit.com/ - Java [Sub]Versioning Library!

Greg Gibeling wrote:

> Found a related bug.  When attempting to synchronize two
> repositories which are not out of sync (e.g. both are at rev 414 in the
> smaller of my repositories) I get an NPE.  Here's the top of the stack
> trace:
>
> java.lang.NullPointerException
> at
> org.tmatesoft.svn.core.wc.admin.SVNReplayHandler.getNormalizedNodePropsCount
> (SVNReplayHandler.java:140)
> at
> org.tmatesoft.svn.core.wc.admin.SVNAdminClient.doSynchronize(SVNAdminClient.
> java:696)
>
> Obviously the addition of property normalization from rev5862 is
> what did it.  One possible fix is to change line 140 of
> SVNReplayHandler.java to:
>
> return (mySyncEditor == null) ? 0 :
> mySyncEditor.getNormalizedNodePropsCounter();
>
> That seems to fix my problem for now at least.  I'll be running a
> complete resync of the repositories tonight through tomorrow with that hack
> in place.  Obviously you'll hear from me if it fails.
> Just let me know if I can help in any way.
>
> -Greg
>
>> -----Original Message-----
>> From: Alexander Sinyushkin [mailto:Alexander.Sinyushkin@...]
>> Sent: Friday, May 29, 2009 5:53 AM
>> To: svnkit-users@...
>> Subject: Re: Bug in "svn:log" handling in SVNKit svnsync
>>
>> Hello Greg,
>>
>> the fix is already in trunk. Can you please approve that it fixes your
>> problem. Thank you!
>> ----
>> Alexander Sinyushkin,
>> TMate Software,
>> http://svnkit.com/ - Java [Sub]Versioning Library!
>>
>> Greg Gibeling wrote:
>>> As always, thanks.  SVNKit is a real life saver.
>>>
>>> -Greg
>>>
>>>> -----Original Message-----
>>>> From: Alexander Sinyushkin [mailto:Alexander.Sinyushkin@...]
>>>> Sent: Thursday, May 28, 2009 9:31 AM
>>>> To: svnkit-users@...
>>>> Subject: Re: Bug in "svn:log" handling in SVNKit svnsync
>>>>
>>>> Hello Greg,
>>>>
>>>> Thank you for pointing at this problem, I've found the problem and
>>>> expect the fix to appear soon in trunk. I'll give you to know about
>>>> that
>>>> anyway.
>>>> ----
>>>> Alexander Sinyushkin,
>>>> TMate Software,
>>>> http://svnkit.com/ - Java [Sub]Versioning Library!
>>>>
>>>> Greg Gibeling wrote:
>>>>> SVNKit 1.3.0, and I presume many past versions (based on the
>>>>> contents of my repository backups), seems not to handle the
>> "svn:log"
>>>>> revprop correctly during doSynchronize().  In particular it seems
>> to
>>>> always
>>>>> leave the "svn:log" blank.
>>>>> The logic on lines 133-138 of SVNReplayHandler.java appears to be
>>>> at
>>>>> fault, though I've not yet been able to completely understand it.
>> In
>>>>> particular the top half of the "if" special cases the author and
>> date
>>>>> revprops, but not the log, which I suspect it should.  I could be
>>>> wrong
>>>>> though as the second half of the if statement (where
>>>>> myHasCommitRevPropsCapability is false) should never be entered
>>>> because
>>>>> unless I misunderstand how svnsync revprop changes are required for
>>>> it to
>>>>> work.
>>>>> I should mention that the source server is SVN 1.4, so
>>>>> replayRangeImpl() on SVNRepository exceptions out, and lines 2289-
>>>> 2294 of
>>>>> SVNRepository.java come into play.  The call to filterProperties()
>>>> from
>>>>> SVNReplayHandler.java line 116 is the one which seems to return
>>>> incorrect
>>>>> revprops, as after that call filtered contains "svn:date" and
>>>> "svn:author"
>>>>> but not "svn:log" though all three are in revisionProperties.
>>>>>
>>>>> Let me know if there's thing more I can do to help narrow this
>>>> down.
>>>>> Thanks in advance for looking into this.
>>>>>
>>>>> -Greg
>>>>>
>>>>>
>>>>> -------------------------------------------------------------------
>> --
>>>>> To unsubscribe, e-mail: svnkit-users-unsubscribe@...
>>>>> For additional commands, e-mail: svnkit-users-help@...
>>>>>
>>>>>
>>>>>
>>>> --------------------------------------------------------------------
>> -
>>>> To unsubscribe, e-mail: svnkit-users-unsubscribe@...
>>>> For additional commands, e-mail: svnkit-users-help@...
>>>
>>>
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: svnkit-users-unsubscribe@...
>>> For additional commands, e-mail: svnkit-users-help@...
>>>
>>>
>>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: svnkit-users-unsubscribe@...
>> For additional commands, e-mail: svnkit-users-help@...
>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: svnkit-users-unsubscribe@...
> For additional commands, e-mail: svnkit-users-help@...
>
>
>

---------------------------------------------------------------------
To unsubscribe, e-mail: svnkit-users-unsubscribe@...
For additional commands, e-mail: svnkit-users-help@...