6

我在提交/更新前几天在家中的网络驱动器(其中之一)上设置的 SVN 存储库时遇到问题。

我指的是使用 url 的存储库:

file://mynetworkdrive/Documents/subversion/code/sln/trunk/MyWebsite/trunk/Home

当我从 VS 2010 的“解决方案”上下文菜单中选择“更新”或“提交”选项时,会出现一个对话框窗口,显示如下所示的异常:

在此处输入图像描述

SharpSvn.SvnRepositoryIOException: Commit failed (details follow): ---> SharpSvn.SvnRepositoryIOException: Unable to connect to a repository at URL 'file://mynetworkdrive/Documents/subversion/code/sln/trunk/MyWebsite/trunk/Home' ---> SharpSvn.SvnRepositoryIOException: Unable to open an ra_local session to URL ---> SharpSvn.SvnRepositoryIOException: Unable to open repository 'file://mynetworkdrive/Documents/subversion/code/sln/trunk/MyWebsite/trunk/Home' ---> SharpSvn.SvnSystemException: Can't open file '\\mynetworkdrive\Documents\subversion\code\sln\trunk\MyWebsite\trunk\Home\format': Logon failure: unknown user name or bad password.  
   --- End of inner exception stack trace ---
   --- End of inner exception stack trace ---
   --- End of inner exception stack trace ---
   --- End of inner exception stack trace ---
   at SharpSvn.SvnClientArgs.HandleResult(SvnClientContext client, SvnException error, Object targets)
   at SharpSvn.SvnClientArgs.HandleResult(SvnClientContext client, svn_error_t* error, Object targets)
   at SharpSvn.SvnClient.Commit(ICollection`1 paths, SvnCommitArgs args, SvnCommitResult& result)
   at Ankh.Services.PendingChanges.PendingChangeHandler.<>c__DisplayClass1b.<Commit_CommitToRepository>b__19(Object sender, ProgressWorkerArgs e)

当我第一次设置它时,我可以在 Visual Studio 中与存储库进行良好的通信。

我可以使用 Windows 资源管理器浏览网络驱动器的内容。

我可以在 Visual Studio 之外使用 TortoiseSVN 来更新或提交到我的存储库。

但是,这很痛苦,我希望 Ankhsvn 与 Visual Studio 的集成可供使用。

似乎 Visual Studio 忘记了访问 URL 所需的用户名/密码。我找不到替换或强制提示输入凭据的方法。

我还改为以管理员身份运行 Visual Studio 2010,以便可以使用 IIS 7,我想知道这是否与它有关?

4

1 回答 1

4

用评论中的知识重写我的答案到我的原始回复。

您以管理权限运行 Visual Studio。这使得应用程序 (VS) 在其自己的会话中运行,该会话具有自己的网络映射。然后 Subversion 尝试使用尚未创建的网络映射连接到 file:/// 存储库。

这种情况下的解决方案是确保该管理用户也存在网络映射。您可以通过 File->Open 浏览到文件夹然后传递凭据来执行此操作。

另一种选择是创建一个批处理文件,该文件创建网络映射 (net add),然后启动 Visual Studio。这将避免每次都重新应用相同的技巧。

另一种选择是通过 http(s) 或 svn:// 连接到 Subversion 服务器。

于 2013-03-12T13:05:28.477 回答