[svn.haxx.se] · SVN Dev · SVN Users · SVN Org · TSVN Dev · TSVN Users · Subclipse Dev · Subclipse Users · this month's index

Re: svn commit: r1813898 - in /subversion/trunk/subversion: libsvn_fs_fs/transaction.c libsvn_repos/reporter.c tests/cmdline/basic_tests.py tests/cmdline/svnadmin_tests.py

From: Stefan Fuhrmann <stefan2_at_apache.org>
Date: Mon, 27 Nov 2017 00:13:50 +0100

On 25.11.2017 21:27, Evgeny Kotkov wrote:
> Stefan Fuhrmann <stefan2_at_apache.org> writes:
>
>>> An alternative approach that might be worth considering here would be:
>>>
>>> (1) Extend the on-disk format and allow representation strings without
>>> SHA1, but with the uniquifier, something like this (where "-" stands
>>> for "no SHA1"):
>>>
>>> 15 0 563 7809 28ef320a82e7bd11eebdf3502d69e608 - 14-g/_5
>>>
>>> (The new format would be allowed starting from FSFS 8.)
>>
>> Yes, that would be one option. If you are willing to provide a patch,
>> I would probably +1 it. Not bothering with the space savings would
>> be a valid choice as well, IMO.
>>>
>>> (2) Use the new format to allow rep sharing for properties that writes
>>> the uniquifier so that svn_fs_props_changed() would work correctly,
>>> and doesn't introduce the overhead of writing SHA1 in the
>>> representation string for every property.
>
> [...]
>
>>> Barring objections and alternative suggestions, I could give a shot at
>>> implementing this.
>>
>> Go for it. Maybe notify me once you are done b/c currently, I don't
>> monitor the commit activity closely.
>
> I committed the implementations of (1) and (2) in
>
> https://svn.apache.org/r1816347 and
> https://svn.apache.org/r1816348
>
> respectively.

Reviewed, tested and seems to work fine. Thank you!

Test expectations may need to be adapted.
With v7 repos (see r1816402), I get two
test failures while v4 and v6 pass:

[[[
W: EXPECTED STDERR (regexp):
W: | .*Found malformed header '[^']*' in revision file|.*Missing id field in
node-rev.*
W: ACTUAL STDERR:
W: | * Error verifying repository metadata.
W: | subversion/svnadmin/svnadmin.c:2191,
W: | subversion/libsvn_repos/dump.c:2511,
W: | subversion/libsvn_repos/dump.c:2425,
W: | subversion/svnadmin/svnadmin.c:965,
W: | subversion/libsvn_fs/fs-loader.c:619,
W: | subversion/libsvn_fs_fs/verify.c:914,
W: | subversion/libsvn_fs_fs/verify.c:876,
W: | subversion/libsvn_fs_fs/verify.c:233,
W: | subversion/libsvn_fs_fs/rev_file.c:263,
W: | subversion/libsvn_fs_fs/low_level.c:237,
W: | subversion/libsvn_subr/checksum.c:432: (apr_err=SVN_ERR_BAD_CHECKSUM_PARSE)
W: | svnadmin: E125012: Invalid character in hex checksum
W: CWD: /dev/shm/trunk/subversion/tests/cmdline
W: EXCEPTION: SVNUnmatchedError
Traceback (most recent call last):
   File "/dev/shm/trunk/subversion/tests/cmdline/svntest/main.py", line 1872, in run
     rc = self.pred.run(sandbox)
   File "/dev/shm/trunk/subversion/tests/cmdline/svntest/testcase.py", line 258,
in run
     return self._delegate.run(sandbox)
   File "/dev/shm/trunk/subversion/tests/cmdline/svntest/testcase.py", line 178,
in run
     result = self.func(sandbox)
   File "/run/shm/trunk/subversion/tests/cmdline/svnadmin_tests.py", line 923,
in verify_incremental_fsfs
     expected_stderr=".*Found malformed header '[^']*' in revision file"
   File "/dev/shm/trunk/subversion/tests/cmdline/svntest/verify.py", line 455,
in verify_outputs
     compare_and_display_lines(message, label, expected, actual, raisable)
   File "/dev/shm/trunk/subversion/tests/cmdline/svntest/verify.py", line 428,
in compare_and_display_lines
     raise raisable
SVNUnmatchedError
FAIL: svnadmin_tests.py 12: svnadmin verify detects corruption dump can't
]]]

[[[
W: Unexpected error while running 'svnadmin verify'.
W: EXPECTED STDERR (regexp):
W: | .*Path '.*' is not in UTF-8.*
W: ACTUAL STDERR:
W: | * Error verifying repository metadata.
W: | subversion/svnadmin/svnadmin.c:2191,
W: | subversion/libsvn_repos/dump.c:2511,
W: | subversion/libsvn_repos/dump.c:2425,
W: | subversion/svnadmin/svnadmin.c:965,
W: | subversion/libsvn_fs/fs-loader.c:619,
W: | subversion/libsvn_fs_fs/verify.c:914,
W: | subversion/libsvn_fs_fs/verify.c:876,
W: | subversion/libsvn_fs_fs/verify.c:717,
W: | subversion/libsvn_fs_fs/verify.c:553,
W: | subversion/libsvn_fs_fs/verify.c:527: (apr_err=SVN_ERR_FS_CORRUPT)
W: | svnadmin: E160004: Checksum mismatch in item at offset 84 of length 254
bytes in file svn-test-work/repositories/svnadmin_tests-24/db/revs/0/1
W: CWD: /dev/shm/trunk/subversion/tests/cmdline
W: EXCEPTION: SVNUnmatchedError
Traceback (most recent call last):
   File "/dev/shm/trunk/subversion/tests/cmdline/svntest/main.py", line 1872, in run
     rc = self.pred.run(sandbox)
   File "/dev/shm/trunk/subversion/tests/cmdline/svntest/testcase.py", line 258,
in run
     return self._delegate.run(sandbox)
   File "/dev/shm/trunk/subversion/tests/cmdline/svntest/testcase.py", line 258,
in run
     return self._delegate.run(sandbox)
   File "/dev/shm/trunk/subversion/tests/cmdline/svntest/testcase.py", line 178,
in run
     result = self.func(sandbox)
   File "/run/shm/trunk/subversion/tests/cmdline/svnadmin_tests.py", line 1706,
in verify_non_utf8_paths
     [], errput, None, ".*Path '.*' is not in UTF-8.*")
   File "/dev/shm/trunk/subversion/tests/cmdline/svntest/verify.py", line 455,
in verify_outputs
     compare_and_display_lines(message, label, expected, actual, raisable)
   File "/dev/shm/trunk/subversion/tests/cmdline/svntest/verify.py", line 428,
in compare_and_display_lines
     raise raisable
SVNUnmatchedError
FAIL: svnadmin_tests.py 24: svnadmin verify with non-UTF-8 paths
]]]

-- Stefan^2.
Received on 2017-11-27 00:13:54 CET

This is an archived mail posted to the Subversion Dev mailing list.