我在TortoiseSVN源代码控制下有一个VS 2008项目。我是目前唯一使用它的人。

当我收到消息时,我试图提交最新的更改<!>“文件abc已过期 - 请更新<!>”。当我尝试更新项目时,我得到一整套文件冲突(二进制和文本)。由于我确信我的工作副本包含正确版本的文件,因此我尝试通过选择<!> quot; mine <!>来解决冲突。作为正确的版本。我还尝试将每个文件冲突标记为已解决。然后我就可以提交了。

然而,在此之后,我的VS 2008项目拒绝编译,并且提供了数百个错误(VS 2008报告显示有太多错误要显示的错误!)。有关TortoiseSVN的冲突解决方案的事情完全搞砸了项目,它拒绝建立。

我可以强制TortoiseSVN将我的工作副本作为最新版本保存到存储库中,而不检查冲突吗?

有帮助吗?

解决方案

我希望您在更新之前已经备份了工作副本,因为冲突很可能会导致源文件中出现大量的>>>>>> theirs<<<<<<< mine注释。

虽然我不了解冲突最初是如何发生的(因为你是唯一一个提交到存储库的人),但是有可能解决。

移动你的当前,<!>;工作<!>工作副本到安全的位置。检查项目是否完全新鲜。将源文件复制到新的工作副本上,然后提交生成的更改。

当源树由多个目录组成时,单独复制每个目录可能会非常繁琐。要解决此问题,您可以导出您的安全<!>;工作<!>使用TortoiseSVN的工作副本 - <!> gt;全部导出。这将创建一个没有所有.svn文件和目录的目录。然后,您可以将此导出的目录复制到新的工作副本上。

其他提示

我发现Visual Studio项目文件很容易出现自动合并问题。问题是文件的格式是如此重复,合并实用程序很难确定更改是添加还是修改。此外,某些操作似乎会导致Visual Studio重新排列项目文件中的entires。同样,这些更改对于合并实用程序正确处理来说相对困难。

我依靠两个选项中的一个来解决这个问题。首先,您可以在记事本中打开项目文件并手动修复。它们并不复杂,你通常可以只遵循这种模式,确保没有任何不合适的地方。

第二种方法是恢复项目文件,然后在Visual Studio中根据需要添加和删除文件并进行其他更改。

如果提交是经常提交的,那么这些任务都不会太复杂。如果炸弹被放置在存储库中,那么这就是为什么早期提交并经常是一个好主意的众多原因之一。 =)

Visual Studio和TortoiseSVN并不能很好地协同工作。我注意到的一件事是你无法在构建目录中成功编写任何内容,因为VS认为它<!>“;拥有<!>”;构建目录,并可能删除你的.svn文件夹(这只是为了涉及干净的构建吗?)

您可能会看到集成到Visual Studio中的Subversion客户端。 AnkhSVN让人想起,但研究这个问题的一个很好的起点是 http://sharpsvn.open.collab。净/ 。或者,您可以考虑直接从构建前或构建后任务使用sharpsvn,也可以考虑在Visual Studio中使用宏。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top