svn中repos的部署方法

svn中repos的部署方法,svn,version-control,deployment,Svn,Version Control,Deployment,我们是在svn环境中工作的5名开发人员。 每个程序员都可以处理小错误,并在任何时候提交。 在工作完成之后,我想给他们一种部署到生产环境的方法,而不考虑其他程序员和他们的部署。 例如: 当我提交时,其他用户也在提交,但他没有完成提交。 他的修正案1,3 我的修订2,4 如果我将部署头(4),我也将部署他的工作。 我将部署2和4我也将包括他的文件 我怎样才能让每个程序员只部署自己的文件 谢谢这取决于您的部署方法。如果您在生产上保存一个版本化的代码树,也就是说,您在生产机器上执行了svn签出,那么最简

我们是在svn环境中工作的5名开发人员。 每个程序员都可以处理小错误,并在任何时候提交。 在工作完成之后,我想给他们一种部署到生产环境的方法,而不考虑其他程序员和他们的部署。 例如: 当我提交时,其他用户也在提交,但他没有完成提交。 他的修正案1,3 我的修订2,4

如果我将部署头(4),我也将部署他的工作。 我将部署2和4我也将包括他的文件

我怎样才能让每个程序员只部署自己的文件


谢谢

这取决于您的部署方法。如果您在生产上保存一个版本化的代码树,也就是说,您在生产机器上执行了
svn签出
,那么最简单的方法就是让程序员在生产上简单地使用
svn update--revision REV
,其中
REV
是程序员希望更新的版本

然而,这种方法容易出现人为错误


如果每个程序员都需要根据自己的代码随时上传不同版本的程序,而不需要上传其他程序员的代码,那么我会为每个程序员设置自己的分支。程序员可以随时签入自己的分支,当分支准备投入生产时,他们可以将分支合并回主干(或另一个发布分支),主干可以通过
svn export
svn update
复制到生产中。这种过程用于保证您始终有一个工作的发布分支,如果您的程序员习惯于签入未完成的代码(即每天结束时),则这种过程尤其有用。

我认为您正在尝试做的是,将一些更改与部署隔离开来,以便可以部署错误修复,但新功能尚未部署,因为它们必须等待新版本

您可以通过创建发布分支并从中部署来实现这一点。在这种情况下,所有用户都将其更改提交到trunk,一些更改被合并到release分支

我不认为只部署来自一个人的更改是有用的,因为版本控制的整个思想是在一个项目上协同工作,并一起完成更改/错误修复


看看svnbook中的

显而易见的解决方案是每个开发人员使用一个分支,只有在工作完成后才合并到主干。不过,这将增加相当大的开销。此外,随着更大的代码块被集成,集成成本将上升

理想情况下,开发人员只提交已完成的工作。但是,承诺和集成对于降低集成工作的难度非常重要

也许你应该考虑使用一个分布式版本控制系统。开发人员可以根据自己的意愿提交和恢复本地存储库,并在修复错误后进行推拉操作


在没有标记的情况下部署到生产服务器让我感到紧张

您可能需要考虑使用主干和分支。特别是,听起来好像可能对你有用。

你说的“他没有完成承诺”是什么意思?提交是原子操作,它们完全成功,否则什么也不会发生。提交后,将分配修订号。