我的项目被Subversion污染了吗?还是我做错了什么?

3
我正在使用Visual Studio 2008进行C#项目开发;我们也在使用(公司规定的)Subversion和Tortoise。在同事上传最新文件后,由于我收到了错误信息,项目无法编译:

"Files has invalid value "<<<<<<< .mine". Illegal characters in path."

搜索结果表明,这是一个名为"GOHRFTracker.csproj.FileListAbsolute.txt"的文件引起的。

我猜测(FileListAbsolute)这是一个由Subversion生成的文件。那么为什么需要它才能编译?我可以简单地删除文件、重命名、删除引起问题的"<<<<<<< .mine"或者......?


6
我建议为你的团队提供一些颠覆性培训。 - MattDavey
Uh. CSProj文件是由VS.Net控制的;你添加了一个文件,你的同事也添加了一个文件,他们先提交了。你需要将这两个文件合并在一起。 - 48klocs
2
你可以尝试在Visual Studio中使用Agent SVN插件。它将允许你使用Visual Studio IDE中标准的实际版本控制菜单(例如:签出、签入、比较等)。它还有一个选项,在签出时进行文件锁定,这应该会减少创建合并冲突的机会。 - jussij
7个回答

9
那是一个合并冲突标记。您和您的同事在该项目文件中有冲突的更改。

这不是我明确更改过的文件(直到我搜索到那个冒犯的文本,我甚至都不知道它的存在); 那么我可以删除它吗?重命名它?去掉大量的尖括号,还是怎么做? - B. Clay Shannon-B. Crow Raven
请查看Mike的答案以获取filelistabsolute.txt文件存在的原因链接。出于同样的原因,我建议从仓库中删除.csproj.filelistabsolute.txt并将其排除在外,就像我建议将.SUO文件排除在外一样 - 它是每个用户、每台机器的数据,不应该被版本跟踪。 - Tetsujin no Oni

4

试试Agent SVN适用于Visual Studio的Subversion插件。我发现它有助于最小化这些类型的合并/冲突问题。


2

1
我怀疑有人遇到了合并冲突,没有正确处理它,然后提交了有冲突的文件,这让你需要解决这个混乱。 - Steve Kaye
@Steve Kaye +1 这几乎肯定是发生了什么,这是版本控制的基本错误 - 谁做了这件事应该被确定并作为优先事项接受 SVN 培训。 - MattDavey
哈,有一半的时间 SVN(Tortoise + Ankh)没有警告这些冲突,并且我只有在重新打开解决方案时才会发现。当<<<<<<<这个垃圾出现在注释行时,总是很有趣。在 SVN 中进行合并总是一种乐趣。 - Mark Sowul

1

如果您使用Tortoise SVN:

右键单击Visual Studio创建的bin和obj文件夹中的debug文件夹 > 选择Tortoise SVN > 取消版本控制并添加到忽略列表 > Debug(递归)。

清空这些文件夹的内容并重新构建。祝好运!


1

使用Tortoise,您需要解决合并冲突。它用于指示冲突以及每个参与方在哪里发生冲突的贡献。


1

你需要编辑文件中存在的冲突。一旦解决了冲突,SVN将自动删除它们。


-3

<<<<<<<<<.mine 是一个合并冲突标记,当存在未解决的冲突时会出现。这通常发生在两个用户提交了对同一文件具有冲突变更的情况下。

解决方案为:

打开有冲突的文件并删除 "<<<<<<<<<.mine" 行。

希望这能帮到你。


2
这是一个非常不准确的关于冲突发生原因的描述,同时也是一个糟糕的解决方案。 - Tetsujin no Oni

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接