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

[PATCH] make symlinked hook scripts work again

From: Josef Wolf <jw_at_raven.inka.de>
Date: 2003-01-13 23:49:23 CET

Hallo...

I repost this patch (now relative to r4368) because there were several
commits since r4296 which would make life unnessesary hard for the
committer. In Addition I replaced the bogus '1' and '0' by
'TRUE'/'FALSE'. It passed "make check" on my machine.

Log entry:

* subversion/libsvn_subr/io.c
  (svn_io_check_path): Add boolean parameter 'resolve_symlinks' to
  decide whether the target of a symlink or the symlink itself should
  be checked.
* subversion/include/svn_io.h
  (svn_io_check_path): Add boolean parameter 'resolve_symlinks' to prototype.

* subversion/libsvn_repos/hooks.c
  (svn_repos__hooks_start_commit, svn_repos__hooks_pre_commit,
  svn_repos__hooks_post_commit, svn_repos__hooks_pre_revprop_change,
  svn_repos__hooks_post_revprop_change): changed callers of
  svn_io_check_path to use target of symlink.

The following callers were updated to use the current semantics
which means to return svn_node_unknown when a symlink is passed:

* subversion/libsvn_client/add.c: (svn_client_add)
* subversion/libsvn_client/auth.c: (svn_client__default_auth_dir)
* subversion/libsvn_client/cleanup.c: (svn_client_cleanup)
* subversion/libsvn_client/commit.c
  (import, svn_client_import, remove_tmpfiles)
* subversion/libsvn_client/commit_util.c: (harvest_committables)
* subversion/libsvn_client/copy.c
  (wc_to_wc_copy, remove_tmpfiles, wc_to_repos_copy, repos_to_wc_copy)
* subversion/libsvn_client/delete.c: (svn_client__can_delete)
* subversion/libsvn_client/diff.c
  (merge_file_added, merge_file_deleted, merge_dir_added, merge_dir_deleted,
  do_diff)
* subversion/libsvn_client/prop_commands.c: (maybe_convert_to_url)
* subversion/libsvn_client/revert.c: (svn_client_revert)
* subversion/libsvn_client/update.c: (svn_client_update)
* subversion/libsvn_subr/config_file.c: (svn_config_ensure)
* subversion/libsvn_subr/io.c
  (svn_io_copy_dir_recursively, svn_io_detect_mimetype)
* subversion/libsvn_wc/adm_files.c
  (svn_wc__adm_path_exists, maybe_copy_file, prop_path_internal,
  svn_wc__wcprop_path, svn_wc__open_props, svn_wc__close_props,
  svn_wc__sync_props, check_adm_exists)
* subversion/libsvn_wc/adm_ops.c:
  (remove_file_if_present, erase_unversioned_from_wc, erase_from_wc,
  svn_wc_add, revert_admin_things, svn_wc_revert, attempt_deletion,
  svn_wc_set_auth_file)
* subversion/libsvn_wc/copy.c: (copy_file_administratively, svn_wc_copy)
* subversion/libsvn_wc/entries.c: (svn_wc_entry, svn_wc_mark_missing_deleted)
* subversion/libsvn_wc/lock.c
  (probe, svn_wc_adm_open, svn_wc_locked, svn_wc__adm_is_cleanup_required)
* subversion/libsvn_wc/log.c:
  (install_committed_file, log_do_modify_entry, log_do_committed,
  svn_wc_cleanup)
* subversion/libsvn_wc/props.c:
  (svn_wc__load_prop_file, wcprop_list, svn_wc_prop_list, svn_wc_prop_set,
  empty_props_p)
* subversion/libsvn_wc/questions.c
  (svn_wc_check_wc, svn_wc__timestamps_equal_p, svn_wc_text_modified_p,
  svn_wc_conflicted_p)
* subversion/libsvn_wc/status.c:
  (assemble_status, get_dir_status, svn_wc_statuses)
* subversion/libsvn_wc/status_editor.c: (delete_entry)
* subversion/libsvn_wc/update_editor.c
  (add_directory, add_or_open_file, svn_wc_install_file)
* subversion/libsvn_wc/util.c: (svn_wc__ensure_directory)
* subversion/svnlook/main.c: (open_writable_binary_file, do_diff)
* subversion/svnversion/main.c: (main)

Index: subversion/include/svn_io.h
===================================================================
--- subversion/include/svn_io.h (revision 4368)
+++ subversion/include/svn_io.h (working copy)
@@ -58,13 +58,19 @@
  *
  * If @a path is a directory, @a *kind is set to @c svn_node_dir.
  *
+ * If @a path is a symbolic link, @a *kind is set to @c svn_node_link.
+ *
  * If @a path does not exist in its final component, @a *kind is set to
  * @c svn_node_none.
  *
  * If intermediate directories on the way to @a path don't exist, an
  * error is returned, and @a *kind's value is undefined.
+ *
+ * If @a resolve_symlinks is true, symlinks are resolved and @a *kind
+ * is set according the kind of the object the symlink refers to.
  */
 svn_error_t *svn_io_check_path (const char *path,
+ svn_boolean_t resolve_symlinks,
                                 svn_node_kind_t *kind,
                                 apr_pool_t *pool);
 
