我正在尝试通过SVN + SSH从Windows Server 2003计算机设置计划的Subversion提交作为任务。我希望将提交脚本作为SYSTEM用户执行。所以我猜,为了工作,我需要将存储库签出为SYSTEM,但到目前为止我无法实现它。
我已经能够通过SSH与我自己的用户实现上述目标。我做了以下事情:
我在本地的subversion配置中添加了[tunnels]实体:
ssh = plink.exe -i“C:/Key/my_key.ppk”
在运行Subversion的服务器上添加了authorized_keys
文件的密钥
我用以下脚本检查了存储库:
svn co svn + ssh:// user @ server / path / to / repo / C:\ Local \ Project \ Path
我现在想为SYSTEM用户重现上述步骤,以便稍后能够运行预定的提交。我面临的问题是我不知道如何将存储库检出为SYSTEM,因为:
C:\Documents and Settings\Default User\Application Data\Subversion
和C:\Documents and Settings\Administrator\Application Data\Subversion
,但没有成功。我也读过某个地方,我可能会将svn switch
用于我想要的地方,但不知道如何svn switch
作为SYSTEM。我还考虑为svn签出编写脚本或者将它们作为SYSTEM切换和运行,但是我仍然需要全局SVN配置来添加my_key.ppk
。
我希望上面的描述足够清楚。我一直在努力与它斗争很长一段时间,我自己总结了一些问题。任何提示都赞赏。
答案 0 :(得分:2)
作为一方,这似乎并非完全偏离主题:https://serverfault.com/q/9325/122307
这不是您问题的真实答案,但它可能会解决您的问题:为什么不使用svn <command> --config-dir ARG
或svn <command> --config-option ARG
?
您可以像这样指定配置文件/选项,从而可以设置[隧道]。
答案 1 :(得分:0)
--config-dir
时,@cxxl 真的回答了。我将尝试阐明问题
我猜,为了工作,我需要将存储库签出为SYSTEM
错误和错误的猜测,因为存储本地用户的身份验证数据在SSH-auth的情况下不用于执行ssh远程身份验证。每用户身份验证
\%AppData%\Subversion\auth>dir /W
...
[svn.simple] [svn.ssl.client-passphrase]
[svn.ssl.server] [svn.username]
...
仅包含存储的凭据用于http | https | svn和基于证书的客户端身份验证,无用于与ssh相关的存储库
即你在LSA脚本下执行必须能够 *阅读工作副本文件(在任何其他真实本地用户下查看),也许写(无法回忆.svn dir权限的要求) *读取,因此,使用预定义和微调的Subversion的配置文件(隧道部分),可以是任何其他用户的配置
PS:swn switch
更改工作副本的存储库的链接URL,与用户没有任何共同之处