Hi Daniel,

thanks for your response.
I tried “dry”-merge with the svn command line interface.
With the SVN command line the failing assertion does not appear.
Only the error:
“SOURCE must be ancestrally related to TARGET”
is listed, but there does not appear the failing assertion.
Like you mentioned it seems to be a Tortoise issue and not a subversion issue.
I will post it on the Tortoise Mailing List as you has recommended.

Best regards
Matthias Klose

Von: Daniel Sahlberg <daniel.l.sahlb...@gmail.com>
Gesendet: Donnerstag, 14. September 2023 21:51
An: Matthias Klose <m.kl...@automation.de>
Cc: dev@subversion.apache.org
Betreff: Re: Subversion Exception - assertion failed

Den tis 12 sep. 2023 kl 12:19 skrev Matthias Klose 
<m.kl...@automation.de<mailto:m.kl...@automation.de>>:
Hi,

I want to list a failing assertion.

What have I done?:
Preparing a merge on a directory with Doxygen configuration files (maybe not 
usefull, but I did it).
choosing options: Merge a range of revisions / all revisions / Compare 
whitespaces
then running [Test merge]

Can you reproduce this error using the command line client? You can install it 
from the TortoiseSVN installer by choosing the Command line tools.

You should probably do some variation of svn merge possibly with the --dry-run 
option.

-> this leads into the following exception:

---------------------------
Subversion Exception!
---------------------------
Subversion encountered a serious problem.
Please take the time to report this on the Subversion mailing list
with as much information as possible about what
you were trying to do.
But please first search the mailing list archives for the error message
to avoid reporting the same problem repeatedly.
You can find the mailing list archives at
https://link.edgepilot.com/s/de8cddbe/fCU1WoIk6EO-Ufx5h6yVTQ?u=https://subversion.apache.org/mailing-lists.html

Despite the advice in the error message, it is usually best to report to the 
TortoiseSVN mailing list unless you are also able to reproduce it with the 
command line tool. In most cases it has turned out that TortoiseSVN is calling 
the Subversion library with faulty and/or inconsistent options.See 
https://link.edgepilot.com/s/55c261b9/bWhwTiKVOUiu-ONfzMYYOQ?u=https://groups.google.com/g/tortoisesvn



Subversion reported the following
(you can copy the content of this dialog
to the clipboard using Ctrl-C):

In file
 
'D:\Development\SVN\Releases\TortoiseSVN-1.14.5\ext\subversion\subversion\libsvn_client\merge.c'
 line 4994: assertion failed (*gap_start < *gap_end)

The assert you have hit has the following comment:
      /* ### Issue #4132:
         ### This assertion triggers [...]
         ### when a node is replaced by an older copy of itself. */

Does this make sense to you when you look at your repository?

I tried to create a naive repository and I don't trigger this assertion so 
obviously the repository has to have some certain properties.

---------------------------
OK
---------------------------

Remark:

if I run [Merge] instead of [Test Merge]
then NO exception appears
and Merge ends in my case with the following message:
"Error: '...foo_1' must
Error:  be ancestrally related to
Error:  '...foo_2'  "

Are you trying to merge changes from one path that is not related (ie, copied) 
to the other?

I was able to create a repository where I got the same error message from the 
[Merge] button, while I got a completely different error message from the [Test 
Merge] button. This lead me to believe that [Merge] and [Test Merge] is calling 
the Subversion libraries with different arguments. However I don't have time to 
investigate this further at the moment.


Hope this helps to fix the failing assertion.

If you can give some more details about your repository including previous 
merges (even better if you can write a reproduction receipt) that would be 
great. And consider reporting this on the TortoiseSVN mailing list if you think 
that it is a TortoiseSVN-only problem.

Kind regards,
Daniel Sahlberg

Reply via email to