对Java并发开发实现版本控制的好方法

对Java并发开发实现版本控制的好方法,java,svn,cvs,Java,Svn,Cvs,我将向您介绍我的开发团队和软件交付阶段: 我们有一些javajar文件,其中包含服务逻辑,但是共享了两个主要的开发团队,他们参与不同的业务领域。我们都共享这些服务的使用和责任,并且经常收到同时在相同模块上实现更改的要求。当开发阶段结束时,如果一切正常,jar将被传递给质量保证部门,然后再传递给生产部门 我们使用Subversion(最近从CVS迁移而来),并根据收到的需求创建一个新的分支,以便同一jar的并发开发不会相互影响。问题是,当这两个(或更多)并发开发转到QA时,它们进入了要测试的队列。

我将向您介绍我的开发团队和软件交付阶段:

我们有一些javajar文件,其中包含服务逻辑,但是共享了两个主要的开发团队,他们参与不同的业务领域。我们都共享这些服务的使用和责任,并且经常收到同时在相同模块上实现更改的要求。当开发阶段结束时,如果一切正常,jar将被传递给质量保证部门,然后再传递给生产部门

我们使用Subversion(最近从CVS迁移而来),并根据收到的需求创建一个新的分支,以便同一jar的并发开发不会相互影响。问题是,当这两个(或更多)并发开发转到QA时,它们进入了要测试的队列。当这些需求中的一个进入生产阶段时,它将合并到主根分支,并且必须通知处理同一jar更改的其他需求,以便使用新的生产版本更新它们的分支,这样当它们进入QA/生产阶段时,它们不会覆盖最近的更改


总之,我想知道我是否正确地使用了版本控制,我是否为我的并发开发使用了最合适的版本控制风格(Subversion),以及是否有更好的方法来分叉/合并并发开发中使用的分支。

如果相互覆盖,我不确定您是否正确地合并,合并应该保存来自两个分支的更改,并在无法保存时产生冲突。你能举一个例子说明你是如何丢失更改的吗?@JoachimIsaksson我的问题更多的是告诉其他参与需求的程序员我刚刚将一个新版本传递给了生产部门,所以他们必须更新他们的分支,这样他们就不必等到进入生产时才意识到其他问题已发布更改。我之所以希望这样做,是因为即使他们没有解决冲突,QA也没有同时测试这两个更改(如果他们没有更新分支),并且在合并后可能会崩溃。