多人开发与版本管理

    团队 - 图1

    更新时间:2023-03-31 10:21:46

    多人开发说明
    在构建结构较为庞大的项目时,不可避免需要一个团队共同协作,在此场景下就可以使用到iVX提供的多人开发的功能。
    使用多人开发,项目的开发者可以各自开发单独的模块,最后再通过推送将自己的工作内容上传到主分支(类似于Git的项目版本管理,主分支为所有人开发的远程稳定版本)。
    多人开发和版本管理
    1.项目成员邀请
    每一个案例舞台的正上方-都会有一个“多人开发”的按钮, 点击打开邀请面板,随后输入要邀请成员的账号,同时在邀请时可以选择-被邀请成员的职责(开发者可以对案例进行修改和开发,管理员则在这个基础上可以进行项目成员的邀请与移除),同时发起人会自动成为该案例的所有者
    团队 - 图2
    在发送邀请之后,该案例会自动转换为一个多人开发的案例,此时舞台正上方的多人开发后面会多出两个“拉取”和“推送”的按钮,此时点击“多人开发”则可以看到拉入案例的项目成员名单-并进行成员管理。
    团队 - 图3
    2.多人开发的拉取和推送
    在加入多人开发之后,我们在多人开发—历史记录中看到如下图所示各个版本的历史记录,并能通过这里的历史记录进行版本的回溯。
    在案例转为多人开发之后,系统会自动添加一个非本地的主分支(master)用作项目开发的远程稳定版本,每个成员也会有自己的本地分支用于个人开发任务的进行, 任意选择分支图里面的一个圆点,右侧的版本信息会高亮显示,我们可以通过这个分支图加载多人开发成员列表内所有存在的历史版本,无论其是否被推送到了主分支。
    团队 - 图4
    当我们需要获取项目组-最近整个的开发成果,在他人开发的基础上进行自己的任务,我们需要通过“拉取”来实现, 该功能总会帮我们-拉取到主分支上最新的版本,并与本地版本进行合并、生成一个新的本地版本作为个人后续开发的基础。
    当我们想要提交自己 已完成的开发任务,也就是将开发的成果上传到最终的项目中去,我们则通过“推送”来实现, 该功能会帮助我们将自己的本地分支上传为主分支版本,在主分支上生成一个新的版本;需要注意的是,推送需要本地版本是主分支最新版本的克隆版本,否则需要重新拉取最新的主分支版本与自己的本地版本进行合并后才能进行推送。
    团队 - 图5
    多人开发冲突
    多人开发不可避免地会在合并分支时产生冲突,不过由于推送合并分支时,本地的版本已经保证和主分支的最新版本进行了合并,后续的推送会直接推送到主分支。所以当不同的项目成员对相同的对象进行了修改时,冲突会在拉取合并时报出
    团队 - 图6
    以上图为例,合并前远程版本为主分支2,本地版本为成员A合并前版本,主分支v0为成员A最近一次拉取时的主分支版本。如果在主分支v2内和成员A合并前版本存在着对同一对象的不同设置,那么冲突就会产生, 但是系统不会直接去比较主分支v2与成员A合并前版本,而是会去比较上图中特殊颜色标注的两种差异,当和主分支v0和本地版本间的修改主分支v0和v2之间的修改存在对同一对象的不同设置,系统就会报出冲突。
    值得注意的是,上述的两种的差异必须是针对同一个对象都进行了操作:如果v0到v2是添加了一个对象A、但没有对对象B进行任何操作,v0到合并前的本地版本为删除了对象B,此时的拉取合并不会报出冲突, 因为这两种差异体现的操作为添加一个对象删除另一个对象,并没有对对象A和B都进行操作,可以顺利合并; 但如果v0到v1是修改对象C的颜色为红色,v0到合并前本地版本为修改对象C的颜色为灰色,这时系统的对比、就会发现这两种差异体现的操作为:均为修改对象C的颜色且修改为不同颜色,系统就检测到了冲突。
    我们总结了四种会报出冲突的情况:4
    • 修改冲突,正如上面的例子,本地和远程的 对同一个对象进行的修改、不一致会导致这个冲突;
    • 删除-修改冲突,本地和远程对同一个对象一个进行了修改,另一个直接删除该对象导致的冲突;
    • 对象位置冲突,两次修改导致同一对象在不同页面所产生的冲突;
    • 对象顺序冲突,两次修改导致同一对象 在对象树下的位置顺序发送 改变导致的冲突(尤其是相对定位下、顺序不一样-就会导致位置可能不一样)。


    团队 - 图7

    要解决这些冲突,就需要项目团队内部进行沟通、并确定保留哪一种更改,确定之后选中要保留的版本并确认即可。
    当然最好的解决冲突的办法,还是尽量保证每个成员开发任务的独立性,尽可能降低不同成员操作同一部分内容的可能性。