subversion

Checkout Tools
  • last updated 1 hour ago
Constraints
Constraints: committers
 
Constraints: files
Constraints: dates

Changeset 1861020 is being indexed.

* STATUS (r1860936 group): Point to a backport branch which resolves a trivial merge conflict, and so should allow the backports buildbot to test it.
Create a backport branch for the r1860936 group, with its three revisions merged and the trivial conflict resolved.
* STATUS: Nominate r1860936, r1860951, r1860958.
* STATUS: Nominate r1860936, r1860951, r1860958.
* STATUS: Nominate r1860936, r1860951, r1860958.
In svnserve, consistently handle errors in opening a repository.

These errors are still logged and reported to the client, as they were

before, but now it is done in the same way as everywhere else. (The error

logging now happens higher up the call stack.)

* subversion/svnserve/serve.c

After reporting an error to the client, don't log it explicity here and

then clear it; instead return it so the caller can do so.

Adjust expectations of a new test to account for differences between RA

layers. A follow-up to r1860936.

* subversion/tests/libsvn_ra/ra-test.c

(test_get_deleted_rev_errors): Expect a generic error code when running

over HTTP, otherwise the specific error code for this error case.

Provide a way for svnserve's 'get-deleted-rev' API to return 'not deleted'.

Previously the answer 'not deleted' was indistinguishable from an error when

using the svnserve protocol.

The standard 'svn' client software does not appear to invoke this case, but

it is meant to be a valid answer and is supported by the other repository

access protocols.

To work around the problem without changing the protocol, we re-purpose the

obsolete error code 'SVN_ERR_ENTRY_MISSING_REVISION' to communicate this

'not deleted' reply to the client.

(Re-purposing an old error code was not essential. An alternative would be

to create a new error code which would become part of the public API in the

next minor release, but would be deemed non-public when backported to older

release lines.)

Behaviour changes:

- With a new client against a new server, such queries are now handled

correctly.

- With an old client against a new server, the client will report a more

informative error message.

- With a new client against an old server, there is no improvement.

* subversion/svnserve/serve.c

(get_deleted_rev): If the answer is SVN_INVALID_REVNUM, return a

SVN_ERR_ENTRY_MISSING_REVISION error to the client.

* subversion/libsvn_ra_svn/client.c

(ra_svn_get_deleted_rev): Convert the error SVN_ERR_ENTRY_MISSING_REVISION

back to a response of SVN_INVALID_REVNUM.

* subversion/tests/libsvn_ra/ra-test.c

(commit_two_changes): New.

(test_get_deleted_rev_no_delete,

test_get_deleted_rev_errors): New tests.

(test_funcs): Run them.

Update table of contents to match actual section names in INSTALL.

* STATUS: Remove accidental double nomination.
* STATUS: Nominate VS2019 build support.
* STATUS: Nominate VS2019 build support.
* STATUS: Nominate VS2019 build support.
* STATUS: Cast vote.
* STATUS: Propose r1859732, r1859734 for backport to 1.12.x (

io: Implement the functions that check for node existence using

the native Win32 APIs on Windows).

Update Sqlite query parsing code in wc-queries-test to handle some new

intermediate explanation lines without warnings.

* subversion/tests/libsvn_wc/wc-queries-test.c

(explanation_item): Add some booleans.

(parse_explanation_item): Allow a few more constructs that caused

unneeded warnings.

Merge r1857391 from trunk:

* r1857391

Fix build with APR 1.7.0.

Justification:

Bogus configure script check relies on APR internals.

See https://svn.haxx.se/users/archive-2019-04/0041.shtml

and https://svn.haxx.se/dev/archive-2019-04/0020.shtml

Votes:

+1: stsp, rhuijben (bindings change so 2+1's is enough)

    • ?
    /branches/1.12.x/build/ac-macros/swig.m4
* STATUS: Expand revision range to allow backport script to handle this patch.
* STATUS: Cast some votes.
* STATUS: Nominate patch
* build/generator/gen_vcnet_vcproj.py

(quote_value): Fix yet another stupid bug introduced by remote testing :(.

* build/generator/gen_win.py

(quote_define): Fix another stupid typo.

Following up on r1860175, fix typo in python code.

* build/generator/gen_vcnet_vcproj.py

(quote_define): Add missing ':'.

Fix compiling Subversion with Visual Studio 2005 and 2008 by properly escaping

the e-mail address we use for the Win32 crash handler.

* build/generator/gen_vcnet_vcproj.py

(quote_define): New function

* build/generator/gen_win.py

(get_win_defines): Quote e-mail address in defines.

(quote_define): Add function (stub).

* subversion/libsvn_subr/io.c

(io_win_check_path): Tweak comment, no functional changes.

io: Implement the functions that check for node existence using the native

Win32 APIs on Windows:

svn_io_check_path()

svn_io_check_resolved_path()

svn_io_check_special_path()

This changeset aims for two distinct things:

1) First of all, starting from r1833621, these functions were patched to stop

checking symlinks on Windows. The root cause for this change has been an

incorrect implementation of stat in APR that didn't properly distinguish

between various types of reparse points, some of which are not symlinks.

Providing the custom implementation allows us to remove the hack and

properly handle such reparse points irrespectively of the APR version

in use.

Additional details on the core of the issue can be found here:

- https://github.com/golang/go/issues/23684

- https://github.com/dotnet/corefx/issues/24250

2) These APIs are used in various performance-critical code paths such as

in the core part of `svn st`.

On Win32 the necessary answers for these particular functions can be

obtained with a single call to GetFileAttributes(), which is much faster

than using the generic stat implementations from APR 1.6.x and 1.7.x

(I believe that it would be even slower in the latter case).

A couple of quick tests show about 20%-25% improvement in the speed of

`svn st` for a large working copy. The improvement may be more significant

with indexers or virus scanners, as just asking for file attributes may

completely avoid opening a file (by retrieving the result through the

fast I/O QueryOpen).

* subversion/libsvn_subr/io.c

(FILE_ATTRIBUTE_TAG_INFO, FileAttributeTagInfo): Add these definitions

for old versions of Windows SDK.

(typedef GetFileInformationByHandleEx_t,

get_file_information_by_handle_ex_proc): New.

(win_init_dynamic_imports): Import `GetFileInformationByHandleEx()`.

(win32_get_file_information_by_handle): New helper function.

(io_win_check_path): New helper with the Win32 implementation required

for the "check path" functions.

(svn_io_check_path,

svn_io_check_resolved_path,

svn_io_check_special_path): Invoke the new helper.

(io_check_path): Undo the workaround from r1833621 that stopped passing

APR_FINFO_LINK when performing a stat.

Always use HTTPS URLs when fetching build dependencies.
Always use HTTPS URLs when fetching build dependencies.

* /home/julianfoad/src/subversion-c/tools/dev/build-svn-deps-win.pl

Change all package download URLs to https, even though most are obsolete.

* /home/julianfoad/src/subversion-c/tools/dist/nightly.sh

Use https://svn.apache.org.

Remove some packages that CollabNet is no longer officially

supporting.

* site/staging/packages.html

(Solaris, openSUSE): Remove links to CollabNet's builds.

Remove some packages that CollabNet is no longer officially

supporting.

* site/staging/packages.html

(Solaris, openSUSE): Remove links to CollabNet's builds.