1

我正在尝试通过 SVN+SSH 从 Windows Server 2003 机器设置预定的 Subversion 提交作为任务。我希望以系统用户身份执行提交脚本。所以我猜,为了让它工作,我也需要将存储库签出为 SYSTEM - 但到目前为止我无法实现它。

我已经能够通过我自己的用户通过 SSH 实现上述目标。我做了以下事情:

  1. 我在本地颠覆配置中添加了一个 [tunnels] 实体:

    ssh = plink.exe -i "C:/Keys/my_key.ppk"

  2. 将密钥添加到authorized_keys运行 Subversion 的服务器上的文件中

  3. 我使用如下脚本检查了存储库:

    svn co svn+ssh://user@server/path/to/repo/ C:\Local\Project\Path

我现在想为 SYSTEM 用户重现上述步骤,以便以后能够运行预定的提交。我面临的问题是我不知道如何将存储库签出为 SYSTEM,因为:

  1. 我不知道用于将存储库签出为 SYSTEM 的语法
  2. 我不知道全局(或系统的)Subversion 配置存储在 Windows Server 2003 上的什么位置。我已经尝试过 :C:\Documents and Settings\Default User\Application Data\SubversionC:\Documents and Settings\Administrator\Application Data\Subversion,但没有成功。

我还在某个地方读到了我可能可以svn switch用于我想要的东西,但不知道如何svn switch作为 SYSTEM。我还考虑为 svn check-out 或 switch 编写脚本并将它们作为 SYSTEM 运行,但是我仍然需要全局 SVN 配置来添加my_key.ppk

我希望上面的描述足够清楚。我已经为此苦苦挣扎了很长时间,并且自己总结起来也遇到了问题。任何提示表示赞赏。

4

2 回答 2

2

作为一个方面,这似乎并不完全偏离主题:https ://serverfault.com/q/9325/122307

这不是您问题的真正答案,但它可能会解决您的问题:为什么不使用svn <command> --config-dir ARGor svn <command> --config-option ARG

您可以像这样指定配置文件/选项,从而能够设置 [隧道]。

于 2012-12-01T16:49:24.827 回答
0

@cxxl在提到时确实回答--config-dir了问题。我将尝试阐明问题

我猜,为了让它工作,我需要将存储库签出为 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 目录权限的要求) * 读取并因此使用预定义和精细 -调整 Subversion 的配置文件(隧道部分),可以是任何其他用户的配置

PS:swn switch更改工作副本存储库的链接URL,与用户没有共同点

于 2012-12-02T05:21:30.183 回答