Index: subversion/libsvn_wc/props.c
===================================================================
--- subversion/libsvn_wc/props.c (revision 4368)
+++ subversion/libsvn_wc/props.c (working copy)
@@ -231,7 +231,7 @@
 {
   svn_node_kind_t kind;
 
- SVN_ERR (svn_io_check_path (propfile_path, &kind, pool));
+ SVN_ERR (svn_io_check_path (propfile_path, FALSE, &kind, pool));
 
   if (kind == svn_node_file)
     {
@@ -855,7 +855,7 @@
   *props = apr_hash_make (pool);
 
   /* Check validity of PATH */
- SVN_ERR( svn_io_check_path (path, &kind, pool) );
+ SVN_ERR( svn_io_check_path (path, FALSE, &kind, pool) );
   
 #if 0
   if (kind == svn_node_none)
@@ -873,7 +873,7 @@
   SVN_ERR( svn_wc__wcprop_path (&prop_path, path, 0, pool) );
 
   /* Does the property file exist? */
- SVN_ERR( svn_io_check_path (prop_path, &pkind, pool) );
+ SVN_ERR( svn_io_check_path (prop_path, FALSE, &pkind, pool) );
   
   if (pkind == svn_node_none)
     /* No property file exists. Just go home, with an empty hash. */
@@ -971,7 +971,7 @@
   SVN_ERR (svn_wc__prop_path (&prop_path, path, 0, pool));
 
   /* Does the property file exist? */
- SVN_ERR (svn_io_check_path (prop_path, &pkind, pool));
+ SVN_ERR (svn_io_check_path (prop_path, FALSE, &pkind, pool));
   
   if (pkind == svn_node_none)
     /* No property file exists. Just go home, with an empty hash. */
@@ -1124,7 +1124,7 @@
   svn_node_kind_t kind;
   enum svn_prop_kind prop_kind = svn_property_kind (NULL, name);
 
- SVN_ERR (svn_io_check_path (path, &kind, pool));
+ SVN_ERR (svn_io_check_path (path, FALSE, &kind, pool));
 
   if (prop_kind == svn_prop_wc_kind)
     return svn_wc__wcprop_set (name, value, path, pool);
@@ -1263,7 +1263,7 @@
 {
   svn_node_kind_t kind;
 
- SVN_ERR (svn_io_check_path (path_to_prop_file, &kind, pool));
+ SVN_ERR (svn_io_check_path (path_to_prop_file, FALSE, &kind, pool));
 
   if (kind == svn_node_none)
     *empty_p = TRUE;
Index: subversion/libsvn_wc/entries.c
===================================================================
--- subversion/libsvn_wc/entries.c (revision 4368)
+++ subversion/libsvn_wc/entries.c (working copy)
@@ -612,7 +612,7 @@
 
   *entry = NULL;
 
- SVN_ERR (svn_io_check_path (path, &kind, pool));
+ SVN_ERR (svn_io_check_path (path, FALSE, &kind, pool));
 
   /* ### todo:
      Make an innocent way to discover that a dir/path is or is not
@@ -1677,7 +1677,7 @@
 {
   svn_node_kind_t pkind;
 
- SVN_ERR (svn_io_check_path (path, &pkind, pool));
+ SVN_ERR (svn_io_check_path (path, FALSE, &pkind, pool));
 
   if (pkind == svn_node_none)
     {
Index: subversion/libsvn_wc/copy.c
===================================================================
--- subversion/libsvn_wc/copy.c (revision 4368)
+++ subversion/libsvn_wc/copy.c (working copy)
@@ -136,7 +136,7 @@
     = svn_path_join (svn_wc_adm_access_path (dst_parent), dst_basename, pool);
 
   /* Sanity check: if dst file exists already, don't allow overwrite. */
- SVN_ERR (svn_io_check_path (dst_path, &dst_kind, pool));
+ SVN_ERR (svn_io_check_path (dst_path, FALSE, &dst_kind, pool));
   if (dst_kind != svn_node_none)
     return svn_error_createf (SVN_ERR_ENTRY_EXISTS, NULL,
                               "'%s' already exists and is in the way.",
@@ -218,12 +218,12 @@
     SVN_ERR (svn_io_copy_file (src_txtb, dst_txtb, TRUE, pool));
 
     /* Copy the props over if they exist. */
- SVN_ERR (svn_io_check_path (src_wprop, &kind, pool));
+ SVN_ERR (svn_io_check_path (src_wprop, FALSE, &kind, pool));
     if (kind == svn_node_file)
       SVN_ERR (svn_io_copy_file (src_wprop, dst_wprop, TRUE, pool));
       
     /* Copy the base-props over if they exist */
- SVN_ERR (svn_io_check_path (src_bprop, &kind, pool));
+ SVN_ERR (svn_io_check_path (src_bprop, FALSE, &kind, pool));
     if (kind == svn_node_file)
       SVN_ERR (svn_io_copy_file (src_bprop, dst_bprop, TRUE, pool));
   }
@@ -344,7 +344,7 @@
   SVN_ERR (svn_wc_adm_probe_open (&adm_access, NULL, src_path, FALSE, TRUE,
                                   pool));
 
- SVN_ERR (svn_io_check_path (src_path, &src_kind, pool));
+ SVN_ERR (svn_io_check_path (src_path, FALSE, &src_kind, pool));
   
   if (src_kind == svn_node_file)
     SVN_ERR (copy_file_administratively (src_path, adm_access,
Index: subversion/libsvn_wc/util.c
===================================================================
--- subversion/libsvn_wc/util.c (revision 4368)
+++ subversion/libsvn_wc/util.c (working copy)
@@ -37,7 +37,7 @@
 svn_wc__ensure_directory (const char *path, apr_pool_t *pool)
 {
   svn_node_kind_t kind;
- svn_error_t *err = svn_io_check_path (path, &kind, pool);
+ svn_error_t *err = svn_io_check_path (path, FALSE, &kind, pool);
 
   if (err)
     return err;
Index: subversion/libsvn_wc/log.c
===================================================================
--- subversion/libsvn_wc/log.c (revision 4368)
+++ subversion/libsvn_wc/log.c (working copy)
@@ -237,7 +237,7 @@
 
   /* Is there a tmp_text_base that needs to be installed? */
   tmp_text_base = svn_wc__text_base_path (filepath, 1, pool);
- SVN_ERR (svn_io_check_path (tmp_text_base, &kind, pool));
+ SVN_ERR (svn_io_check_path (tmp_text_base, FALSE, &kind, pool));
 
   if (kind == svn_node_file)
     SVN_ERR (svn_subst_copy_and_translate (tmp_text_base,
@@ -523,7 +523,7 @@
       svn_node_kind_t tfile_kind;
       apr_time_t text_time;
 
- err = svn_io_check_path (tfile, &tfile_kind, loggy->pool);
+ err = svn_io_check_path (tfile, FALSE, &tfile_kind, loggy->pool);
       if (err)
         return svn_error_createf
           (SVN_ERR_WC_BAD_ADM_LOG, err,
@@ -553,7 +553,7 @@
       if (err)
         signal_error (loggy, err);
       
- err = svn_io_check_path (pfile, &pfile_kind, loggy->pool);
+ err = svn_io_check_path (pfile, FALSE, &pfile_kind, loggy->pool);
       if (err)
         return svn_error_createf
           (SVN_ERR_WC_BAD_ADM_LOG, err,
@@ -833,7 +833,7 @@
 
       /* Make sure our working file copy is present in the temp area. */
       tmpf = svn_wc__text_base_path (wf, 1, pool);
- if ((err = svn_io_check_path (tmpf, &kind, pool)))
+ if ((err = svn_io_check_path (tmpf, FALSE, &kind, pool)))
         return svn_error_createf (SVN_ERR_WC_BAD_ADM_LOG, err,
                                   "error checking existence: %s", name);
       if (kind == svn_node_file)
@@ -893,7 +893,7 @@
     if (entry->schedule == svn_wc_schedule_replace)
       {
         svn_node_kind_t kinder;
- SVN_ERR (svn_io_check_path (basef, &kinder, pool));
+ SVN_ERR (svn_io_check_path (basef, FALSE, &kinder, pool));
         if (kinder == svn_node_file)
           SVN_ERR (svn_io_remove_file (basef, pool));
       }
@@ -903,7 +903,7 @@
               is_this_dir
               ? svn_wc_adm_access_path (loggy->adm_access) : full_path,
               1, pool));
- if ((err = svn_io_check_path (tmpf, &kind, pool)))
+ if ((err = svn_io_check_path (tmpf, FALSE, &kind, pool)))
       return svn_error_createf (SVN_ERR_WC_BAD_ADM_LOG, err,
                                 "error checking existence: %s", name);
     if (kind == svn_node_file)
@@ -1368,7 +1368,7 @@
         {
           /* Recurse */
           const char *subdir = svn_path_join (path, key, pool);
- SVN_ERR (svn_io_check_path (subdir, &kind, pool));
+ SVN_ERR (svn_io_check_path (subdir, FALSE, &kind, pool));
           if (kind == svn_node_dir)
             SVN_ERR (svn_wc_cleanup (subdir, adm_access, pool));
         }
@@ -1382,7 +1382,7 @@
   if (cleanup)
     {
       /* Is there a log? If so, run it. */
- SVN_ERR (svn_io_check_path (log_path, &kind, pool));
+ SVN_ERR (svn_io_check_path (log_path, FALSE, &kind, pool));
       if (kind == svn_node_file)
         SVN_ERR (svn_wc__run_log (adm_access, pool));
     }
Index: subversion/libsvn_wc/adm_ops.c
===================================================================
--- subversion/libsvn_wc/adm_ops.c (revision 4368)
+++ subversion/libsvn_wc/adm_ops.c (working copy)
@@ -392,7 +392,7 @@
   svn_node_kind_t kind;
 
   /* Does this file exist? If not, get outta here. */
- SVN_ERR (svn_io_check_path (file, &kind, pool));
+ SVN_ERR (svn_io_check_path (file, FALSE, &kind, pool));
   if (kind == svn_node_none)
     return SVN_NO_ERROR;
 
@@ -509,7 +509,7 @@
 {
   svn_node_kind_t kind;
 
- SVN_ERR (svn_io_check_path (path, &kind, pool));
+ SVN_ERR (svn_io_check_path (path, FALSE, &kind, pool));
   switch (kind)
     {
     case svn_node_none:
@@ -552,7 +552,7 @@
 {
   /* Check that the item exists in the wc. */
   svn_node_kind_t wc_kind;
- SVN_ERR (svn_io_check_path (path, &wc_kind, pool));
+ SVN_ERR (svn_io_check_path (path, FALSE, &wc_kind, pool));
   if (wc_kind == svn_node_none)
     return SVN_NO_ERROR;
 
@@ -786,7 +786,7 @@
   svn_wc_adm_access_t *adm_access;
   
   /* Make sure something's there. */
- SVN_ERR (svn_io_check_path (path, &kind, pool));
+ SVN_ERR (svn_io_check_path (path, FALSE, &kind, pool));
   if (kind == svn_node_none)
     return svn_error_createf (SVN_ERR_WC_PATH_NOT_FOUND, NULL,
                               "'%s' not found", path);
@@ -1110,12 +1110,12 @@
       /* There may be a base props file but no working props file, if
          the mod was that the working file was `R'eplaced by a new
          file with no props. */
- SVN_ERR (svn_io_check_path (thing, &working_props_kind, pool));
+ SVN_ERR (svn_io_check_path (thing, FALSE, &working_props_kind, pool));
 
       /* If there is a pristing property file, copy it out as the
          working property file, else just remove the working property
          file. */
- SVN_ERR (svn_io_check_path (base_thing, &kind, pool));
+ SVN_ERR (svn_io_check_path (base_thing, FALSE, &kind, pool));
       if (kind == svn_node_file)
         {
           if ((working_props_kind == svn_node_file)
@@ -1152,7 +1152,7 @@
          then we need to restore them. */
       SVN_ERR (svn_wc__prop_path (&thing, fullpath, 0, pool));
       SVN_ERR (svn_wc__prop_base_path (&base_thing, fullpath, 0, pool));
- SVN_ERR (svn_io_check_path (base_thing, &kind, pool));
+ SVN_ERR (svn_io_check_path (base_thing, FALSE, &kind, pool));
 
       if ((err = svn_io_copy_file (base_thing, thing, FALSE, pool)))
         return revert_error (err, fullpath, "restoring props", pool);
@@ -1164,7 +1164,7 @@
 
   if (entry->kind == svn_node_file)
     {
- SVN_ERR (svn_io_check_path (fullpath, &kind, pool));
+ SVN_ERR (svn_io_check_path (fullpath, FALSE, &kind, pool));
       SVN_ERR (svn_wc_text_modified_p (&modified_p, fullpath, adm_access,
                                        pool));
       if ((modified_p) || (kind == svn_node_none))
@@ -1278,7 +1278,7 @@
   if (entry->kind == svn_node_dir)
     {
       svn_node_kind_t disk_kind;
- SVN_ERR (svn_io_check_path (path, &disk_kind, pool));
+ SVN_ERR (svn_io_check_path (path, FALSE, &disk_kind, pool));
       if ((disk_kind != svn_node_dir)
           && (entry->schedule != svn_wc_schedule_add))
         {
@@ -1307,7 +1307,7 @@
 
   /* Safeguard 3: can we deal with the node kind of PATH current in
      the working copy? */
- SVN_ERR (svn_io_check_path (path, &kind, pool));
+ SVN_ERR (svn_io_check_path (path, FALSE, &kind, pool));
   if ((kind != svn_node_none)
       && (kind != svn_node_file)
       && (kind != svn_node_dir))
@@ -1722,7 +1722,7 @@
   const char *full_path = svn_path_join (parent_dir, base_name, pool);
   svn_node_kind_t kind;
 
- SVN_ERR (svn_io_check_path (full_path, &kind, pool));
+ SVN_ERR (svn_io_check_path (full_path, FALSE, &kind, pool));
   *was_present = kind != svn_node_none;
   if (! *was_present)
     return SVN_NO_ERROR;
@@ -1995,7 +1995,7 @@
                 = svn_path_join (svn_wc_adm_access_path (adm_access), base_name,
                                  pool);
 
- SVN_ERR (svn_io_check_path (childpath, &kind, pool));
+ SVN_ERR (svn_io_check_path (childpath, FALSE, &kind, pool));
               if (kind == svn_node_dir)
                 {
                   SVN_ERR (svn_wc_adm_retrieve (&child_access, adm_access,
Index: subversion/libsvn_wc/status.c
===================================================================
--- subversion/libsvn_wc/status.c (revision 4368)
+++ subversion/libsvn_wc/status.c (working copy)
@@ -125,7 +125,7 @@
 
   /* Check the path kind for PATH. */
   if (path_kind == svn_node_unknown)
- SVN_ERR (svn_io_check_path (path, &path_kind, pool));
+ SVN_ERR (svn_io_check_path (path, FALSE, &path_kind, pool));
   
   if (! entry)
     {
@@ -598,7 +598,7 @@
           svn_node_kind_t fullpath_kind;
 
           /* Get the entry's kind on disk. */
- SVN_ERR (svn_io_check_path (fullpath, &fullpath_kind, pool));
+ SVN_ERR (svn_io_check_path (fullpath, FALSE, &fullpath_kind, pool));
 
           if (fullpath_kind == svn_node_dir)
             {
@@ -666,7 +666,7 @@
   const svn_wc_entry_t *entry;
 
   /* Is PATH a directory or file? */
- SVN_ERR (svn_io_check_path (path, &kind, pool));
+ SVN_ERR (svn_io_check_path (path, FALSE, &kind, pool));
   
   /* Read the appropriate entries file */
   
Index: subversion/libsvn_wc/adm_files.c
===================================================================
--- subversion/libsvn_wc/adm_files.c (revision 4368)
+++ subversion/libsvn_wc/adm_files.c (working copy)
@@ -138,7 +138,7 @@
   path = v_extend_with_adm_name (path, NULL, tmp, pool, ap);
   va_end (ap);
 
- err = svn_io_check_path (path, &kind, pool);
+ err = svn_io_check_path (path, FALSE, &kind, pool);
   if (err)
     svn_error_clear (err);
   if (kind == svn_node_none)
@@ -214,7 +214,7 @@
   apr_status_t apr_err;
 
   /* First test if SRC exists. */
- SVN_ERR (svn_io_check_path (src, &kind, pool));
+ SVN_ERR (svn_io_check_path (src, FALSE, &kind, pool));
   if (kind == svn_node_none)
     {
       /* SRC doesn't exist, create DST empty. */
@@ -319,7 +319,7 @@
   int wc_format_version;
   const char *entry_name;
 
- SVN_ERR (svn_io_check_path (path, &kind, pool));
+ SVN_ERR (svn_io_check_path (path, FALSE, &kind, pool));
 
   /* kff todo: some factorization can be done on most callers of
      svn_wc_check_wc()? */
@@ -392,7 +392,7 @@
   int is_wc;
   const char *entry_name;
 
- SVN_ERR (svn_io_check_path (path, &kind, pool));
+ SVN_ERR (svn_io_check_path (path, FALSE, &kind, pool));
 
   /* kff todo: some factorization can be done on most callers of
      svn_wc_check_wc()? */
@@ -716,7 +716,7 @@
   int wc_format_version;
 
   /* Check if path is a file or a dir. */
- SVN_ERR (svn_io_check_path (path, &kind, pool));
+ SVN_ERR (svn_io_check_path (path, FALSE, &kind, pool));
   if (kind == svn_node_none)
     {
       /* Something changed, yet we can't find the local working directory
@@ -801,7 +801,7 @@
   int wc_format_version;
 
   /* Check if path is a file or a dir. */
- SVN_ERR (svn_io_check_path (path, &kind, pool));
+ SVN_ERR (svn_io_check_path (path, FALSE, &kind, pool));
 
   /* If file, split the path. */
   if (kind == svn_node_file)
@@ -870,7 +870,7 @@
   svn_node_kind_t kind;
 
   /* Check if path is a file or a dir. */
- SVN_ERR (svn_io_check_path (path, &kind, pool));
+ SVN_ERR (svn_io_check_path (path, FALSE, &kind, pool));
 
   /* If file, split the path. */
   if (kind == svn_node_file)
@@ -946,7 +946,7 @@
 
   tmp_path = extend_with_adm_name (path, NULL, 0, pool, NULL);
 
- SVN_ERR (svn_io_check_path (tmp_path, &kind, pool));
+ SVN_ERR (svn_io_check_path (tmp_path, FALSE, &kind, pool));
   if (kind != svn_node_none && kind != svn_node_dir)
     {
       /* If got an error other than dir non-existence, then
Index: subversion/libsvn_wc/lock.c
===================================================================
--- subversion/libsvn_wc/lock.c (revision 4368)
+++ subversion/libsvn_wc/lock.c (working copy)
@@ -202,7 +202,7 @@
   svn_node_kind_t kind;
   int is_wc;
 
- SVN_ERR (svn_io_check_path (path, &kind, pool));
+ SVN_ERR (svn_io_check_path (path, FALSE, &kind, pool));
   if (kind == svn_node_dir)
     SVN_ERR (svn_wc_check_wc (path, &is_wc, pool));
 
@@ -283,7 +283,7 @@
       /* Since no physical lock gets created we must check PATH is not a
          file. */
       svn_node_kind_t node_kind;
- SVN_ERR (svn_io_check_path (path, &node_kind, pool));
+ SVN_ERR (svn_io_check_path (path, FALSE, &node_kind, pool));
       if (node_kind != svn_node_dir)
         return svn_error_createf (SVN_ERR_WC_INVALID_LOCK, NULL,
                                   "lock path is not a directory (%s)",
@@ -329,7 +329,7 @@
 
           /* If this is not physically a directory, it may have been
              deleted say, then ignore it. */
- SVN_ERR (svn_io_check_path (entry_path, &kind, pool));
+ SVN_ERR (svn_io_check_path (entry_path, FALSE, &kind, pool));
           if (kind != svn_node_dir)
             continue;
 
@@ -561,7 +561,7 @@
   const char *lockfile
     = svn_wc__adm_path (path, 0, pool, SVN_WC__ADM_LOCK, NULL);
                                              
- SVN_ERR (svn_io_check_path (lockfile, &kind, pool));
+ SVN_ERR (svn_io_check_path (lockfile, FALSE, &kind, pool));
   if (kind == svn_node_file)
     *locked = TRUE;
   else if (kind == svn_node_none)
@@ -600,7 +600,7 @@
                                            FALSE, pool, SVN_WC__ADM_LOG, NULL);
 
   /* The presence of a log file demands cleanup */
- SVN_ERR (svn_io_check_path (log_path, &kind, pool));
+ SVN_ERR (svn_io_check_path (log_path, FALSE, &kind, pool));
   *cleanup = (kind == svn_node_file);
 
   return SVN_NO_ERROR;
Index: subversion/libsvn_wc/update_editor.c
===================================================================
--- subversion/libsvn_wc/update_editor.c (revision 4368)
+++ subversion/libsvn_wc/update_editor.c (working copy)
@@ -637,7 +637,7 @@
 
   /* The directory may exist if this is a checkout, otherwise there should
      be nothing with this name. */
- SVN_ERR (svn_io_check_path (db->path, &kind, db->pool));
+ SVN_ERR (svn_io_check_path (db->path, FALSE, &kind, db->pool));
   if (kind != svn_node_none
       && !(pb->edit_baton->is_checkout && kind == svn_node_dir))
     return svn_error_createf
@@ -1036,7 +1036,7 @@
      ### Are editor drives guaranteed not to mention the same name
      ### twice in the same dir baton? Don't know. */
 
- SVN_ERR (svn_io_check_path (fb->path, &kind, subpool));
+ SVN_ERR (svn_io_check_path (fb->path, FALSE, &kind, subpool));
   SVN_ERR (svn_wc_adm_retrieve (&adm_access, pb->edit_baton->adm_access,
                                 pb->path, subpool));
   SVN_ERR (svn_wc_entry (&entry, fb->path, adm_access, FALSE, subpool));
@@ -1614,7 +1614,7 @@
         {
           svn_node_kind_t wfile_kind = svn_node_unknown;
           
- SVN_ERR (svn_io_check_path (file_path, &wfile_kind, pool));
+ SVN_ERR (svn_io_check_path (file_path, FALSE, &wfile_kind, pool));
           if (wfile_kind == svn_node_none) /* working file is missing?! */
             {
               /* Just copy the new text-base to the file. */
Index: subversion/libsvn_wc/status_editor.c
===================================================================
--- subversion/libsvn_wc/status_editor.c (revision 4368)
+++ subversion/libsvn_wc/status_editor.c (working copy)
@@ -333,7 +333,7 @@
      versioned in this working copy, it was probably deleted via this
      working copy. No need to report such a thing. */
   /* ### use svn_wc_entry() instead? */
- SVN_ERR (svn_io_check_path (path, &kind, pool));
+ SVN_ERR (svn_io_check_path (path, FALSE, &kind, pool));
   if (kind == svn_node_dir)
     dir_path = full_path;
   else
Index: subversion/libsvn_wc/questions.c
===================================================================
--- subversion/libsvn_wc/questions.c (revision 4368)
+++ subversion/libsvn_wc/questions.c (working copy)
@@ -50,7 +50,7 @@
   svn_error_t *err = SVN_NO_ERROR;
   svn_node_kind_t kind;
 
- SVN_ERR (svn_io_check_path (path, &kind, pool));
+ SVN_ERR (svn_io_check_path (path, FALSE, &kind, pool));
   
   if (kind == svn_node_none)
     {
@@ -131,7 +131,7 @@
   const svn_wc_entry_t *entry;
   svn_node_kind_t kind;
 
- SVN_ERR (svn_io_check_path (path, &kind, pool));
+ SVN_ERR (svn_io_check_path (path, FALSE, &kind, pool));
   if (kind == svn_node_dir)
     entryname = SVN_WC_ENTRY_THIS_DIR;
   else
@@ -321,7 +321,7 @@
   svn_node_kind_t kind;
 
   /* Sanity check: if the path doesn't exist, return FALSE. */
- SVN_ERR (svn_io_check_path (filename, &kind, subpool));
+ SVN_ERR (svn_io_check_path (filename, FALSE, &kind, subpool));
   if (kind != svn_node_file)
     {
       *modified_p = FALSE;
@@ -345,7 +345,7 @@
      is modified. For example, a file scheduled for addition but not
      yet committed. */
   textbase_filename = svn_wc__text_base_path (filename, 0, subpool);
- SVN_ERR (svn_io_check_path (textbase_filename, &kind, subpool));
+ SVN_ERR (svn_io_check_path (textbase_filename, FALSE, &kind, subpool));
   if (kind != svn_node_file)
     {
       *modified_p = TRUE;
@@ -391,7 +391,7 @@
   if (entry->conflict_old)
     {
       path = svn_path_join (dir_path, entry->conflict_old, subpool);
- SVN_ERR (svn_io_check_path (path, &kind, subpool));
+ SVN_ERR (svn_io_check_path (path, FALSE, &kind, subpool));
       if (kind == svn_node_file)
         *text_conflicted_p = TRUE;
     }
@@ -399,7 +399,7 @@
   if ((! *text_conflicted_p) && (entry->conflict_new))
     {
       path = svn_path_join (dir_path, entry->conflict_new, subpool);
- SVN_ERR (svn_io_check_path (path, &kind, subpool));
+ SVN_ERR (svn_io_check_path (path, FALSE, &kind, subpool));
       if (kind == svn_node_file)
         *text_conflicted_p = TRUE;
     }
@@ -407,7 +407,7 @@
   if ((! *text_conflicted_p) && (entry->conflict_wrk))
     {
       path = svn_path_join (dir_path, entry->conflict_wrk, subpool);
- SVN_ERR (svn_io_check_path (path, &kind, subpool));
+ SVN_ERR (svn_io_check_path (path, FALSE, &kind, subpool));
       if (kind == svn_node_file)
         *text_conflicted_p = TRUE;
     }
@@ -416,7 +416,7 @@
   if (entry->prejfile)
     {
       path = svn_path_join (dir_path, entry->prejfile, subpool);
- SVN_ERR (svn_io_check_path (path, &kind, subpool));
+ SVN_ERR (svn_io_check_path (path, FALSE, &kind, subpool));
       if (kind == svn_node_file)
         *prop_conflicted_p = TRUE;
     }
Index: subversion/libsvn_subr/config_file.c
===================================================================
--- subversion/libsvn_subr/config_file.c (revision 4368)
+++ subversion/libsvn_subr/config_file.c (working copy)
@@ -456,7 +456,7 @@
   if (! path)
     return SVN_NO_ERROR;
 
- SVN_ERR (svn_io_check_path (path, &kind, pool));
+ SVN_ERR (svn_io_check_path (path, FALSE, &kind, pool));
   if (kind == svn_node_none)
     {
       apr_err = apr_dir_make (path, APR_OS_DEFAULT, pool);
@@ -479,7 +479,7 @@
   if (! path) /* highly unlikely, since a previous call succeeded */
     return SVN_NO_ERROR;
 
- err = svn_io_check_path (path, &kind, pool);
+ err = svn_io_check_path (path, FALSE, &kind, pool);
   if (err)
     return SVN_NO_ERROR;
 
@@ -621,7 +621,7 @@
   if (! path) /* highly unlikely, since a previous call succeeded */
     return SVN_NO_ERROR;
 
- err = svn_io_check_path (path, &kind, pool);
+ err = svn_io_check_path (path, FALSE, &kind, pool);
   if (err)
     return SVN_NO_ERROR;
   
@@ -723,7 +723,7 @@
   if (! path) /* highly unlikely, since a previous call succeeded */
     return SVN_NO_ERROR;
 
- err = svn_io_check_path (path, &kind, pool);
+ err = svn_io_check_path (path, FALSE, &kind, pool);
   if (err)
     return SVN_NO_ERROR;
   
Index: subversion/libsvn_subr/io.c
===================================================================
--- subversion/libsvn_subr/io.c (revision 4368)
+++ subversion/libsvn_subr/io.c (working copy)
@@ -107,9 +107,11 @@
 
 svn_error_t *
 svn_io_check_path (const char *path,
+ svn_boolean_t resolve_symlinks,
                    svn_node_kind_t *kind,
                    apr_pool_t *pool)
 {
+ apr_int32_t flags;
   apr_finfo_t finfo;
   apr_status_t apr_err;
   const char *path_native;
@@ -119,9 +121,11 @@
 
   /* Not using svn_io_stat() here because we want to check the
      apr_err return anyway. */
+
   SVN_ERR (path_from_utf8 (&path_native, path, pool));
- apr_err = apr_stat (&finfo, path_native,
- (APR_FINFO_MIN | APR_FINFO_LINK), pool);
+
+ flags = resolve_symlinks ? APR_FINFO_MIN : (APR_FINFO_MIN | APR_FINFO_LINK);
+ apr_err = apr_stat (&finfo, path_native, flags, pool);
 
   if (apr_err && !APR_STATUS_IS_ENOENT(apr_err))
     return svn_error_createf
@@ -354,19 +358,19 @@
 
   /* Sanity checks: SRC and DST_PARENT are directories, and
      DST_BASENAME doesn't already exist in DST_PARENT. */
- SVN_ERR (svn_io_check_path (src, &kind, subpool));
+ SVN_ERR (svn_io_check_path (src, FALSE, &kind, subpool));
   if (kind != svn_node_dir)
     return svn_error_createf (SVN_ERR_NODE_UNEXPECTED_KIND, NULL,
                               "svn_io_copy_dir: '%s' is not a directory.",
                               src);
 
- SVN_ERR (svn_io_check_path (dst_parent, &kind, subpool));
+ SVN_ERR (svn_io_check_path (dst_parent, FALSE, &kind, subpool));
   if (kind != svn_node_dir)
     return svn_error_createf (SVN_ERR_NODE_UNEXPECTED_KIND, NULL,
                               "svn_io_copy_dir: '%s' is not a directory.",
                               dst_parent);
 
- SVN_ERR (svn_io_check_path (dst_path, &kind, subpool));
+ SVN_ERR (svn_io_check_path (dst_path, FALSE, &kind, subpool));
   if (kind != svn_node_none)
     return svn_error_createf (SVN_ERR_ENTRY_EXISTS, NULL,
                               "svn_io_copy_dir: '%s' already exists.",
@@ -1678,7 +1682,7 @@
   *mimetype = NULL;
 
   /* See if this file even exists, and make sure it really is a file. */
- SVN_ERR (svn_io_check_path (file, &kind, pool));
+ SVN_ERR (svn_io_check_path (file, FALSE, &kind, pool));
   if (kind != svn_node_file)
     return svn_error_createf (SVN_ERR_BAD_FILENAME, NULL,
                               "svn_io_detect_mimetype: "
Index: subversion/svnlook/main.c
===================================================================
--- subversion/svnlook/main.c (revision 4368)
+++ subversion/svnlook/main.c (working copy)
@@ -451,7 +451,7 @@
       svn_node_kind_t kind;
       const char *piece = ((const char **) (path_pieces->elts))[i];
       full_path = svn_path_join (full_path, piece, pool);
- SVN_ERR (svn_io_check_path (full_path, &kind, pool));
+ SVN_ERR (svn_io_check_path (full_path, FALSE, &kind, pool));
 
       /* Does this path component exist at all? */
       if (kind == svn_node_none)
@@ -945,7 +945,7 @@
       SVN_ERR (svn_fs_revision_root (&base_root, c->fs, base_rev_id, pool));
       SVN_ERR (print_diff_tree (root, base_root, tree, "", "",
                                 c->no_diff_deleted, pool));
- SVN_ERR (svn_io_check_path (SVNLOOK_TMPDIR, &kind, pool));
+ SVN_ERR (svn_io_check_path (SVNLOOK_TMPDIR, FALSE, &kind, pool));
       if (kind == svn_node_dir)
         SVN_ERR (svn_io_remove_dir (SVNLOOK_TMPDIR, pool));
     }
Index: subversion/libsvn_client/prop_commands.c
===================================================================
--- subversion/libsvn_client/prop_commands.c (revision 4368)
+++ subversion/libsvn_client/prop_commands.c (working copy)
@@ -324,7 +324,7 @@
       const char *pdir;
       const svn_wc_entry_t *entry;
       
- SVN_ERR (svn_io_check_path (target, &kind, pool));
+ SVN_ERR (svn_io_check_path (target, FALSE, &kind, pool));
       if (kind == svn_node_file)
         svn_path_split (target, &pdir, NULL, pool);
       else
Index: subversion/libsvn_client/auth.c
===================================================================
--- subversion/libsvn_client/auth.c (revision 4368)
+++ subversion/libsvn_client/auth.c (working copy)
@@ -65,7 +65,7 @@
 {
   svn_node_kind_t kind;
 
- SVN_ERR (svn_io_check_path (path, &kind, pool));
+ SVN_ERR (svn_io_check_path (path, FALSE, &kind, pool));
   if (kind == svn_node_dir)
     {
       SVN_ERR (svn_client__dir_if_wc (auth_dir_p, path, pool));
Index: subversion/libsvn_client/delete.c
===================================================================
--- subversion/libsvn_client/delete.c (revision 4368)
+++ subversion/libsvn_client/delete.c (working copy)
@@ -45,7 +45,7 @@
   svn_node_kind_t kind;
   svn_wc_adm_access_t *dir_access;
 
- SVN_ERR (svn_io_check_path (path, &kind, pool));
+ SVN_ERR (svn_io_check_path (path, FALSE, &kind, pool));
   if (kind == svn_node_dir)
     SVN_ERR (svn_wc_adm_retrieve (&dir_access, adm_access, path, pool));
   else
Index: subversion/libsvn_client/revert.c
===================================================================
--- subversion/libsvn_client/revert.c (revision 4368)
+++ subversion/libsvn_client/revert.c (working copy)
@@ -59,7 +59,7 @@
         {
           svn_node_kind_t kind;
 
- SVN_ERR (svn_io_check_path (path, &kind, pool));
+ SVN_ERR (svn_io_check_path (path, FALSE, &kind, pool));
           if (kind == svn_node_dir)
             {
               /* While we could add the parent to the access baton set, there
Index: subversion/libsvn_client/diff.c
===================================================================
--- subversion/libsvn_client/diff.c (revision 4368)
+++ subversion/libsvn_client/diff.c (working copy)
@@ -456,7 +456,7 @@
   const char *copyfrom_url;
   const char *child;
 
- SVN_ERR (svn_io_check_path (mine, &kind, subpool));
+ SVN_ERR (svn_io_check_path (mine, FALSE, &kind, subpool));
   switch (kind)
     {
     case svn_node_none:
@@ -521,7 +521,7 @@
   svn_wc_adm_access_t *parent_access;
   const char *parent_path;
 
- SVN_ERR (svn_io_check_path (mine, &kind, subpool));
+ SVN_ERR (svn_io_check_path (mine, FALSE, &kind, subpool));
   switch (kind)
     {
     case svn_node_file:
@@ -563,7 +563,7 @@
   assert (child != NULL);
   copyfrom_url = svn_path_join (merge_b->url, child, subpool);
 
- SVN_ERR (svn_io_check_path (path, &kind, subpool));
+ SVN_ERR (svn_io_check_path (path, FALSE, &kind, subpool));
   switch (kind)
     {
     case svn_node_none:
@@ -611,7 +611,7 @@
   svn_wc_adm_access_t *parent_access;
   const char *parent_path;
   
- SVN_ERR (svn_io_check_path (path, &kind, subpool));
+ SVN_ERR (svn_io_check_path (path, FALSE, &kind, subpool));
   switch (kind)
     {
     case svn_node_dir:
@@ -1114,7 +1114,7 @@
                                   recurse,
                                   diff_editor, diff_edit_baton));
 
- SVN_ERR (svn_io_check_path (path2, &kind, pool));
+ SVN_ERR (svn_io_check_path (path2, FALSE, &kind, pool));
       if (kind == svn_node_dir)
         SVN_ERR (svn_wc_adm_retrieve (&dir_access, adm_access, path2, pool));
       else
Index: subversion/libsvn_client/copy.c
===================================================================
--- subversion/libsvn_client/copy.c (revision 4368)
+++ subversion/libsvn_client/copy.c (working copy)
@@ -79,7 +79,7 @@
   svn_wc_adm_access_t *adm_access, *src_access;
 
   /* Verify that SRC_PATH exists. */
- SVN_ERR (svn_io_check_path (src_path, &src_kind, pool));
+ SVN_ERR (svn_io_check_path (src_path, FALSE, &src_kind, pool));
   if (src_kind == svn_node_none)
     return svn_error_createf (SVN_ERR_NODE_UNKNOWN_KIND, NULL,
                               "path `%s' does not exist.", src_path);
@@ -89,7 +89,7 @@
      DST_PATH is a dir, then SRC_PATH's basename will become a new
      file or dir within DST_PATH itself. Else if it's a file, just
      error out. */
- SVN_ERR (svn_io_check_path (dst_path, &dst_kind, pool));
+ SVN_ERR (svn_io_check_path (dst_path, FALSE, &dst_kind, pool));
   if (dst_kind == svn_node_none)
     {
       svn_path_split (dst_path, &dst_parent, &base_name, pool);
@@ -443,7 +443,7 @@
       svn_node_kind_t kind;
 
       apr_hash_this (hi, &key, &keylen, &val);
- SVN_ERR (svn_io_check_path ((const char *)key, &kind, pool));
+ SVN_ERR (svn_io_check_path ((const char *)key, FALSE, &kind, pool));
       if (kind == svn_node_file)
         SVN_ERR (svn_io_remove_file ((const char *)key, pool));
     }
@@ -589,7 +589,7 @@
     }
 
   /* Crawl the working copy for commit items. */
- SVN_ERR (svn_io_check_path (base_path, &src_kind, pool));
+ SVN_ERR (svn_io_check_path (base_path, FALSE, &src_kind, pool));
   if (src_kind == svn_node_dir)
      SVN_ERR (svn_wc_adm_retrieve (&dir_access, adm_access, base_path, pool));
   else
@@ -751,7 +751,7 @@
    */
 
   /* First, figure out about dst. */
- SVN_ERR (svn_io_check_path (dst_path, &dst_kind, pool));
+ SVN_ERR (svn_io_check_path (dst_path, FALSE, &dst_kind, pool));
   if (dst_kind == svn_node_dir)
     {
       const char *base_name;
@@ -768,7 +768,7 @@
 
   /* Now that dst_path has possibly been reset, check that there's
      nothing in the way of the upcoming checkout. */
- SVN_ERR (svn_io_check_path (dst_path, &dst_kind, pool));
+ SVN_ERR (svn_io_check_path (dst_path, FALSE, &dst_kind, pool));
   if (dst_kind != svn_node_none)
     return svn_error_createf (SVN_ERR_WC_OBSTRUCTED_UPDATE, NULL,
                               "`%s' is in the way", dst_path);
Index: subversion/libsvn_client/update.c
===================================================================
--- subversion/libsvn_client/update.c (revision 4368)
+++ subversion/libsvn_client/update.c (working copy)
@@ -122,7 +122,7 @@
                                   recurse,
                                   update_editor, update_edit_baton));
 
- SVN_ERR (svn_io_check_path (path, &kind, pool));
+ SVN_ERR (svn_io_check_path (path, FALSE, &kind, pool));
       SVN_ERR (svn_wc_adm_retrieve (&dir_access, adm_access,
                                     (kind == svn_node_dir
                                      ? path
Index: subversion/libsvn_client/commit_util.c
===================================================================
--- subversion/libsvn_client/commit_util.c (revision 4368)
+++ subversion/libsvn_client/commit_util.c (working copy)
@@ -140,7 +140,7 @@
     return svn_error_createf
       (SVN_ERR_NODE_UNKNOWN_KIND, NULL, "Unknown entry kind for \"%s\"", path);
 
- SVN_ERR (svn_io_check_path (path, &kind, pool));
+ SVN_ERR (svn_io_check_path (path, FALSE, &kind, pool));
 
   if ((kind != svn_node_file)
       && (kind != svn_node_dir)
@@ -397,7 +397,7 @@
                       /* A missing, schedule-delete child dir is
                          allowable. Just don't try to recurse. */
                       svn_node_kind_t childkind;
- SVN_ERR (svn_io_check_path (full_path,
+ SVN_ERR (svn_io_check_path (full_path, FALSE,
                                                   &childkind, loop_pool));
                       if (childkind == svn_node_none
                           && this_entry->schedule == svn_wc_schedule_delete)
Index: subversion/libsvn_client/cleanup.c
===================================================================
--- subversion/libsvn_client/cleanup.c (revision 4368)
+++ subversion/libsvn_client/cleanup.c (working copy)
@@ -40,7 +40,7 @@
 {
   svn_node_kind_t kind;
 
- SVN_ERR (svn_io_check_path (dir, &kind, pool));
+ SVN_ERR (svn_io_check_path (dir, FALSE, &kind, pool));
   if (kind != svn_node_dir)
     return svn_error_createf (SVN_ERR_WC_NOT_DIRECTORY, NULL,
                               "Cannot cleanup '%s' -- not a directory",
Index: subversion/libsvn_client/commit.c
===================================================================
--- subversion/libsvn_client/commit.c (revision 4368)
+++ subversion/libsvn_client/commit.c (working copy)
@@ -353,7 +353,7 @@
                               pool, &root_baton));
 
   /* Import a file or a directory tree. */
- SVN_ERR (svn_io_check_path (path, &kind, pool));
+ SVN_ERR (svn_io_check_path (path, FALSE, &kind, pool));
 
   /* Note that there is no need to check whether PATH's basename is
      the same name that we reserve for our admistritave
@@ -589,7 +589,7 @@
       svn_node_kind_t kind;
       const char *base_dir = path;
 
- SVN_ERR (svn_io_check_path (path, &kind, pool));
+ SVN_ERR (svn_io_check_path (path, FALSE, &kind, pool));
       if (kind == svn_node_file)
         svn_path_split (path, &base_dir, NULL, pool);
       SVN_ERR (get_ra_editor (&ra_baton, &session, &ra_lib, NULL,
@@ -639,7 +639,7 @@
       svn_node_kind_t kind;
 
       apr_hash_this (hi, &key, NULL, &val);
- SVN_ERR (svn_io_check_path ((const char *)key, &kind, pool));
+ SVN_ERR (svn_io_check_path ((const char *)key, FALSE, &kind, pool));
       if (kind == svn_node_file)
         SVN_ERR (svn_io_remove_file ((const char *)key, pool));
     }
Index: subversion/libsvn_client/add.c
===================================================================
--- subversion/libsvn_client/add.c (revision 4368)
+++ subversion/libsvn_client/add.c (working copy)
@@ -135,7 +135,7 @@
 
   SVN_ERR (svn_wc_adm_open (&adm_access, NULL, parent_path, TRUE, TRUE, pool));
 
- SVN_ERR (svn_io_check_path (path, &kind, pool));
+ SVN_ERR (svn_io_check_path (path, FALSE, &kind, pool));
   if ((kind == svn_node_dir) && recursive)
     err = add_dir_recursive (path, adm_access,
                              notify_func, notify_baton, pool);
Index: subversion/libsvn_repos/hooks.c
===================================================================
--- subversion/libsvn_repos/hooks.c (revision 4368)
+++ subversion/libsvn_repos/hooks.c (working copy)
@@ -117,7 +117,7 @@
   svn_node_kind_t kind;
   const char *hook = svn_repos_start_commit_hook (repos, pool);
 
- if ((! svn_io_check_path (hook, &kind, pool))
+ if ((! svn_io_check_path (hook, TRUE, &kind, pool))
       && (kind == svn_node_file))
     {
       const char *args[4];
@@ -144,7 +144,7 @@
   svn_node_kind_t kind;
   const char *hook = svn_repos_pre_commit_hook (repos, pool);
 
- if ((! svn_io_check_path (hook, &kind, pool))
+ if ((! svn_io_check_path (hook, TRUE, &kind, pool))
       && (kind == svn_node_file))
     {
       const char *args[4];
@@ -171,7 +171,7 @@
   svn_node_kind_t kind;
   const char *hook = svn_repos_post_commit_hook (repos, pool);
 
- if ((! svn_io_check_path (hook, &kind, pool))
+ if ((! svn_io_check_path (hook, TRUE, &kind, pool))
       && (kind == svn_node_file))
     {
       const char *args[4];
@@ -202,7 +202,7 @@
   svn_node_kind_t kind;
   const char *hook = svn_repos_pre_revprop_change_hook (repos, pool);
 
- if ((! svn_io_check_path (hook, &kind, pool))
+ if ((! svn_io_check_path (hook, TRUE, &kind, pool))
       && (kind == svn_node_file))
     {
       const char *args[6];
@@ -248,7 +248,7 @@
   svn_node_kind_t kind;
   const char *hook = svn_repos_post_revprop_change_hook (repos, pool);
   
- if ((! svn_io_check_path (hook, &kind, pool))
+ if ((! svn_io_check_path (hook, TRUE, &kind, pool))
       && (kind == svn_node_file))
     {
       const char *args[6];
Index: subversion/svnversion/main.c
===================================================================
--- subversion/svnversion/main.c (revision 4368)
+++ subversion/svnversion/main.c (working copy)
@@ -90,7 +90,7 @@
   if (err)
     {
       svn_node_kind_t kind;
- svn_error_t *err3 = svn_io_check_path (wc_path, &kind, pool);
+ svn_error_t *err3 = svn_io_check_path (wc_path, FALSE, &kind, pool);
       if (! err3 && kind == svn_node_dir)
         {
           printf ("exported\n");

-- 
-- Josef Wolf -- jw@raven.inka.de --
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org
Received on Mon Jan 13 23:49:39 2003

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