You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@subversion.apache.org by "Sergey A. Lipnevich" <se...@optimaltec.com> on 2006/06/28 00:13:11 UTC

[PATCH] Proof-of-concept patch for APR 1.2 support on Windows

Hi All,

I was trying to run Subversion 1.3.x (.1 and .2) on Windows with Apache 2.2, and
came across a discussion related to handling of APR_INCOMPLETE error
(http://svn.haxx.se/dev/archive-2005-12/0522.shtml) and a related question of
what to do with svn_io_set_file_read_write_carefully
(http://svn.haxx.se/dev/archive-2006-06/0093.shtml). Since my setup wasn't
working, I tried to fix Subversion 1.3.2 according to the ideas mentioned in
these threads, and came up with the following patch (borrowing an idea from
D.J. Heap's patch above for svn_io_set_file_read_write_carefully). It's not
intended for commit as it is. Please let me know if this is the right approach
to take, and what needs to be done to finish this patch.

I ran the test suite with the following two consistent failures that I didn't
yet investigate:

FAIL:  stat_tests.py 8: status for unignored file and directory
Log:
  svn: warning: 'newfile' is not under version control
  FAIL:  stat_tests.py 8: status for unignored file and directory

FAIL:  lock_tests.py 19: update handles svn:needs-lock correctly
Log:
  svn: '.' is not a working copy
  FAIL:  lock_tests.py 19: update handles svn:needs-lock correctly

The compiler I use is from VS 2005.
Thanks!

Sergey.

[
  Initial support for APR 1.2, boils down to avoiding APR_FINFO_PROT as much
  as possible.

  * subversion/libsvn_subr/io.c:

    use APR_FREADONLY to detect read-only file attribute on Win32;

    replace contents of svn_io_set_file_read_write_carefully with
    a call to either svn_io_set_file_read_write or svn_io_set_file_read_only;

    don't do anything about "executable" attribute on Win32;

    if svn_io_stat gets APR_INCOMPLETE status, disregard it if all but
    APR_FINFO_PROT bits are valid;

    don't try to handle SGID bit on Win32;

    remove pre-APR 0.9.5 code related to SGID.
]