2009-12-15 102 views
2

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

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

我们有一个用于测试和QA发布的登台环境。开发永远不会在分段环境中完成,并且构建是通过SVN签出完成的。

完整结帐在分期环境中完成,并经历QA周期。在开发环境中解决错误,然后在临时环境中更新单个文件。

当发布准备好在分段环境中进行标记时,tag命令失败,并且提交失败:文件已存在。

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

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

我们使用乌龟SVN在我们的仓库工作,但也有命令行工具

回答

1

您试图提交(标签)的混合版。你不可以做这个。

看到这个SO question

+0

这听起来就像我们正在做的事情 - 谢谢,我会再次检查并确认,如果这是我们正在处理的问题的确切答案。它也解决了我们最终的流程问题,但这不是CVS的问题(这是我们来自的地方) – Dan 2009-12-15 21:05:31

+0

感谢这个方向! – Dan 2009-12-17 20:27:23

+0

根据[SVN书](http://svnbook.red-bean.com/en/1.1/ch04s06.html#svn-ch-4-sect-6.2),提交混合修订版没有问题。 – matthewwithanm 2010-11-04 16:24:24

1

当你做你的临时服务器退房,你应该分支它变成一个“释放”分支。将其标记为RC_version_1

然后,您在该分支上工作以准备好它。错误在这个分支中被解决(并且合并回到主干中,所以你不会有任何漏洞回来,这非常重要)。然后你可以从你的登台服务器上做一个SVN提交(或者如果它使用这个分支作为它的工作副本,则实际上是任何机器)。

这就是我们无论如何都这样做的方式。发布版本发布后的未来错误修复可以再次发布到该分支,只需标记每个版本(即标签末尾的版本号即可派上用场)。我们只有一个发布分支,我们继续发布,所以并没有发布候选版本(RC)的版本号。每次我们上传一个网站时,我们都会使用新的版本号对其进行标记。我们正在努力实现这个功能,尽管这样做有点白痴。

希望帮助

1

这听起来像做你正在做什么是你的“临时环境”是一个独立的分支更SVN样的方式。 QA团队在该分支上进行日常工作,开发人员在主干上进行日常工作。随着开发人员修复需要添加到质量检查周期的错误,他们会将它们合并到质量检查小组的分支中。

通过这种方式,QA团队的工作副本与存储库保持同步,而不是偏离。他们不需要担心svn update命令,因为为了整合更改,有人必须将其明确地从主干合并到QA分支。

一旦QA循环完成,您可以从QA分支复制到所需的标签。顺便说一句,我建议你直接在存储库上做你的标签/分支,而不是在工作副本上。这样,您可以避免在本地文件系统上复制所有这些文件的开销。

+0

直接在存储库中标记生产分支的一个问题是,您不一定要标记QA验证的确切内容。开发人员可能已将代码检入尚未经过特定建造之夜认证的分支中。 – Dan 2009-12-15 20:52:01

相关问题