On 23 Nov 2005 09:13:30 -0600, kfogel@collab.net <kfogel@collab.net> wrote:
> Alex, you might want to mention that these are probably issue #2305,
> filed by you, and hinted at by the '/tmp/wc_2305_s' path in your
> example below :-).
>
> Does your patch in #2305 fix the symptoms in your mail below, as well
> as the symptoms listed in the issue?
>
> -Karl
>
> Alexander Thomas <alexander@collab.net> writes:
> > Hi all,
> >
> > I found that symbolic link handling for most of the svn commands are
> > buggy. Commands include blame, log, ls, cat, cleanup, revert, propget,
> > proplist, propset, All fails if invoked on a symbolic working copy root
> > directory. Here is the reproducing script
> >
> > svnadmin create repos
> > svn co file:///`pwd`/repos `pwd`/wc
> > ln -s `pwd`/wc `pwd`/wc_sym
> > svn blame `pwd`/wc_sym
> >
> >
> > Except for cleanup and revert commands every other commands fails with
> > error message
> > subversion/libsvn_wc/lock.c:377: (apr_err=155007)
> > svn: '/parent/path' is not a working copy
> >
> > for revert error message is
> > subversion/clients/cmdline/revert-cmd.c:60: (apr_err=155005)
> > svn: Try 'svn revert --recursive' instead?
> > subversion/libsvn_wc/lock.c:745: (apr_err=155005)
> > svn: Directory '/tmp/.svn' containing working copy admin area is missing
> >
> > for cleanup its
> > subversion/libsvn_wc/log.c:2254: (apr_err=155007)
> > svn: '/tmp/wc_2305_s' is not a working copy directory
> >
> > -Alexander Thomas (AT)
>
Do we need something like this:
svn_error_t *
svn_opt_parse_path_resolved (svn_opt_revision_t *rev,
const char **truepath,
const char *path /* UTF-8! */,
apr_pool_t *pool)
{
svn_boolean_t is_special;
svn_node_kind_t kind;
SVN_ERR (svn_opt_parse_path (rev, truepath, path, pool));
SVN_ERR (svn_io_check_special_path (*truepath, &kind, &is_special, pool));
if ( is_special == TRUE )
{
svn_string_t *resolved_path;
// resolve the symlink
SVN_ERR (svn_io_read_link (&resolved_path, *truepath, pool));
*truepath = svn_path_canonicalize (resolved_path->data, pool);
}
return SVN_NO_ERROR;
}
To use with the commands that can't operate on symlinks, give this is
a temporary workaround, but it can fix the problem at the client level,
until something more permanent is put together.
Josh
P.S. I would test, but I'm moving and my work machine is windows.
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org
Received on Wed Nov 23 22:04:12 2005