I’m using p42svn to convert a Perforce repository into a Subversion repository. I’m using that chance to filter out some accidentally submitted files, for example the Library directory of our Unity project.
I am using svndumpfilter from subversion-1.9.1 with a bunch of exclude prefixes.
The filter seems to complete fine, though I’m getting an assert at the end of the run:
lt-svndumpfilter: subversion/libsvn_subr/path.c:429: svn_path_compare_paths: Assertion `is_canonical(path1, path1_len)' failed.
The offending path seems to be:
(which is not canonical based on the definition in the source code)
Stack trace is:
#0 0x00007f95a401c107 in __GI_raise (sig=sig_at_entry=6) at ../nptl/sysdeps/unix/sysv/linux/raise.c:56
#1 0x00007f95a401d4e8 in __GI_abort () at abort.c:89
#2 0x00007f95a4015226 in __assert_fail_base (fmt=0x7f95a414bce8 "%s%s%s:%u: %s%sAssertion `%s' failed.\n%n",
assertion=assertion_at_entry=0x7f95a57dd928 "is_canonical(path1, path1_len)", file=file_at_entry=0x7f95a57dd734 "subversion/libsvn_subr/path.c", line=line_at_entry=429,
function=function_at_entry=0x7f95a57dda10 <__PRETTY_FUNCTION__.7836> "svn_path_compare_paths") at assert.c:92
#3 0x00007f95a40152d2 in __GI___assert_fail (assertion=assertion_at_entry=0x7f95a57dd928 "is_canonical(path1, path1_len)",
file=file_at_entry=0x7f95a57dd734 "subversion/libsvn_subr/path.c", line=line_at_entry=429, function=function_at_entry=0x7f95a57dda10 <__PRETTY_FUNCTION__.7836> "svn_path_compare_paths")
#4 0x00007f95a57b588a in svn_path_compare_paths (path1=0x10dcc58 "/trunk/Unity/Library/metadata/8a/",
path2=0x10f1ba8 "/trunk/Unity/Library/metadata/fe/fe182cf4ad9426b4d9098d36401e7970") at subversion/libsvn_subr/path.c:429
#5 0x00007f95a401de51 in msort_with_tmp (p=0x7ffcf63b84e0, b=0x111a5a0, n=2) at msort.c:83
… more msort...
#26 0x00007f95a401e0fc in msort_with_tmp (n=2036, b=0x111a558, p=0x7ffcf63b84e0) at msort.c:45
#27 __GI_qsort_r (b=0x111a558, n=2036, s=8, cmp=0x7f95a57bae90 <svn_sort_compare_paths>, arg=<optimized out>) at msort.c:297
#28 0x0000000000403abf in do_filter (baton=0x10b4248, do_exclude=17907760, pool=0x0, os=<optimized out>) at subversion/svndumpfilter/svndumpfilter.c:1282
#29 0x00000000004027c5 in sub_main (pool=0x109d0b8, argv=<optimized out>, argc=<optimized out>, exit_code=<synthetic pointer>) at subversion/svndumpfilter/svndumpfilter.c:1581
#30 main (argc=<optimized out>, argv=<optimized out>) at subversion/svndumpfilter/svndumpfilter.c:1615
I had a look at the svndump file from p42svn, and the node path for the directory is written as:
So the question is: Should p42svn remove the trailing slash for directory nodes, or is this something that svndumpfilter should handle? I had a look at the svn dump of an existing repository, and it does not have trailing slashes.
Received on 2015-09-13 22:01:35 CEST