访问被拒绝写入VS项目.suo尝试合并分支与TFS& GIT

时间:2014-11-15 18:09:50

标签: git visual-studio tfs

我正在尝试将分支与主服务器合并。分支结构:

master
    v0.43

我的重要变化是在v0.43。在v0.43中进行提交后,我尝试将v0.43合并到master。我收到以下错误:

  

发生错误。详细消息:libgit2引发了一个错误。   类别=无效(错误)。打不开   'C:/ Users / Me / Source / Repos /MyüProjectXX/MyüProjectXXX/ XXX XXX   X.v12.suo'用于写入:访问被拒绝。

“输出”窗格中没有其他信息。

当我只是尝试从v0.43分支更改为主分支时,我也收到上述错误消息。基本上,我被困在v0.43分支中。

请注意,“X”在实际项目名称中隐藏了字母字符。这些空间有效吗? ü有效吗?如果文件夹和文件名有效,并且特殊字符有效,为什么拒绝访问?或者合并是否需要访问此文件?

我知道它是Visual Studio用户设置文件。我很确定它不包含在GIT存储库中 - 尽管我只检查过:

git ls-files * .suo

不返回任何文件。

此问题是否与TFS / GIT与Visual Studio或Windows中的设置之间的凭据冲突有关?顺便说一下,我在Win 8.1上运行VS 2013.2。

我无法确定GIT分支合并是否真的需要访问VS用户设置文件(.suo),或者是否甚至不需要访问此文件。如果确实需要访问权限,我可以尝试实现这一目标吗?如果根本不需要这种访问,为什么还要继续尝试?

编辑 - 其他信息

我是TFS / GIT的新手。吸收很多东西。当我最初设置存储库(visualstudio.com上的本地和TFS)时,默认的.gitignore由于某种原因没有被创建,显然是在我的本地存储库中?我不知道,但是当我对我的项目进行更改然后进行提交时,我看到的内容出现在“Excluded”和“Untracked”中。对于GIT / TFS是绿色的,我右键单击并包含这些Excluded / Untracked文件。我现在知道这是错的。

我想我已经从上述问题中恢复过来了。首先,我实现了一个默认的.gitignore,专门忽略/ bin和/ obj。然后我删除了这两个文件夹中的所有内容(通过VS Solution Explorer)。他们没有回来作为包含,排除或未跟踪。这解决了一个问题。

接下来的问题是我看到v0.43分支中包含了项目的.suo。我看到它应该在默认的.gitignore(* .suo)中被忽略,因此我需要将它从v0.43分支中删除,但它并不像删除未使用的文件那么容易。我是通过命令行使用:

完成的

我能够看到.suo存在使用:

git ls-files *.suo

我将其删除:

git rm --cached "*.suo"
git commit -m "Delete *.suo file from repository"

...我能够通过执行相同的ls-files命令确认它已被删除。它不再出现在v0.43分支中。我做了提交并与TFS同步。现在我收到上面提到的错误 - 每当我尝试将v0.43合并到master或甚至切换到master分支时,Access都被拒绝到.suo。

我正在尝试切换 TO 并试图访问.suo文件,这可能是主分支?

如果是这样的话,我完全不知道如何解决这个问题。我想.suo有可能在某个时候被提交到主分支......但我不知道如何安全地访问主分支并从中删除.suo就像我对v0.43分支一样。

我希望这一切都有道理。 :S

3 个答案:

答案 0 :(得分:8)

我今天遇到了一个非常类似的问题。我无法切换分支,因为出现了这个错误:

  

发生错误。详细消息:无法打开'D:/Projects/ProjectName/Database/database.db'进行写入:访问被拒绝。

注意:为了显示目的,重命名了路径名和文件名

我做的很简单

  • 从文件资源管理器中删除文件(不在您的项目中)
  • Git现在会检测到此文件的删除
  • Changes视图
  • 中撤消此删除操作

我不确定是什么导致了这个问题,我希望有人觉得这个答案很有帮助。

答案 1 :(得分:1)

我现在正在研究这个问题,并认为这是问题的答案 * .sou文件是Visual Studio用户首选项的一部分。它出现在" .vs"文件夹是"隐藏文件夹"与你的解决方案一起。

如果您使用Team Services作为Git存储库,那么您只需删除" .vs"文件夹,它将被标记为"已删除/ {folder} /。vs"

要删除Team Services中的文件夹:在Team Services中找到该项目,并将鼠标悬停在" Code"下拉菜单并选择" Files"。导航到.sln文件夹,您将找到" .vs"夹。删除" .vs" " righ-click"在上面并选择"删除"

不应再跟踪该文件夹。

答案 2 :(得分:0)

我也有时会遇到这种情况,但有一个简单的解决方案。

只需从项目文件夹中删除.suo文件

即可

  • 转到解决方案资源管理器并右键单击解决方案,然后选择名为“文件浏览器中的打开文件夹”的第二个最后一个选项。

    enter image description here

  • 之后转到.vs文件夹(这是一个隐藏文件夹)。

  • 在该打开的文件夹之后,该文件夹具有项目名称。

  • 然后删除该文件夹中的.sou文件。

  • 已经完成。

  • 打开视觉工作室,您就会发现问题已解决。

谢谢你,
Nishit Zinzuvadiya。