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

Re: Does Subversion run on OS/2?

From: Julian Foad <julianfoad_at_btopenworld.com>
Date: 2004-11-10 21:50:33 CET

Justin Erenkrantz wrote:
> Julian Foad wrote:
>> For years we have been carrying around a work-around (in
>> svn_io_make_dir_recursively) for the fact that apr_dir_make_recursive is
>> not implemented for OS/2. This is silly. If anybody wants to run
>> Subversion on OS/2 they should get a patch into APR to implement that,
>> otherwise every project using APR has equal hassle.
> IIRC, Brian Harvard, the OS/2 maintainer of APR & httpd, has posted a
> few times here that Subversion works with some minor tweaks. But, if we
> pulled that workaround, then it'd give him impetus to fix APR. ;-) --

Well, I'm torn between protecting any OS/2 users that we might already have,
and trying to get out of keeping this work-around forever.

By the way, I see now that the original reason for this work-around was for MS
Windows; if OS/2 had been the only unsupported platform then, we might not have
bothered with this work-around in the first place.

How about letting Brian Havard know (I've CC'd him) that we intend to remove
this work-around some time soon? If he can implement apr_dir_make_recursive
for OS/2 before then, that's great, otherwise any OS/2 users that there might
be will have to step forward and help themselves.

I attach the removal diff for reference.

- Julian

APR can now make a dir recursively, so we don't need our own implementation.

* subversion/libsvn_subr/io.c
  (svn_io_make_dir_recursively): Just use apr_dir_make_recursive.

Index: subversion/libsvn_subr/io.c
--- subversion/libsvn_subr/io.c (revision 11819)
+++ subversion/libsvn_subr/io.c (working copy)
@@ -743,44 +743,20 @@
 svn_error_t *
 svn_io_make_dir_recursively (const char *path, apr_pool_t *pool)
- svn_error_t *err;
- char *dir;
+ const char *path_apr;
+ apr_status_t apr_err;
   if (svn_path_is_empty (path))
     /* Empty path (current dir) is assumed to always exist,
        so we do nothing, per docs. */
     return SVN_NO_ERROR;
-#if 0
- /* ### Use this implementation if/when apr_dir_make_recursive is
- available on all platforms, not just on Unix. --xbc */
   apr_err = apr_dir_make_recursive (path_apr, APR_OS_DEFAULT, pool);
   if (apr_err)
     return svn_error_wrap_apr (apr_err, "Can't make directory '%s'", path);
   return SVN_NO_ERROR;
- /* Try to make PATH right out */
- err = svn_io_dir_make (path, APR_OS_DEFAULT, pool);
- if (! err || APR_STATUS_IS_EEXIST (err->apr_err))
- {
- /* We succeeded, or path already exists; either way we're done. */
- svn_error_clear (err);
- return SVN_NO_ERROR;
- }
- else if (APR_STATUS_IS_ENOENT (err->apr_err))
- {
- /* Missing an intermediate dir. */
- dir = svn_path_dirname (path, pool);
- SVN_ERR (svn_io_make_dir_recursively (dir, pool));
- return svn_io_dir_make (path, APR_OS_DEFAULT, pool);
- }
- else
- return err;
 svn_error_t *svn_io_file_create (const char *file,

To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org
Received on Wed Nov 10 21:50:58 2004

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

This site is subject to the Apache Privacy Policy and the Apache Public Forum Archive Policy.