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