标记工作副本,提交失败:文件已存在

时间:2009-12-15 20:12:36

标签: svn

尝试创建工作副本的标记时,我们收到错误,提交失败:文件''已经存在。

尝试诊断问题并确定以下复杂的重新创建方案。

我们有一个用于测试和QA版本的临时环境。从未在登台环境中进行开发,并且构建是通过SVN签出完成的。

在分段环境中完成全面检查,并且它会经历QA循环。在开发环境中解析错误,然后在登台环境中更新单个文件。

当准备好在暂存环境中标记版本时,tag命令失败,提交失败:文件已存在。

可以通过在整个目录上完成SVN更新来解决此问题,但如果有新代码不打算进行标记,则这不是理想的。

还有其他人有经验或有解决方案吗?我们完全使用SVN错了吗?

我们使用Tortoise SVN在我们的存储库中工作,但也有命令行工具

3 个答案:

答案 0 :(得分:1)

您正在尝试提交(标记)混合修订。你不能这样做。

请参阅此SO question

答案 1 :(得分:1)

当您执行登台服务器检出时,您应该将其分支到“发布”分支。将其标记为RC_version_1

然后你在那个分支上工作以准备它。错误在这个分支中得到解决(并合并回主干,这样你就不会再遇到任何错误,非常重要)。然后你可以从登台服务器(或者任何机器,如果它使用这个分支作为其工作副本)进行SVN提交。

无论如何,这就是我们这样做的方式。发布后的未来错误修复可以再次发送到这个分支,只标记每个版本(那里标签末尾的版本号就派上用场了)。我们只有一个发布分支,我们不断发布,所以没有真正的发布候选(RC)号码只是版本号。每次我们上传网站时,都会使用新的版本号对其进行标记。我们正在努力实现自动化,但要让它更加白痴。

希望有所帮助

答案 2 :(得分:1)

听起来更像SVN的方式,你正在做的事情将是你的“临时环境”成为一个单独的分支。 QA团队在该分支机构进行日常工作,开发人员在后备箱上进行日常工作。当开发人员修复需要添加到QA周期的错误时,他们会将它们合并到QA团队的分支中。

这样,QA团队的工作副本与存储库保持同步,而不是逐渐消失。他们不需要担心svn update命令,因为为了集成更改,有人必须明确地将它从主干合并到QA分支。

QA周期完成后,您只需从QA分支复制到所需的标签即可。

顺便说一句,我建议您直接在存储库上执行标记/分支,而不是在工作副本上。这样,您就可以避免在本地文件系统上复制所有这些文件的开销。