This patch converts the SVNPath and SVNParentPath values to the internal
path
style in
the apache config and then converts the repos path to local style when it
is
passed to the
hooks.
On windows the REPOS-PATH parameter passed to the hooks use the same format
as in your Apache Config.
e.g. If you use '/' in your SVNPath then the path in passed to the hooks
also
uses a '/',
but if you use '\' then the hooks also uses a '\'.
The former causes a problem in some hook scripts/commands that don't accept
a
'/' in paths.
Chris
[[[
Ensure that the repos path is passed to the hook scripts in local style.
* subversion/mod_dav_svn/mod_dav_svn.c
(dav_svn_path_cmd, dav_svn_parent_path_cmd): Convert the repos path to
internal style.
* 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, svn_repos__hooks_pre_lock,
svn_repos__hooks_post_lock, svn_repos__hooks_pre_unlock,
svn_repos__hooks_post_unlock): Convert the repos path to local style.
]]]
Index: subversion/mod_dav_svn/mod_dav_svn.c
===================================================================
--- subversion/mod_dav_svn/mod_dav_svn.c (revision 22928)
+++ subversion/mod_dav_svn/mod_dav_svn.c (working copy)
@@ -253,7 +253,7 @@
return "SVNPath cannot be defined at same time as SVNParentPath.";
conf->fs_path
- = svn_path_canonicalize(apr_pstrdup(cmd->pool, arg1), cmd->pool);
+ = svn_path_internal_style(apr_pstrdup(cmd->pool, arg1), cmd->pool);
return NULL;
}
@@ -268,7 +268,7 @@
return "SVNParentPath cannot be defined at same time as SVNPath.";
conf->fs_parent_path
- = svn_path_canonicalize(apr_pstrdup(cmd->pool, arg1), cmd->pool);
+ = svn_path_internal_style(apr_pstrdup(cmd->pool, arg1), cmd->pool);
return NULL;
}
Index: subversion/libsvn_repos/hooks.c
===================================================================
--- subversion/libsvn_repos/hooks.c (revision 22928)
+++ subversion/libsvn_repos/hooks.c (working copy)
@@ -524,7 +524,7 @@
const char *args[4];
args[0] = hook;
- args[1] = svn_repos_path(repos, pool);
+ args[1] = svn_path_local_style(svn_repos_path(repos, pool), pool);
args[2] = user ? user : "";
args[3] = NULL;
@@ -553,7 +553,7 @@
const char *args[4];
args[0] = hook;
- args[1] = svn_repos_path(repos, pool);
+ args[1] = svn_path_local_style(svn_repos_path(repos, pool), pool);
args[2] = txn_name;
args[3] = NULL;
@@ -582,7 +582,7 @@
const char *args[4];
args[0] = hook;
- args[1] = svn_repos_path(repos, pool);
+ args[1] = svn_path_local_style(svn_repos_path(repos, pool), pool);
args[2] = apr_psprintf(pool, "%ld", rev);
args[3] = NULL;
@@ -627,7 +627,7 @@
action_string[1] = '\0';
args[0] = hook;
- args[1] = svn_repos_path(repos, pool);
+ args[1] = svn_path_local_style(svn_repos_path(repos, pool), pool);
args[2] = apr_psprintf(pool, "%ld", rev);
args[3] = author ? author : "";
args[4] = name;
@@ -689,7 +689,7 @@
action_string[1] = '\0';
args[0] = hook;
- args[1] = svn_repos_path(repos, pool);
+ args[1] = svn_path_local_style(svn_repos_path(repos, pool), pool);
args[2] = apr_psprintf(pool, "%ld", rev);
args[3] = author ? author : "";
args[4] = name;
@@ -725,7 +725,7 @@
const char *args[5];
args[0] = hook;
- args[1] = svn_repos_path(repos, pool);
+ args[1] = svn_path_local_style(svn_repos_path(repos, pool), pool);
args[2] = path;
args[3] = username;
args[4] = NULL;
@@ -761,7 +761,7 @@
SVN_ERR(create_temp_file(&stdin_handle, paths_str, pool));
args[0] = hook;
- args[1] = svn_repos_path(repos, pool);
+ args[1] = svn_path_local_style(svn_repos_path(repos, pool), pool);
args[2] = username;
args[3] = NULL;
args[4] = NULL;
@@ -794,7 +794,7 @@
const char *args[5];
args[0] = hook;
- args[1] = svn_repos_path(repos, pool);
+ args[1] = svn_path_local_style(svn_repos_path(repos, pool), pool);
args[2] = path;
args[3] = username ? username : "";
args[4] = NULL;
@@ -831,7 +831,7 @@
SVN_ERR(create_temp_file(&stdin_handle, paths_str, pool));
args[0] = hook;
- args[1] = svn_repos_path(repos, pool);
+ args[1] = svn_path_local_style(svn_repos_path(repos, pool), pool);
args[2] = username ? username : "";
args[3] = NULL;
args[4] = NULL;
Send instant messages to your online friends http://uk.messenger.yahoo.com
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org
Received on Mon Jan 8 02:17:13 2007